# DragonFly On-Line Manual Pages

NAN(3) DragonFly Library Functions Manual NAN(3)
## NAME

**nan**, **nanf**, **nanl** -- quiet *NaN*s
## LIBRARY

Math Library (libm, -lm)
## SYNOPSIS

**#include** **<math.h>**
*double*
**nan**(*const* *char* **s*);
*float*
**nanf**(*const* *char* **s*);
*long* *double*
**nanl**(*const* *char* **s*);
## DESCRIPTION

The NAN macro expands to a quiet *NaN* (Not A Number). Similarly, each of
the **nan**(), **nanf**(), and **nanl**() functions generate a quiet *NaN* value with-
out raising an invalid exception. The argument *s* should point to either
an empty string or a hexadecimal representation of a non-negative integer
(e.g., "0x1234".) In the latter case, the integer is encoded in some
free bits in the representation of the *NaN*, which sometimes store
machine-specific information about why a particular *NaN* was generated.
There are 22 such bits available for *float* variables, 51 bits for *double*
variables, and at least 51 bits for a *long* *double*. If *s* is improperly
formatted or represents an integer that is too large, then the particular
encoding of the quiet *NaN* that is returned is indeterminate.
## COMPATIBILITY

Calling these functions with a non-empty string isn't portable. Another
operating system may translate the string into a different *NaN* encoding,
and furthermore, the meaning of a given *NaN* encoding varies across
machine architectures. If you understood the innards of a particular
platform well enough to know what string to use, then you would have no
need for these functions anyway, so don't use them. Use the NAN macro
instead.
## SEE ALSO

fenv(3), ieee(3), isnan(3), math(3), strtod(3)
## STANDARDS

The **nan**(), **nanf**(), and **nanl**() functions and the NAN macro conform to
ISO/IEC 9899:1999 (``ISO C99'').
DragonFly 4.3 December 16, 2007 DragonFly 4.3