NAME
hypot
, hypotf
,
hypotl
, cabs
,
cabsf
, cabsl
—
Euclidean distance and complex absolute
value functions
SYNOPSIS
#include
<math.h>
double
hypot
(double
x, double y);
float
hypotf
(float
x, float y);
long double
hypotl
(long
double x, long double
y);
#include
<complex.h>
double
cabs
(double
complex z);
float
cabsf
(float
complex z);
long double
cabsl
(long
double complex z);
DESCRIPTION
The
hypot
(),
hypotf
()
and
hypotl
()
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.
hypot
(infinity,
v) =
hypot
(v,
infinity) = +infinity for all v,
including NaN.
The
cabs
(),
cabsf
()
and
cabsl
()
functions return the absolute value of the complex number
z.
ERRORS (due to Roundoff, etc.)
Below 0.97
ulps.
Consequently hypot
(5.0,
12.0) = 13.0 exactly; in general, hypot and cabs
return an integer whenever an integer might be expected.
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
(±infinity,
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 fault 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
HISTORY
A hypot
() function first appeared in
Version 3 AT&T UNIX, and
cabs
() in Version 7 AT&T
UNIX.