logb, logbf, logbl — get exponent of a floating point value
#include <math.h>
double logb( |
double | x) ; |
float
logbf( |
float | x) ; |
long
double logbl( |
long double | x) ; |
![]() |
Note |
---|---|
Link with |
These functions extract the exponent of x
and return it as a
floating-point value. If FLT_RADIX
is two, logb
(x
) is equal to
floor(log2(x
)),
except that it is probably faster.
If x
is
de-normalized, 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.
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 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.
|