# Manual Pages  — HYPOT

### NAME

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

### LIBRARY

Math Library (libm, -lm)

### 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. The cabs(), cabsf() and cabsl() functions compute the complex absolute value of z.

hypot(∞, v) = hypot(v, ∞) = +∞ for all v, including NaN.

### ERROR (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. But 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. 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(∞, NaN).

### STANDARDS

The hypot(), hypotf(), hypotl(), cabs(), cabsf(), and cabsl() functions conform to ISO/IEC 9899:1999 ("ISO C99").

### HISTORY

Both a hypot() function and a cabs() function appeared in AT&T v7 .

 HYPOT (3) March 30, 2008