# hypot

Square root of sum of squares (hypotenuse)

## Syntax

``C = hypot(A,B)``

## Description

example

````C = hypot(A,B)` returns the result of the following equation, computed to avoid underflow and overflow:C = sqrt(abs(A).^2 + abs(B).^2) ```

## Examples

collapse all

Compute the hypotenuse of a right triangle with side lengths of `3` and `4`.

`C = hypot(3,4)`
```C = 5 ```

Examine the difference between using `hypot` and coding the basic `hypot` equation in M-code.

Create an anonymous function that performs essentially the same basic function as `hypot`.

`myhypot = @(a,b)sqrt(abs(a).^2+abs(b).^2);`

`myhypot` does not have the same consideration for underflow and overflow behavior that `hypot` offers.

Find the upper limit at which `myhypot` returns a useful value. You can see that this test function reaches its maximum at about `1e154`, returning an infinite result at that point.

`myhypot(1e153,1e153)`
```ans = 1.4142e+153 ```
`myhypot(1e154,1e154)`
```ans = Inf ```

Do the same using the `hypot` function, and observe that `hypot` operates on values up to about `1e308`, which is approximately equal to the value for `realmax` on your computer (the largest representable double-precision floating-point number).

`hypot(1e308,1e308)`
```ans = 1.4142e+308 ```
`hypot(1e309,1e309)`
```ans = Inf ```

## Input Arguments

collapse all

Input arrays, specified as scalars, vectors, matrices, or multidimensional arrays. Inputs `A` and `B` must either be the same size or have sizes that are compatible (for example, `A` is an `M`-by-`N` matrix and `B` is a scalar or `1`-by-`N` row vector). For more information, see Compatible Array Sizes for Basic Operations.

If neither `A` nor `B` is `Inf`, but one or both inputs is `NaN`, then `hypot` returns `NaN`.

Data Types: `single` | `double`
Complex Number Support: Yes

collapse all

### IEEE Compliance

For real inputs, `hypot` has a few behaviors that differ from those recommended in the IEEE®-754 Standard.

MATLAB® IEEE

`hypot(NaN,Inf)`

`NaN`

`Inf`

`hypot(NaN,-Inf)`

`NaN`

`Inf`

`hypot(Inf,NaN)`

`NaN`

`Inf`

`hypot(-Inf,NaN)`

`NaN`

`Inf`