HYPOT(3M)                                                            HYPOT(3M)


NAME
       hypot, cabs - Euclidean distance, complex absolute value

SYNOPSIS
       #include <math.h>

       double hypot(x,y)
       double x,y;

       double cabs(z)
       struct {double x,y;} z;

DESCRIPTION
       Hypot(x,y)  and  cabs(x,y)  return sqrt(x∗x+y∗y) computed in such a way
       that underflow will not happen, and overflow occurs only if  the  final
       result deserves it.

       hypot(infinity,v)  = hypot(v,infinity) = +infinity for all v, including
       NaN.

ERROR (due to Roundoff, etc.)
       Below 0.97 ulps.  Consequently hypot(5.0,12.0) = 13.0 exactly; in  gen‐
       eral,  hypot  and  cabs  return an integer whenever an integer might be
       expected.

       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 ulps.

NOTES
       As might be expected, hypot(v,NaN) and hypot(NaN,v)  are  NaN  for  all
       finite  v;  with "reserved operand" in place of "NaN", the same is true
       on a VAX.  But programmers on machines other than  a  VAX  (it  has  no
       infinity)  might  be  surprised at first to discover that hypot(±infin‐
       ity,NaN)  =  +infinity.   This  is  intentional;  it  happens   because
       hypot(infinity,v)  =  +infinity  for  all v, finite or infinite.  Hence
       hypot(infinity,v) is independent of v.  Unlike the reserved operand  on
       a  VAX,  the  IEEE NaN is designed to disappear when it turns out to be
       irrelevant, as it does in hypot(infinity,NaN).

SEE ALSO
       math(3M), sqrt(3M)

AUTHOR
       W. Kahan


4th Berkeley Distribution        May 12, 1986                        HYPOT(3M)
 
Generated: 2016-12-26
Generated by man2html V0.25
page hit count: 660
Valid CSS Valid XHTML 1.0 Strict