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

June 29, 2021 OpenBSD-current