INFINITY, NAN, HUGE_VAL, HUGE_VALF, HUGE_VALL - floating-point constants

Math library (`libm`

)

```
#define _ISOC99_SOURCE /* See feature_test_macros(7) */
#include <math.h>
INFINITY
NAN
HUGE_VAL
HUGE_VALF
HUGE_VALL
```

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 positive infinity.

C11.

C99.

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.

fpclassify(3), math_error(7)