NaN

In computing, NaN, which stands for Not a Number, is a value or symbol that is usually produced as the result of an operation on invalid input operands. For example, most floating-point units are unable to explicitly calculate the square root of negative numbers, and will instead indicate that the operation was invalid and return a NaN result.

An invalid operation is not the same as an arithmetic overflow (which returns a positive or negative infinity). Arithmetic operations involving NaN always produce NaN, allowing the value to propagate through a calculation so that errors can be detected at the end without extensive testing during intermediate stages.

A NaN does not compare equal to any number or NaN. You can therefore test whether a variable has a NaN value by comparing it to itself, thus if x == x gives false (0) then x is a NaN code.

How NaN appears?

There are three kinds of operation which return NaN:

Operations with a NaN as at least one operand, e.g. 1+NaN

Indeterminate forms

The divisions 0/0, ∞/∞, ∞/-∞, -∞/∞, -∞/-∞

The multiplications 0*∞, 0*(-∞)

The power 1^∞

The additions ∞+(-∞), (-∞)+∞ and equivalent subtractions.

Real operations with complex results

The square root of a negative number

The logarithm of a negative number

The tangent of an odd multiple of 90 degrees (or π/2 radians)

The inverse sine or cosine of a number which is less than -1 or greater than +1.

NaN in MagicPlot Tables

In MagicPlot NaN also is used to represent empty cells in tables.

Statistical functions ignores NaN values in tables.

NaN in Expressions

You can use a predefined constants NaN, nan or NAN in expressions to specify NaN value.

Examples

Expression	Result
0^0	1
0/0	NaN
sqrt(-1)	NaN
1/0	Infinity
-1/0	-Infinity