NAME
frexp frexpf
frexpl — extract significand
and exponent from a double precision number
SYNOPSIS
#include
<math.h>
double frexp(double num, int *exp); float frexpf(float num, int *exp); long double frexpl(long double num, int *exp);
DESCRIPTION
[CX] The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of POSIX.1-2024 defers to the ISO C standard.
These functions shall break a floating-point number num into a normalized fraction and an integral power of 2. The integer exponent shall be stored in the int object pointed to by exp; if the integer exponent is outside the range of int, the results are unspecified.
RETURN VALUE
For finite arguments, these functions shall return the value x, such that x has a magnitude in the interval [½,1) or 0, and num equals x times 2 raised to the power * exp.
[MX] When the radix of the argument is a power of 2, the returned value shall be exact and shall be independent of the current rounding direction mode.
If num is NaN, a NaN shall be returned, and the value of * exp is unspecified.
If num is ±0, ±0 shall be returned, and the value of * exp shall be 0.
If num is ±Inf, num shall be returned, and the value of * exp is unspecified.
ERRORS
No errors are defined.
EXAMPLES
None.
APPLICATION USAGE
None.
RATIONALE
None.
FUTURE DIRECTIONS
None.
SEE ALSO
XBD <math.h>
CHANGE HISTORY
First released in Issue 1. Derived from Issue 1 of the SVID.
Issue 5
The DESCRIPTION is updated to indicate how an application should check for an error. This text was previously published in the APPLICATION USAGE section.
Issue 6
The frexpf () and frexpl () functions are added for alignment with the ISO/IEC 9899:1999 (“ISO C99”) standard.
The DESCRIPTION, RETURN VALUE, ERRORS, and APPLICATION USAGE sections are revised to align with the ISO/IEC 9899:1999 (“ISO C99”) standard.
IEC 60559:1989 standard floating-point extensions over the ISO/IEC 9899:1999 (“ISO C99”) standard are marked.
Issue 8
Austin Group Defect 1302 is applied, aligning these functions with the ISO/IEC 9899:2018 standard.
Austin Group Defect 1753 is applied, changing the NAME section.