next up previous contents
Next: 2.1.3.5 Floating Point Rounding Up: 2.1.3 Floats Previous: 2.1.3.3 Denormalized Floats

2.1.3.4 Floating Point Exceptions

 

The IEEE floating point standard defines several exceptions that occur when the result of a floating point operation is unclear or undesirable. Exceptions can be ignored, in which case some default action is taken, such as returning a special value. When trapping is enabled for an exception, a error is signalled whenever that exception occurs. These are the possible floating point exceptions:

:underflow
This exception occurs when the result of an operation is too small to be represented as a normalized float in its format. If trapping is enabled, the  floating-point-underflow condition is signalled. Otherwise, the operation results in a denormalized float or zero.

:overflow
This exception occurs when the result of an operation is too large to be represented as a float in its format. If trapping is enabled, the  floating-point-overflow exception is signalled. Otherwise, the operation results in the appropriate infinity.

:inexact
This exception occurs when the result of a floating point operation is not exact, i.e. the result was rounded. If trapping is enabled, the extensions:floating-point-inexact condition is signalled. Otherwise, the rounded result is returned.

:invalid
This exception occurs when the result of an operation is ill-defined, such as (/ 0.0 0.0). If trapping is enabled, the extensions:floating-point-invalid condition is signalled. Otherwise, a quiet NaN is returned.

:divide-by-zero
This exception occurs when a float is divided by zero. If trapping is enabled, the  divide-by-zero condition is signalled. Otherwise, the appropriate infinity is returned.



Raymond Toy
Mon Jul 14 09:11:27 EDT 1997