frexp, ldexp, modf - split into mantissa and exponent

double frexp(value, eptr)
double value;
int *eptr;

double ldexp(value, exp)
double value;

double modf(value, iptr)
double value, *iptr;

Every nonzero number can be written uniquely as x * 2^n, where the
"mantissa" (fraction) x is in the range 0.5 <= |x| < 1.0, and the
"exponent" n is an integer. Frexp returns the mantissa of a
double value, and stores the exponent indirectly in the location
pointed to by eptr. If value is 0, both results returned by frexp
are 0.

Ldexp returns the quantity value * 2^exp.

Modf returns the signed fractional part of value and stores the
integer part indirectly in the location pointed to by iptr.

ieee(3) for logb and scalb

ldexp returns +-infinity on an overflow.