double frexp(double __x, int *__pexp)
The frexp() function breaks a floating-point number into a
normalized fraction and an integral power of 2. It stores the integer in the
int object pointed to by
__pexp.
If __x is a normal float point number, the frexp() function returns the value v, such
that v has a magnitude in the interval [1/2, 1) or
zero, and __x equals v times 2
raised to the power __pexp. If __x is zero,
both parts of the result are zero. If __x is not a finite number,
the frexp() returns __x as is and stores 0 by
__pexp.
This implementation permits a zero pointer as a directive to skip a storing the exponent.