fpclassify
Section: Linux Programmer's Manual (3)
Updated: 20041031
Index
Return to Main Contents
NAME
fpclassify, isfinite, isnormal, isnan  floatingpoint classification macros
SYNOPSIS
#include <math.h>
int fpclassify(x);
int isfinite(x);
int isnormal(x);
int isnan(x);
int isinf(x);
Compile with std=c99; link with lm.
DESCRIPTION
Floating point numbers can have special values, such as
infinite or NaN. With the macro
fpclassify(x)
you can find out what type
x
is. The macro takes any floatingpoint expression as argument.
The result is one of the following values:
 FP_NAN

x
is "Not a Number".
 FP_INFINITE

x
is either plus or minus infinity.
 FP_ZERO

x
is zero.
 FP_SUBNORMAL

x
is too small to be represented in normalized format.
 FP_NORMAL

if nothing of the above is correct then it must be a
normal floatingpoint number.
The other macros provide a short answer to some standard questions.
 isfinite(x)

returns a nonzero value if
(fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE)
 isnormal(x)

returns a nonzero value if
(fpclassify(x) == FP_NORMAL)
 isnan(x)

returns a nonzero value if
(fpclassify(x) == FP_NAN)
 isinf(x)

returns 1 if
x
is positive infinity, and 1 if
x
is negative infinity.
NOTE
In glibc 2.01 and earlier,
isinf()
returns a nonzero value (actually: 1) if
x
is an infinity (positive or negative).
(This is all that C99 requires.)
CONFORMING TO
C99
SEE ALSO
finite(3),
INFINITY(3),
isgreater(3)
Index
 NAME

 SYNOPSIS

 DESCRIPTION

 NOTE

 CONFORMING TO

 SEE ALSO

linux.jgfs.net manual pages