# DragonFly On-Line Manual Pages

HYPOT(3) DragonFly Library Functions Manual HYPOT(3)
## NAME

**hypot**, **hypotf**, **hypotl**, **cabs**, **cabsf**, **cabsl** -- Euclidean distance and com-
plex 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 gen-
eral, 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 infin-
ity) 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*).
## SEE ALSO

sqrt(3)
## HISTORY

A **hypot**() function first appeared in Version 3 AT&T UNIX, and **cabs**() in
Version 7 AT&T UNIX.
DragonFly 4.3 January 15, 2015 DragonFly 4.3