Compute the integral part of a logarithm
#include <math.h> int ilogb( double x ); int ilogbf( float x ); int ilogbl( long double x );
The ilogb(), ilogbf(), and ilogbl() functions compute the integral part of:
logr |x|
as a signed integral value, for nonzero finite x, where r is the radix of the machine's floating point arithmetic.
To check for error situations, use feclearexcept() and fetestexcept(). For example:
The exponent part of x, in integer format.
If x is: | These functions return: | Errors: |
---|---|---|
0.0 | FP_ILOGB0 | — |
NaN | FP_ILOGBNAN | — |
±Inf | INT_MAX | — |
These functions raise FE_INEXACT if the FPU reports that the result can't be exactly represented as a floating-point number.
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |