| .\" Copyright (c) 1985, 1991 Regents of the University of California. |
| .\" All rights reserved. |
| .\" |
| .\" Redistribution and use in source and binary forms, with or without |
| .\" modification, are permitted provided that the following conditions |
| .\" are met: |
| .\" 1. Redistributions of source code must retain the above copyright |
| .\" notice, this list of conditions and the following disclaimer. |
| .\" 2. Redistributions in binary form must reproduce the above copyright |
| .\" notice, this list of conditions and the following disclaimer in the |
| .\" documentation and/or other materials provided with the distribution. |
| .\" 3. All advertising materials mentioning features or use of this software |
| .\" must display the following acknowledgement: |
| .\" This product includes software developed by the University of |
| .\" California, Berkeley and its contributors. |
| .\" 4. Neither the name of the University nor the names of its contributors |
| .\" may be used to endorse or promote products derived from this software |
| .\" without specific prior written permission. |
| .\" |
| .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| .\" SUCH DAMAGE. |
| .\" |
| .\" from: @(#)hypot.3 6.7 (Berkeley) 5/6/91 |
| .\" $FreeBSD: src/lib/msun/man/hypot.3,v 1.13 2005/01/14 23:28:28 das Exp $ |
| .\" |
| .Dd January 14, 2005 |
| .Dt HYPOT 3 |
| .Os |
| .Sh NAME |
| .Nm hypot , |
| .Nm hypotf , |
| .Nm cabs , |
| .Nm cabsf |
| .Nd Euclidean distance and complex absolute value functions |
| .Sh LIBRARY |
| .Lb libm |
| .Sh SYNOPSIS |
| .In math.h |
| .Ft double |
| .Fn hypot "double x" "double y" |
| .Ft float |
| .Fn hypotf "float x" "float y" |
| .In complex.h |
| .Ft double |
| .Fn cabs "double complex z" |
| .Ft float |
| .Fn cabsf "float complex z" |
| .Sh DESCRIPTION |
| The |
| .Fn hypot |
| and |
| .Fn hypotf |
| functions |
| compute the |
| sqrt(x*x+y*y) |
| in such a way that underflow will not happen, and overflow |
| occurs only if the final result deserves it. |
| The |
| .Fn cabs |
| and |
| .Fn cabsf |
| functions compute the complex absolute value of |
| .Fa z . |
| .Pp |
| .Fn hypot "\*(If" "v" |
| = |
| .Fn hypot "v" "\*(If" |
| = +\*(If for all |
| .Fa v , |
| including \*(Na. |
| .Sh ERROR (due to Roundoff, etc.) |
| Below 0.97 |
| .Em ulps . |
| Consequently |
| .Fn hypot "5.0" "12.0" |
| = 13.0 |
| exactly; |
| in general, hypot and cabs return an integer whenever an |
| integer might be expected. |
| .Pp |
| The same cannot be said for the shorter and faster version of hypot |
| and cabs that is provided in the comments in cabs.c; its error can |
| exceed 1.2 |
| .Em ulps . |
| .Sh NOTES |
| As might be expected, |
| .Fn hypot "v" "\*(Na" |
| and |
| .Fn hypot "\*(Na" "v" |
| are \*(Na for all |
| .Em finite |
| .Fa v . |
| But programmers |
| might be surprised at first to discover that |
| .Fn hypot "\(+-\*(If" "\*(Na" |
| = +\*(If. |
| This is intentional; it happens because |
| .Fn hypot "\*(If" "v" |
| = +\*(If |
| for |
| .Em all |
| .Fa v , |
| finite or infinite. |
| Hence |
| .Fn hypot "\*(If" "v" |
| is independent of |
| .Fa v . |
| Unlike the reserved operand fault on a |
| .Tn VAX , |
| the |
| .Tn IEEE |
| \*(Na is designed to |
| disappear when it turns out to be irrelevant, as it does in |
| .Fn hypot "\*(If" "\*(Na" . |
| .Sh SEE ALSO |
| .Xr math 3 , |
| .Xr sqrt 3 |
| .Sh HISTORY |
| Both a |
| .Fn hypot |
| function and a |
| .Fn cabs |
| function |
| appeared in |
| .At v7 . |