### 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.23 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/.