# NAN (3)

# NAME

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

#define _ISOC99_SOURCE/* See feature_test_macros(7) */#include <math.h>

INFINITY

NAN

HUGE_VALHUGE_VALFHUGE_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 positive 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),

**math_error**(7)