Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NAN(3)			 BSD 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	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 ma-
     chine-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	ma-
     chine architectures.  If you understood the innards of a particular plat-
     form 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 in-
     stead.

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

BSD			       December	16, 2007			   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | COMPATIBILITY | SEE ALSO | STANDARDS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=nan&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help