Manual Page Search Parameters

 HYPOT(3) Library Functions Manual 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`(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.

# 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, 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.