The frexp() function is one of Python’s Standard math Library functions. It returns mantissa and exponent as a pair (m, e) of a given value x, where mantissa m is a floating-point number, and e exponent is an integer value. m is the float, and e is an integer such that x == m * 2**e exactly.
Python frexp()
Python frexp() is a built-in function under the math library that helps us find mantissa and exponent of x as the pair (m, e), where m is the float, and e is the integer such that x == m * 2**e. If the value of x is 0 then this function returns (0.0,0), otherwise it returns 5 <= abs(m) <1.
If the x is zero, returns (0.0, 0), otherwise 0.5 <= abs(m) < 1. This is used to “pick apart” the internal representation of the float in a portable way.
Syntax
math.frexp(x)
Here x is a number for which we will find mantissa and exponent.
Return Value
The frexp() function returns mantissa and exponent of x as the pair (m, e), where m is the float, and e is an integer. However, if the given value x is not a number, this function returns a TypeError.
Programming Example
See the following code.
# app.py # Importing math library import math # Demonstrating working of frexp() # Using different types of value of x # When x is positive number x = 5 print("Pair of mantissa and exponent of ", x, " is: ", math.frexp(x)) # When x is float type number x = 6.4 print("Pair of mantissa and exponent of ", x, " is: ", math.frexp(x)) # When x is a negative number x = -32 print("Pair of mantissa and exponent of ", x, " is: ", math.frexp(x)) # Declaring a list x = [4, 3, 7] # Using frexp() with the 3rd value of the list print("Pair of mantissa and exponent of ", x[2], " is: ", math.frexp(x[2])) # When x is not a number x = '41' print("Pair of mantissa and exponent of ", x, " is: ", math.frexp(x))
Output
Pair of mantissa and exponent of 5 is: (0.625, 3) Pair of mantissa and exponent of 6.4 is: (0.8, 3) Pair of mantissa and exponent of -32 is: (-0.5, 6) Pair of mantissa and exponent of 7 is: (0.875, 3) Traceback (most recent call last): File "frexp.py", line 27, in <module> print("Pair of mantissa and exponent of ",x," is: ",math.frexp(x)) TypeError: must be real number, not str
In the above code, we have taken different types of values of x and checked the output using the frexp() method. As a result, we can see that the output is in each case’s (m,e) pair.
At last, when we have declared the value of x as a character, a TypeError is returned.
Use frexp() with Python tuple and list
See the following code in which we have defined the Python list and tuple.
# app.py import math # creating a list lst = [11, 21.11, 21.19, 30] # creating a tuple tpl = (-15.31, -41.31, -11.21, 46.19) # calculating mantissa and exponent # of 1st, 3rd elements in list print(math.frexp(lst[0])) print(math.frexp(lst[2])) # calculating mantissa and exponent # of 2nd, 3rd and 4th elements in tuple print(math.frexp(tpl[1])) print(math.frexp(tpl[2])) print(math.frexp(tpl[3]))
Output
python3 app.py (0.6875, 4) (0.6621875, 5) (-0.64546875, 6) (-0.700625, 4) (0.72171875, 6)
Conclusion
Python frexp() method is one of the Mathematical functions used to return the mantissa and exponent of x, as a pair (m, e) where m is the float value and e is an integer value.