## NAN Not-a-Number Constant

Section: Base Constants

### Usage

Returns a value that represents ``not-a-number'' for both 32 and 64-bit floating point values. This constant is meant to represent the result of arithmetic operations whose output cannot be meaningfully defined (like zero divided by zero).

       y = nan

The returned type is a 64-bit float, but demotion to 32 bits preserves the not-a-number. The not-a-number constant has one simple property. In particular, any arithmetic operation with a `NaN` results in a `NaN`. These calculations run significantly slower than calculations involving finite quantities! Make sure that you use `NaN`s in extreme circumstances only. Note that `NaN` is not preserved under type conversion to integer types (see the examples below).

### Example

The following examples demonstrate a few calculations with the not-a-number constant.

    --> nan*0

    ans =

           nan

    --> nan-nan

    ans =

           nan

    -->
    quit

Note that `NaN`s are preserved under type conversion to floating point types (i.e., `float`, `double`, `complex` and `dcomplex` types), but not integer types.

    --> uint32(nan)

    ans =

     0

    --> complex(nan)

    ans =

           nan +  0.0000i

    -->
    quit