FPCLASSIFY(3)

NAME
fpclassify, isfinite, isinf, isnan, isnormal, signbit, finite, finitef, isinff, isnanf - classify a floating-point number

SYNOPSIS
libm
#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 ALSO
isgreater(3)

STANDARDS
The fpclassify(), isfinite(), isinf(), isnan(), isnormal(), and signbit() macros conform to isoC-99.

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.