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 |