VMS Help
CRTL, frexp
*Conan The Librarian
|
Calculates the fractional and exponent parts of a floating-point
value.
Format
#include <math.h>
double frexp (double value, int *eptr);
float frexpf (float value, int *eptr);
(Integrity servers, Alpha)
long double frexpl (long double value, int *eptr);
(Integrity servers, Alpha)
value
A floating-point number of type double, float, or long double.
eptr
A pointer to an int where frexp places the exponent.
The frexp functions break the floating-point number (value) into
a normalized fraction and an integral power of 2, as follows:
value = fraction * (2exp)
The fractional part is returned as the return value. The exponent
is placed in the integer variable pointed to by eptr.
#include <math.h>
main ()
{
double val = 16.0, fraction;
int exp;
fraction = frexp(val, &exp);
printf("fraction = %f\n",fraction);
printf("exp = %d\n",exp);
}
In this example, frexp converts the value 16 to .5 * 2 . The
example produces the following output:
fraction = 0.500000
exp = 5
|value| = Infinity or NaN is an invalid argument.
x The fractional part of value.
0 Both parts of the result are 0.
NaN If value is NaN, NaN is returned, errno
is set to EDOM, and the value of *eptr is
unspecified.
value If |value| = Infinity, value is returned,
errno is set to EDOM, and the value of *eptr
is unspecified.