HYPOT(3)

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(, v) = hypot(v, ) = + for all v, including .

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, ) and hypot(, v) are for all finite v; with "reserved operand" in place of "", the same is true on a VAX. But programmers on machines other than a VAX (it has no ) might be surprised at first to discover that hypot(±, ) = +. This is intentional; it happens because hypot(, v) = + for all v, finite or infinite. Hence hypot(, v) is independent of v. Unlike the reserved operand fault on a VAX, the IEEE is designed to disappear when it turns out to be irrelevant, as it does in hypot(, ).

SEE ALSO
sqrt(3)

HISTORY
A hypot() function first appeared in AT&T UNIX, and cabs() in AT&T UNIX.