Home »
Golang »
Golang Reference
Golang math.Frexp() Function with Examples
Golang | math.Frexp() Function: Here, we are going to learn about the Frexp() function of the math package with its usages, syntax, and examples.
Submitted by IncludeHelp, on August 31, 2021
math.Frexp()
The Frexp() function is an inbuilt function of the math package which is used to break the given value (f) into a normalized fraction and an integral power of 2. It returns the frac and exp satisfying f == frac × 2**exp, with the absolute value of frac in the interval [½, 1).
It accepts a parameter (f) and returns the frac and exp satisfying f == frac × 2**exp.
Syntax
func Frexp(f float64) (frac float64, exp int)
Parameters
- f : The value to be broken in a normalized fraction and an integral power of 2.
Return Value
The return type of Frexp() function is (frac float64, exp int), it returns the frac and exp satisfying f == frac × 2**exp, with the absolute value of frac in the interval [½, 1].
Special Cases
- Frexp(±0) = ±0, 0
If the parameter is ±0, the function returns frac (±0) and exp (0).
- Frexp(±Inf) = ±Inf, 0
If the parameter is ±Inf, the function returns frac (±Inf) and exp (0).
- Frexp(NaN) = NaN, 0
If the parameter is NaN, the function returns frac (NaN) and exp (0).
Example 1
// Golang program to demonstrate the
// example of math.Frexp() Function
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Frexp(0))
fmt.Println(math.Frexp(1))
fmt.Println(math.Frexp(2))
fmt.Println(math.Frexp(32))
fmt.Println(math.Frexp(120.5))
fmt.Println(math.Frexp(-1))
fmt.Println(math.Frexp(-2))
fmt.Println(math.Frexp(-32))
fmt.Println(math.Frexp(-120.5))
fmt.Println(math.Frexp(math.Inf(-1)))
fmt.Println(math.Frexp(math.Inf(+1)))
fmt.Println(math.Frexp(math.NaN()))
}
Output:
0 0
0.5 1
0.5 2
0.5 6
0.94140625 7
-0.5 1
-0.5 2
-0.5 6
-0.94140625 7
-Inf 0
+Inf 0
NaN 0
Example 2
// Golang program to demonstrate the
// example of math.Frexp() Function
package main
import (
"fmt"
"math"
)
func main() {
var x float64
x = 0
FrxX, ExpX := math.Frexp(x)
fmt.Println("Frexp(", x, ") = ", FrxX, ExpX)
x = 1
FrxX, ExpX = math.Frexp(x)
fmt.Println("Frexp(", x, ") = ", FrxX, ExpX)
x = 2
FrxX, ExpX = math.Frexp(x)
fmt.Println("Frexp(", x, ") = ", FrxX, ExpX)
x = 32
FrxX, ExpX = math.Frexp(x)
fmt.Println("Frexp(", x, ") = ", FrxX, ExpX)
x = -32
FrxX, ExpX = math.Frexp(x)
fmt.Println("Frexp(", x, ") = ", FrxX, ExpX)
x = math.Inf(1)
FrxX, ExpX = math.Frexp(x)
fmt.Println("Frexp(", x, ") = ", FrxX, ExpX)
x = math.NaN()
FrxX, ExpX = math.Frexp(x)
fmt.Println("Frexp(", x, ") = ", FrxX, ExpX)
}
Output:
Frexp( 0 ) = 0 0
Frexp( 1 ) = 0.5 1
Frexp( 2 ) = 0.5 2
Frexp( 32 ) = 0.5 6
Frexp( -32 ) = -0.5 6
Frexp( +Inf ) = +Inf 0
Frexp( NaN ) = NaN 0
Golang math Package Constants and Functions »