frexp(3C) LIBRARY FUNCTIONS frexp(3C)
NAME
frexp, ldexp, logb, modf, modff, nextafter, scalb - manipu-
late parts of floating-point numbers
SYNOPSIS
#include <math.h>
double frexp (double value, int *eptr);
double ldexp (double value, int exp);
double logb (double value);
double nextafter (double value1, double value2);
double scalb (double value, double exp);
double modf (double value, double *iptr);
float modff (float value, float *iptr);
DESCRIPTION
Every non-zero number can be written uniquely as x* 2n,
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 zero, both results returned by frexp are zero.
ldexp and scalb return the quantity value* 2exp. The only
difference between the two is that scalb of a signaling NaN
will result in the invalid operation exception being raised.
logb returns the unbiased exponent of its floating point
argument as a double precision floating point value.
modf and modff (single precision version) return the signed
fractional part of value and store the integral part
indirectly in the location pointed to by iptr.
nextafter returns the next representable double precision
floating point value following value1 in the direction of
value2. Thus, if value2 is less than value1 nextafter
returns the largest representable floating point number less
than value1.
DIAGNOSTICS
If ldexp would cause overflow, +HUGE (defined in <math.h> )
is returned (according to the sign of value), and errno is
set to ERANGE.
If ldexp would cause underflow, zero is returned and errno
is set to ERANGE.
1
frexp(3C) LIBRARY FUNCTIONS frexp(3C)
If the input value to ldexp is NaN or infinity, that input
is returned and errno is set to EDOM.
The same error conditions as apply to ldexp apply to scalb
with the addition already mentioned that a signaling NaN as
input will result in the raising of the invalid operation
exception.
logb of NaN returns that NaN, logb of infinity returns posi-
tive infinity, and logb of zero returns negative infinity
and results in the raising of the divide by zero exception.
In each of these conditions errno is set to EDOM.
2
frexp(3C) LIBRARY FUNCTIONS frexp(3C)
If input value1 to nextafter is positive or negative infin-
ity, that input is returned and errno is set to EDOM. The
overflow and inexact exceptions are signalled when input
value1 is finite, but nextafter(value1, value2) is not. The
underflow and inexact exceptions are signalled when
nextafter(value1, value2) lies strictly between +2-1022. In
both cases errno is set to ERANGE.
When the program is linked with the cc(1) options, -Xc or
-Xa, HUGEVAL is returned instead of HUGE.
SEE ALSO
intro(3M).
3