# OpenBSD manual page server

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 (), () and () 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.

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

The (), () and () functions return the absolute value of the complex number z.

# ERRORS (due to Roundoff, etc.)

Below 0.97 . 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 v. Programmers might be surprised at first to discover that `hypot`(±infinity, NaN) = +infinity. This is intentional; it happens because `hypot`(infinity, v) = +infinity for v, finite or infinite. Hence `hypot`(infinity, v) is independent of v. The IEEE NaN is designed to disappear when it turns out to be irrelevant, as it does in `hypot`(infinity, NaN).

 February 8, 2020 OpenBSD-current