---
name: "INFINITY"
section: "3"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/INFINITY"
---

# INFINITY(3)

floating-point constants

## 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\_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 positive infinity.

## STANDARDS

C11.

## HISTORY

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

[**fpclassify**(3)](/fpclassify/3.md), [**math\_error**(7)](/math_error/7.md)
