Manual Page Search Parameters

HYPOT(3) Library Functions Manual HYPOT(3)

hypot, hypotf, hypotl, cabs, cabsf, cabsl
Euclidean distance and complex absolute value functions

#include <math.h>

hypot(double x, double y);

hypotf(float x, float y);

long double
hypotl(long double x, long double y);

#include <complex.h>

cabs(double complex z);

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; 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).


A hypot() function first appeared in Version 3 AT&T UNIX, and cabs() in Version 7 AT&T UNIX.
July 17, 2013 OpenBSD-5.6