home   contributing   bugs   download   online pages  

NAME | SYNOPSIS | DESCRIPTION | CONFORMING TO | NOTES | SEE ALSO | COLOPHONThe Linux Programming Interface


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 || _POSIX_C_SOURCE >= 200112L;
           or cc -std=c99
       isnan():
           _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE || _ISOC99_SOURCE ||
           _POSIX_C_SOURCE >= 200112L;
           or cc -std=c99
       isinf():
           _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE ||
           _POSIX_C_SOURCE >= 200112L;
           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 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.

CONFORMING TO         top

       C99, POSIX.1.

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

NOTES         top

       In glibc 2.01 and earlier, isinf() returns a nonzero 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.32 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/.

                                      2010-09-20                        FPCLASSIFY(3)

HTML rendering created 2010-12-03 by Michael Kerrisk, author of The Linux Programming Interface

customisable
counter