NAME
ilogb(), ilogbf(), ilogbl(), ilogbw(), ilogbq() — radix-independent exponent functions
SYNOPSIS
#include <math.h>
int ilogb(double x);
Integrity Server Only
int ilogbf(float x);
int ilogbl(long double x);
int ilogbw(extended x);
int ilogbq(quad x);
DESCRIPTION
The
ilogb()
function computes the exponent of the floating point value
x.
Formally, the return value is the integral part of
log base
r
of
|x|
as a signed integral value, for nonzero
x,
where
r
is the radix of the machine's floating-point arithmetic.
The radix
r
is 2 on HP-UX systems.
If
x
is denormal it is treated as though it were normalized
before the exponent is determined.
Note:
ilogb(x)
is equivalent to
(int)logb(x)
for all values of
x
except NaN, ±INFINITY, and zero.
Integrity Servers Only
ilogbf()
is a
float
version of
ilogb();
it takes a
float
argument.
ilogbl()
is a
long double
version of
ilogb();
it takes a
long double
argument.
ilogbw()
is an
extended
version of
ilogb();
it takes an
extended
argument.
ilogbq()
is equivalent to
ilogbl()
on HP-UX systems.
USAGE
To use these functions,
compile either with the default
-Ae
option or with the
-Aa
and
-D_HPUX_SOURCE
options.
To use (for Integrity servers)
ilogbw()
or
ilogbq(),
compile also with the
-fpwidetypes
option.
Make sure your program includes
<math.h>.
Link in the math library by specifying
-lm
on the compiler or linker command line.
For more information, see the
HP-UX floating-point guide for HP Integrity servers
at the following site:
http://www.hp.com/go/fp.
RETURN VALUE
If
x
is NaN,
ilogb()
returns
FP_ILOGBNAN.
If
x
is ±INFINITY,
ilogb()
returns
INT_MAX.
If
x
is zero,
ilogb()
returns
FP_ILOGB0.
Integrity Servers Only
If
x
is NaN, +-INFINITY, or zero, then the invalid
floating-point exception is raised (as specified by
C99 TC2)
The macros
FP_ILOGBNAN
and
FP_ILOGB0
are defined in
<math.h>.
ERRORS
No errors are defined.
STANDARDS CONFORMANCE
ilogb()
: XPG4.2, ISO/IEC C99
(including Annex F, "IEC 60559 floating-point arithmetic")
ilogbf(),
ilogbl()
: ISO/IEC C99 (including Annex F, "IEC 60559 floating-point arithmetic")