The following descriptions cover Math Errors M6101 through M6205, which can occur on ia32 systems. All of these math errors terminate the program with an exit code of 3 (a severe error):

**Math Error M6101**

invalid

An invalid operation occurred. This error usually occurs when the operand is NaN (not a number) or
infinity.

**Math Error M6102**

denormal

A very small floating-point number was generated, which may no longer be valid because of a loss of
significance. Denormal floating-point exceptions are usually masked, causing them to be trapped and
operated upon.

**Math Error M6103**

divide by 0

A floating-point operation attempted to divide by zero.

**Math Error M6104**

overflow

An overflow occurred in a floating-point operation.

**Math Error M6105**

underflow

An underflow occurred in a floating-point operation. Underflow floating-point exceptions
are usually masked, causing the underflowing value to be replaced by 0.0.

**Math Error M6106**

inexact

Loss of precision occurred in a floating-point operation. This exception is usually masked. Many
floating-point operations cause a loss of precision.

**Math Error M6107**

unemulated

An attempt was made to execute a coprocessor instruction that is invalid or is not supported
by the emulator.

**Math Error M6108**

square root

The operand in a square-root operation was negative.

**Note**: The sqrt function in the C run-time library and the FORTRAN intrinsic function SQRT
do not generate this error. The C sqrt function checks the argument before performing the
operation and returns an error value if the operand is negative. The FORTRAN SQRT function
generates the Math Error M6201.

**Math Error M6110**

stack overflow

A floating-point expression caused a stack overflow on the 8087/287/387 coprocessor or the emulator.
Stack-overflow floating-point exceptions are trapped up to a limit of seven levels in addition to
the eight levels usually supported by the 8087/287/387 coprocessor.

**Math Error M6111**

stack underflow

A floating-point operation resulted in a stack underflow on the 8087/287/387 coprocessor or the
emulator. This error is often caused by a call to a long double function that does not
return a value.

**Math Error M6201**

'function' : _DOMAIN error

An argument to the given function was outside the domain of legal input values for that function.
For example, the following statements generate this error:
` result = sqrt(-1.0) `

// C statement
` result = SQRT(-1.0) `

! FORTRAN statement

**Math Error M6202**

'function' : _SING error

An argument to the given function was a singularity value for this function. The function is not
defined for that argument. For example, in FORTRAN the following statement generates this error:
`result = LOG10(0.0)`

**Math Error M6203**

'function' : _OVERFLOW error

The given function result was too large to be represented.

**Math Error M6205**

'function' : _TLOSS error

A total loss of significance (precision) occurred. This error may be caused by giving a very large
number as the operand of sin, cos, or tan because the operand must be reduced to a number between 0
and 2*pi.