FPCLASSIFY(3) OpenBSD Programmer's Manual FPCLASSIFY(3)NAME
fpclassify, isfinite, isinf, isnan, isnormal, signbit - classify a
floating-point number
SYNOPSIS
#include <math.h>
int
fpclassify(real-floating x);
int
isfinite(real-floating x);
int
isinf(real-floating x);
int
isnan(real-floating x);
int
isnormal(real-floating x);
int
signbit(real-floating x);
DESCRIPTION
The fpclassify() macro takes an argument of x and returns one of the
following manifest constants:
FP_INFINITE Indicates that x is an infinite number.
FP_NAN Indicates that x is not a number (NaN).
FP_NORMAL Indicates that x is a normalized number.
FP_SUBNORMAL Indicates that x is a denormalized number.
FP_ZERO Indicates that x is zero (0 or -0).
The isfinite() macro returns a non-zero value if and only if its argument
has a finite (zero, subnormal, or normal) value.
The isinf(), isnan(), and isnormal() macros return non-zero if and only
if x is an infinity, NaN, or a non-zero normalized number, respectively.
The signbit() macro takes an argument of x and returns non-zero if the
value of its sign is negative, otherwise 0.
SEE ALSOisgreater(3), math(3)STANDARDS
The fpclassify(), isfinite(), isinf(), isnan(), isnormal(), and signbit()
macros conform to ISO/IEC 9899:1999 (``ISO C99'').
The symbols isinff(), and isnanf() are provided as compatibility aliases
to isinf(), and isnan(), respectively, and their uses are deprecated.
Similarly, finite() and finitef() are deprecated versions of isfinite().
HISTORY
The fpclassify(), isfinite(), isinf(), isnan(), isnormal(), and signbit()
macros were added in OpenBSD 4.4. 3BSD introduced isinf() and isnan()
functions, which accepted double arguments; these have been superseded by
the macros described above.
BUGS
VAX floating point does not have distinguished values for either infinity
or not-a-number. isinf(), isinff(), isnan(), and isnanf() routines
always return 0 on that architecture. Similarly, finite(), and
isfinite() always return 1.
OpenBSD 4.9 July 29, 2008 OpenBSD 4.9