NAME
ilogb, ilogbf, ilogbl - get integer exponent of a floating point value
SYNOPSIS
#include <math.h>
I int ilogb(double x );
I int ilogbf(float x );
I int ilogbl(long double x );
Link with -lm.
DESCRIPTION
These functions return the exponent part of their argument
as a signed integer.
When no error occurs, these functions
are equivalent to the corresponding
logb(3)
functions, cast to (int).
An error will occur for zero and infinity and NaN,
and possibly for overflow.
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 EDOM .
If an error occurs and
(math_errhandling & MATH_ERREXCEPT)
is non-zero, then the invalid floating-point exception is raised.
A domain error occurs when
x
is zero or infinite (or too large, or too small) or NaN.
If
x
is zero, the constant
FP_ILOGB0
is returned.
If
x
is NaN, the constant
FP_ILOGBNAN
is returned.
If
x
is infinite (or too large),
INT_MAX
is returned.
If
x
is too small,
INT_MIN
is returned.
CONFORMING TO
C99
SEE ALSO