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

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>

home | help