ILOGB(3M) | Mathematical Library Functions | ILOGB(3M) |

ilogb, ilogbf, ilogbl - return an unbiased exponent

c99 [flag... ]file...-lm[library... ] #include <math.h>intilogb(doublex);

intilogbf(floatx);

intilogbl(long doublex);

cc [flag... ]file...-lm[library... ] #include <math.h>intilogb(doublex);

intilogbf(floatx);

intilogbl(long doublex);

These functions return the exponent part of their argument
*x*. Formally, the return value is the integral part of **log**(r)|
*x* | as a signed integral value, for non-zero *x*, where *r*
is the radix of the machine's floating point arithmetic, which is the value
of **FLT_RADIX** defined in <**float.h**>.

Upon successful completion, these functions return the exponent
part of *x* as a signed integer value. They are equivalent to calling
the corresponding logb(3M) function and casting the returned value to
type **int**.

If *x* is 0, the value **FP_ILOGB0** is returned. For
SUSv3-conforming applications compiled with the **c99** compiler driver
(see standards(7)), a domain error occurs.

If *x* is ±Inf, the value **INT_MAX** is returned.
For SUSv3-conforming applications compiled with the **c99** compiler
driver, a domain error occurs.

If *x* is NaN, the value **FP_ILOGBNAN** is returned. For
SUSv3-conforming applications compiled with the **c99** compiler driver,
a domain error occurs.

These functions will fail if:

**Domain Error**

The *x* argument is zero, NaN, or ±Inf.

If the integer expression (**math_errhandling** &
**MATH_ERREXCEPT**) is non-zero, then the invalid floating-point
exception is raised.

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE | ATTRIBUTE VALUE |

Interface Stability | Standard |

MT-Level | MT-Safe |

limits.h(3HEAD), math.h(3HEAD), feclearexcept(3M), fetestexcept(3M), logb(3M), scalb(3M), attributes(7), standards(7)

July 12, 2006 | SunOS 5.11 |