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(∞,v) = hypot(v,∞) = + ∞ for all v including NaN.
NOTES
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(±∞, NaN) = +∞. This is intentional; it happens because hypot(∞,v) = +∞ for all v, finite or infinite. Hence hypot(∞,v) is independent of v. NaN is designed to disappear when it turns out to be irrelevant, as it does in hypot(∞,NaN).
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.
SEE ALSO
PRPQs 5799-WZQ/5799-PFF: IBM/4.3 — 15 Dec 1986