NAME
logb, logbf, logbl - get exponent of a floating point value
SYNOPSIS
#include <math.h>
I double logb(double x );
I float logbf(float x );
I long double logbl(long double x );
Link with -lm.
DESCRIPTION
These functions extract the exponent of
x
and return it as a floating-point value.
If
FLT_RADIX
is two,
I logb( x )
is equal to
I floor(log2( x )),
except that it is probably faster.
If
x
is de-normalized,
R logb ()
returns the exponent
x
would have if it were normalized.
If
x
is zero, -HUGE_VAL (resp. -HUGE_VALF, -HUGE_VALL)
is returned, and a pole error occurs.
If
x
is infinite, plus infinity is returned.
If
x
is NaN, NaN is returned.
ERRORS
In order to check for errors, set
errno
to zero and call
feclearexcept(FE_ALL_EXCEPT)
before calling these functions.
On return, if
errno
is non-zero or
fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW)
is non-zero, an error has occurred.
If an error occurs and
(math_errhandling & MATH_ERRNO)
is non-zero, then
errno is set to
R ERANGE .
If an error occurs and
(math_errhandling & MATH_ERREXCEPT)
is non-zero, then the divide-by-zero floating-point exception is raised.
A pole error occurs when
x
is zero.
CONFORMING TO
C99
SEE ALSO