# Golang math.Hypot() Function with Examples

Golang | math.Hypot() Function: Here, we are going to learn about the Hypot() function of the math package with its usages, syntax, and examples.
Submitted by IncludeHelp, on September 01, 2021

## math.Hypot()

The Hypot() function is an inbuilt function of the math package which is used to get the square root of the sum of squares of the given parameters (Sqrt(p*p + q*q)), taking care to avoid unnecessary overflow and underflow.

It accepts two a parameter (p, q), and returns the Sqrt(p*p + q*q).

Syntax:

```func Hypot(p, q float64) float64
```

Parameter(s):

• p, q : The values whose square root of the sum of squares is to be returned.

Return Value:

The return type of Hypot() function is a float64, it returns the Sqrt(p*p + q*q).

Special cases:

• Hypot(±Inf, q) = +Inf
If the first parameter is ±Inf, the fruition returns the positive infinity (+Inf).
• Hypot(p, ±Inf) = +Inf
If the second parameter is ±Inf, the function returns the positive infinity (+Inf).
• Hypot(NaN, q) = NaN
If the first parameter is NaN, the function returns the NaN.
• Hypot(p, NaN) = NaN
If the second parameter NaN, the function returns the NaN.

Example 1:

```// Golang program to demonstrate the
// example of math.Hypot() Function

package main

import (
"fmt"
"math"
)

func main() {
fmt.Println(math.Hypot(0, 0))
fmt.Println(math.Hypot(1, 1))
fmt.Println(math.Hypot(10, 20))
fmt.Println(math.Hypot(-1, 2))
fmt.Println(math.Hypot(-10.50, 20.50))
fmt.Println(math.Hypot(10.50, -20.50))
fmt.Println(math.Hypot(-10.50, -20.50))

fmt.Println(math.Hypot(1, math.Inf(1)))
fmt.Println(math.Hypot(math.Inf(1), 1))
fmt.Println(math.Hypot(1, math.NaN()))
fmt.Println(math.Hypot(math.NaN(), 1))
}
```

Output:

```0
1.4142135623730951
22.360679774997898
2.23606797749979
23.03258561256204
23.03258561256204
23.03258561256204
+Inf
+Inf
NaN
NaN
```

Example 2:

```// Golang program to demonstrate the
// example of math.Hypot() Function

package main

import (
"fmt"
"math"
)

func main() {
var x float64
var y float64
var HypotXY float64

x = 0
y = 1
HypotXY = math.Hypot(x, y)
fmt.Println("Hypot(", x, ",", y, ") = ", HypotXY)

x = 1
y = 2
HypotXY = math.Hypot(x, y)
fmt.Println("Hypot(", x, ",", y, ") = ", HypotXY)

x = -1.49
y = -2.5
HypotXY = math.Hypot(x, y)
fmt.Println("Hypot(", x, ",", y, ") = ", HypotXY)

x = 40
y = 60
HypotXY = math.Hypot(x, y)
fmt.Println("Hypot(", x, ",", y, ") = ", HypotXY)

x = 40
y = math.Inf(-1)
HypotXY = math.Hypot(x, y)
fmt.Println("Hypot(", x, ",", y, ") = ", HypotXY)

x = math.NaN()
y = 60
HypotXY = math.Hypot(x, y)
fmt.Println("Hypot(", x, ",", y, ") = ", HypotXY)
}
```

Output:

```Hypot( 0 , 1 ) =  1
Hypot( 1 , 2 ) =  2.23606797749979
Hypot( -1.49 , -2.5 ) =  2.9103436223236594
Hypot( 40 , 60 ) =  72.11102550927978
Hypot( 40 , -Inf ) =  +Inf
Hypot( NaN , 60 ) =  NaN
```