logb

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

log(3), ilogb(3)