c/numeric/math/frexp

@1-3@ Decomposes given floating point value into a normalized fraction and an integral power of two. @4@ Type-generic macro: If has type,  is called. Otherwise, if has integer type or the type,  is called. Otherwise, is called, respectively.

Return value
If is zero, returns zero and stores zero in.

Otherwise (if is not zero), if no errors occur, returns the value  in the range   and stores an integer value in  such that $x&times;2(*exp) =arg$.

If the value to be stored in is outside the range of, the behavior is unspecified.

If is not a floating-point number, the behavior is unspecified.

Error handling
This function is not subject to any errors specified in math_errhandling.

If the implementation supports IEEE floating-point arithmetic (IEC 60559),
 * If is ±0, it is returned, unmodified, and  is stored in.
 * If is ±∞, it is returned, and an unspecified value is stored in.
 * If is NaN, NaN is returned, and an unspecified value is stored in.
 * No floating-point exceptions are raised.
 * If flt_radix is 2 (or a power of 2), the returned value is exact, the current rounding mode is ignored