ILOGB(3)

ILOGB(3) | Library Functions Manual | ILOGB(3)

# NAME

`ilogb`, `ilogbf`, `ilogbl` —
an unbiased exponent

# LIBRARY

Math Library (libm, -lm)

# SYNOPSIS

`#include <math.h>`

int
`ilogb`(double x);

int
`ilogbf`(float x);

int
`ilogbl`(long double x);

# DESCRIPTION

The `ilogb`(), `ilogbf`(), and `ilogbl`() functions return the exponent of the non-zero real floating-point number x as a signed integer value. Formally the return value is the integral part of
log_r | x |,

where r is the radix of the machine's floating-point arithmetic defined by the `FLT_RADIX` constant in `<float.h>`.

# RETURN VALUES

As described above, upon successful completion, the functions return the exponent. Functionally this is the same as calling the corresponding logb(3) function and casting the return value to int.

The following special cases may occur:

1. If x is zero, the value of `FP_ILOGB0` is returned and a domain error occurs.
2. If x is infinite, a domain error occurs and the value of `INT_MAX` is returned.
3. If x is NaN, a domain error is raised and the value of `FP_ILOGBNAN` is returned.
4. If the correct value is outside the range of the return type, a domain error occurs but an unspecified value is returned.

# SEE ALSO

ilog2(3), logb(3), math(3)

# STANDARDS

The described functions conform to ISO/IEC 9899:1999 (“ISO C99”).

August 22, 2016 | NetBSD 9.5