**NAME**

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

**SYNOPSIS**

**#define** **_ISOC99_SOURCE**
**#include** **<math.h>**
**INFINITY**
**NAN**
**HUGE_VAL**
**HUGE_VALF**
**HUGE_VALL**

**DESCRIPTION**

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.

**CONFORMING** **TO**

C99.

**AVAILABILITY**

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.

**SEE ALSO**

**fpclassify**(3), **feature_test_macros**(7), **math_error**(7)

**COLOPHON**

This page is part of release 3.24 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/.
2007-07-26