96 IRIS WORKSTATION GUIDE
Version 1.0
Appendix E:
represented.
h. INVALID_OP_H. A comparison was performed when
one of the operands was NaN.
i. OVERFL. The operation did or will overflow.
j. DIVZERO. Division by zero has occurred (not 0/0).
k. UNDERFLOW_A. After the operation was performed,
the result could not be represented in the target format
except by denormalizing.
l. CONVERT_INFINITY.Anattemptwasmadetoprint∞,orto
disassemble it using frexp().
Thefollowingtypecodesareforusespecicallybythemathlibrary:
1. UNDERFL. The operands provided for the operation will
cause underflow.
2. DOMAIN_ERROR. The operands provided were illegal. (e.g.,
sqrt(-1))
3. CANT_REDUCE_RANGE. In a call to a transcendental
function, the argument was so large as to lose
significance upon range reduction.
4. PARTIAL_SLOSS. The algorithm used for the function does
not behave nicely in the range of the argument, although the
result will not overflow or underflow.
A code is placed in the global int _mathfunc_id to indicate the math
function that raised the exception. This code is valid whenever
_fperror.type is MATH. The possible codes are SIN, COS, TAN,
LOG, EXP, SQRT, POW, ASIN, ACOS, SINH, COSH, ATAN2, ATAN,
UP_I, GAMMA, HYPOT, J0, J1, Y0, Y1, YN, LOG10, TANH, and JN.
Examination of this code together with the precision found in
_fperror completely identify the function raising the exception.
E.4 Compiler Enhancements
The IRIS Workstation contains a hardware floating point option. This option
currently uses a multibus board from Sky Computer. The C compiler on the
IRIS Workstation has been quite heavily optimized for floating point operations
in both hardware and software floating point mode.
4
4. Hardware or softwareoatingpointmodeisdeterminedatcompiletimebyuseofthe-Zf
switch to cc.