The macro
INFINITY expands to a float constant representing positive infinity.

The macro
NAN expands to a float constant representing a quiet NaN
(when supported).
A
quiet NaN is a NaN ("not-a-number") that does not raise exceptions
when it is used in arithmetic.
The opposite is a
signaling NaN.
See IEC 60559:1989.

The macros
HUGE_VAL,
HUGE_VALF,
HUGE_VALL expand to constants of types double, float
and long double, respectively,
that represent a large positive value, possibly plus infinity.

On a glibc system, the macro
HUGE_VAL is always available.
Availability of the
NAN macro can be tested using
#ifdef NAN, and similarly for
INFINITY,
HUGE_VALF,
HUGE_VALL. They will be defined by
<math.h> if
_ISOC99_SOURCE or
_GNU_SOURCE is defined, or
__STDC_VERSION__ is defined
and has a value not less than 199901L.

This page is part of release 3.44 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/.