##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::hypot

From cppreference.com
< cpp‎ | numeric‎ | math

Defined in header `<cmath>` |  |
float hypot( float x, float y ); | (1) | (since C++11)
double hypot( double x, double y ); | (2) | (since C++11)
long double hypot( long double x, long double y ); | (3) | (since C++11)
Promoted hypot( Arithmetic1 x, Arithmetic2 y ); | (4) | (since C++11)

Computes the square root of the sum of the squares of `x` and `y`, without undue overflow or underflow at intermediate stages of the computation. 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 `(0,0)`, or the magnitude of a complex number `x+iy`

4) If any argument has integral type, it is cast to double. If any other argument is long double, then the return type is long double, otherwise it is double.

### [edit] Parameters

x, y | - | values of floating-point or integral types

### [edit] Return value

The hypotenuse of a right-angled triangle, √x2
+y2
.

### [edit] Exceptions

If the result overflows, a range error may occur and FE_OVERFLOW may be raised.

If the result is subnormal, an underflow error may occur and FE_UNDERFLOW may be raised.

### [edit] Notes

Implementations usually guarantee precision of less than 1 ulp (units in the last place): GNU, BSD, Open64

### [edit] Example

Run this code

    #include <cmath>
    #include <utility>
    #include <iostream>

    std::pair<double, double> cartesian_to_polar(double x, double y)
    {
        return {std::hypot(x, y), std::atan2(y,x)};
    }

    int main()
    {
        std::pair<double, double> polar = cartesian_to_polar(1, 1);
        std::cout << "(1,1) cartesian is (" << polar.first
                   << "," << polar.second<< ") polar\n";
    }

Output:

    (1,1) cartesian is (1.41421,0.785398) polar

### [edit] See also

sqrt | computes square root (√x) (function) [edit]
pow | raises a number to the given power (xy) (function) [edit]
abs(std::complex) | returns the magnitude of a complex number (function template) [edit]
C documentation for hypot

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/numeric/math/hypot&oldid=67131"