The NumericStatus command provides access to a set of global flags to record the status of numeric operations. One status flag corresponds to each numeric event (see NumericEvent). Status flags are set automatically by the internal event dispatching code before the corresponding default, exception, or handler action is invoked (see NumericEventHandler).

•

If the status flags are set, they remain set until they are explicitly cleared, that is, assigning true sets a flag and assigning false clears a flag. This means that NumericStatus is not an environment variable.

•

The names of the six status flags correspond to the event names, which are:

invalid_operation

division_by_zero

overflow

underflow

inexact

real_to_complex

•

User code can check the NumericStatus after a sequence of operations to determine if any numeric events were triggered (resulting in either default values or trapped exceptions) during the computation.

•

If called with an equation or expression sequence of equations of the form event=status, NumericStatus sets or clears the specified status for the specified event or events. It also returns an equation or expression sequence of equations that gives the previous status for the specified event (or events), which can be used as an argument to a subsequent call to NumericStatus to restore the previous status.

•

If called with an event name or expression sequence of event names, NumericStatus returns a value or an expression sequence of values that gives the current status for the specified event or events.

•

If called with no arguments, NumericStatus returns an expression sequence of equations that gives the current status for all events.

•

If called with the single argument false, NumericStatus clears the status of all events, and returns an expression sequence of equations that gives the previous status for all events, which can be used as an argument to a subsequent call to NumericStatus to restore the previous state.