HYPOT(3) | Library Functions Manual | HYPOT(3) |
hypot
, hypotf
,
hypotl
, cabs
,
cabsf
, cabsl
—
Euclidean distance and complex absolute value
functions
#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);
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.
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.
As might be expected,
hypot
(v,
NaN) and
hypot
(NaN,
v) are NaN for all finite
v. Programmers 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. The IEEE
NaN is designed to disappear when it turns out to be irrelevant, as it does
in hypot
(infinity,
NaN).
A hypot
() function first appeared in
Version 3 AT&T UNIX, and
cabs
() in Version 7 AT&T
UNIX.
April 27, 2016 | OpenBSD-current |