Command Section

NAN(3)                 FreeBSD Library Functions Manual                 NAN(3)

NAME
     nan, nanf, nanl - quiet NaNs

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
     without 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").

FreeBSD 13.1-RELEASE-p6        December 16, 2007       FreeBSD 13.1-RELEASE-p6

Command Section

man2web Home...