home   contributing   bugs   download   online pages  

NAME | SYNOPSIS | DESCRIPTION | CONFORMING TO | NOTES | SEE ALSO | COLOPHON


FPCLASSIFY(3)                 Linux Programmer's Manual                 FPCLASSIFY(3)

NAME         top

       fpclassify,  isfinite,  isnormal, isnan, isinf - floating-point classification
       macros

SYNOPSIS         top

       #include <math.h>

       int fpclassify(x);

       int isfinite(x);

       int isnormal(x);

       int isnan(x);

       int isinf(x);

       Link with -lm.

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       fpclassify(), isfinite(), isnormal(): _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE;
       or cc -std=c99
       isnan(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE || _ISOC99_SOURCE; or
       cc -std=c99
       isinf(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 ||
       _ISOC99_SOURCE; or cc -std=c99

DESCRIPTION         top

       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
       floating-point expression as argument.  The result is one of the following
       values:

       FP_NAN        x is "Not a Number".

       FP_INFINITE   x is either positive infinity or negative 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
                     floating-point number.

       The other macros provide a short answer to some standard questions.

       isfinite(x)   returns a non-zero value if
                     (fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE)

       isnormal(x)   returns a non-zero value if (fpclassify(x) == FP_NORMAL)

       isnan(x)      returns a non-zero value if (fpclassify(x) == FP_NAN)

       isinf(x)      returns 1 if x is positive infinity, and -1 if x is negative
                     infinity.

CONFORMING TO         top

       C99, POSIX.1.

       For isinf(), the standards merely say that the return value is non-zero if and
       only if the argument has an infinite value.

NOTES         top

       In glibc 2.01 and earlier, isinf() returns a non-zero value (actually: 1) if x
       is positive infinity or negative infinity.  (This is all that C99 requires.)

SEE ALSO         top

       finite(3), INFINITY(3), isgreater(3), signbit(3)

COLOPHON         top

       This page is part of release 3.23 of the Linux man-pages project.  A
       description of the project, and information about reporting bugs, can be found
       at http://www.kernel.org/doc/man-pages/.

                                      2008-08-07                        FPCLASSIFY(3)