FPCLASSIFY(3)

NAME
fpclassify, isfinite, isinf, isnan, isnormal - classify a floating-point number

LIBRARY
libc

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);

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 symbol isnanf() is provided as an alias to isnan() for compatibility, and its use is deprecated.

SEE ALSO
isgreater(3), math(3), signbit(3)

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

HISTORY
The fpclassify(), isfinite(), isinf(), isnan(), and isnormal() macros were added in FreeBSD 5.1. 3BSD introduced isinf() and isnan() functions, which accepted double arguments; these have been superseded by the macros described above.

BUGS
By default, the DEC Alpha architecture does not support IEEE rounding. See the compiler documentation for additional details.