Next: 2.1.3.5 Floating Point Rounding
Up: 2.1.3 Floats
Previous: 2.1.3.3 Denormalized Floats
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