The macro INFINITY expands to a float constant representing positive
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
signalling 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.