hypot(3p) [posix man page]

```HYPOT(3P)						     POSIX Programmer's Manual							 HYPOT(3P)

PROLOG
This  manual page is part of the POSIX Programmer's Manual.  The Linux implementation of this interface may differ (consult the correspond-
ing Linux manual page for details of Linux behavior), or the interface may not be implemented on Linux.

NAME
hypot, hypotf, hypotl -- Euclidean distance function

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);

DESCRIPTION
The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here
and the ISO C standard is unintentional. This volume of POSIX.1-2008 defers to the ISO C standard.

These functions shall compute the value of the square root of x2+y2 without undue overflow or underflow.

An  application	wishing  to check for error situations should set errno to zero and call feclearexcept(FE_ALL_EXCEPT) before calling these
functions. On return, if errno is non-zero or fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) is  non-zero,  an  error
has occurred.

RETURN VALUE
Upon successful completion, these functions shall return the length of the hypotenuse of a right-angled triangle with sides of length x and
y.

If the correct value would cause overflow, a range error shall occur and hypot(), hypotf(), and hypotl() shall  return  the  value  of  the
macro HUGE_VAL, HUGE_VALF, and HUGE_VALL, respectively.

If x or y is +-Inf, +Inf shall be returned (even if one of x or y is NaN).

If x or y is NaN, and the other is not +-Inf, a NaN shall be returned.

If both arguments are subnormal and the correct result is subnormal, a range error may occur and the correct result shall be returned.

ERRORS
These functions shall fail if:

Range Error The result overflows.

If  the  integer  expression  (math_errhandling & MATH_ERRNO) is non-zero, then errno shall be set to [ERANGE].  If the integer
expression (math_errhandling & MATH_ERREXCEPT) is non-zero, then the overflow floating-point exception shall be raised.

These functions may fail if:

Range Error The result underflows.

If the integer expression (math_errhandling & MATH_ERRNO) is non-zero, then errno shall be set to  [ERANGE].   If  the  integer
expression (math_errhandling & MATH_ERREXCEPT) is non-zero, then the underflow floating-point exception shall be raised.

The following sections are informative.

EXAMPLES
See the EXAMPLES section in atan2().

APPLICATION USAGE
hypot(x,y), hypot(y,x), and hypot(x, -y) are equivalent.

hypot(x, +-0) is equivalent to fabs(x).

Underflow only happens when both x and y are subnormal and the (inexact) result is also subnormal.

These functions take precautions against overflow during intermediate steps of the computation.

On  error,  the	expressions  (math_errhandling & MATH_ERRNO) and (math_errhandling & MATH_ERREXCEPT) are independent of each other, but at
least one of them must be non-zero.

RATIONALE
None.

FUTURE DIRECTIONS
None.

atan2(), feclearexcept(), fetestexcept(), isnan(), sqrt()

The Base Definitions volume of POSIX.1-2008, Section 4.19, Treatment of Error Conditions for Mathematical Functions, <math.h>