# hypot

## NAME



           hypot, hypotf, hypotl - Euclidean distance function
    


## LIBRARY



           Math library (_libm_ , _-lm_)
    


## 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_**);**
    
       Feature Test Macro Requirements for glibc (see
       feature_test_macros(7)):
    
           **hypot**():
               _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
                   || _XOPEN_SOURCE
                   || /* Since glibc 2.19: */ _DEFAULT_SOURCE
                   || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
    
           **hypotf**(), **hypotl**():
               _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
                   || /* Since glibc 2.19: */ _DEFAULT_SOURCE
                   || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
    


## DESCRIPTION



           These functions return sqrt(_x_ *_x_ +_y_ *_y_).  This is the length of the
           hypotenuse of a right-angled triangle with sides of length _x_ and
           _y_ , or the distance of the point (_x_ ,_y_) from the origin.
    
           The calculation is performed without undue overflow or underflow
           during the intermediate steps of the calculation.
    


## RETURN VALUE



           On success, these functions return the length of the hypotenuse of
           a right-angled triangle with sides of length _x_ and _y_.
    
           If _x_ or _y_ is an infinity, positive infinity is returned.
    
           If _x_ or _y_ is a NaN, and the other argument is not an infinity, a
           NaN is returned.
    
           If the result overflows, a range error occurs, and the functions
           return **HUGE_VAL** , **HUGE_VALF** , or **HUGE_VALL** , respectively.
    
           If both arguments are subnormal, and the result is subnormal, a
           range error occurs, and the correct result is returned.
    


## ERRORS



           See math_error(7) for information on how to determine whether an
           error has occurred when calling these functions.
    
           The following errors can occur:
    
           Range error: result overflow
                  _errno_ is set to **ERANGE**.  An overflow floating-point
                  exception (**FE_OVERFLOW**) is raised.
    
           Range error: result underflow
                  An underflow floating-point exception (**FE_UNDERFLOW**) is
                  raised.
    
                  These functions do not set _errno_ for this case.
    


## ATTRIBUTES



           For an explanation of the terms used in this section, see
           attributes(7).
           ┌──────────────────────────────────────┬───────────────┬─────────┐
           │ **Interface** │ **Attribute** │ **Value** │
           ├──────────────────────────────────────┼───────────────┼─────────┤
           │ **hypot**(), **hypotf**(), **hypotl**()          │ Thread safety │ MT-Safe │
           └──────────────────────────────────────┴───────────────┴─────────┘
    


## STANDARDS



           C11, POSIX.1-2008.
    


* * *