INFINITY(3) | Library Functions Manual | INFINITY(3) |

# NAME¶

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

# LIBRARY¶

Math library (*libm*)

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

# STANDARDS¶

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.

# SEE ALSO¶

2022-10-09 | Linux man-pages 6.03 |