The specification has been enhanced to include tests for extended value
arithmetic (including subnormal values and values such as NaN
and Infinity). In particular:
A new version directive has been added to allow a formal version
number to be indicated.
A new extended directive controls the extended-values
setting.
Operands and results with extended values are now possible.
A new operation, integer (round-to-integer) has been added.
Three new testcase groups, extend, integer,
and randomBound32, have been added.
This version marks a major update of the testcases to match the new
combined arithmetic specification. The underlying syntax, etc., of the
testcases is unchanged, but specific changes include:
Each testcase group has been split into two groups, one with the
extended directive set to 1 and the other with it set to 0.
One new operation and (pair of) testcase groups (trim) has been
added.
The extended testcase group has been removed and its testcases
incorporated into other groups.
This version incorporates updates to testcases for subnormal numbers
(previous testcases included subnormals which were more precise than
allowed by IEEE 854), and also adds testcases for rounding
to-number conversions. The subnormal condition has been
added, and subnormal numbers may be rounded and/or inexact (in the
latter case, underflow is raised).
In this document:
The subnormal condition has been added.
The conversion underflow and conversion overflow
conditions have been removed (these conditions now
raise underflow or overflow, respectively).
The operand to the toSci and toEng operations is now
subject to rounding.
The normalize and squareroot operations and testcase
groups have been added.
Extended tests now admit unrounded long operands without input rounding;
the Lost_digits condition can therefore only occur when
extended is 0.
Three cases in remaindernear.decTest which should have produced
Division_impossible, but did not, have been corrected (and
extra tests have been added).
The testcase groups are now separated into two .zip files, one
for extended operations and the other for subset arithmetic.
The default setting for the extended directive is now 1.
A new required directive, minexponent, has been added.
A new condition, clamped, has been added.
Hexadecimal representation notations have been added, in preparation for
the new decimal32, decimal64, and decimal128 testcase groups which have
replaced the old single and double format groups.
A new directive, clamp, allows testing of clamped operations
without requiring a specific concrete format.
A new testcase group, clamp, has been added.
A new operator, apply has been added. This works
like toSci and toEng except that the result does not have
to be in one of the strict canonical formats.
The integer (round-to-integer) operation has been replaced by
the tointegral (round-to-integral-value) operation. The latter
implements the IEEE 854 operator as modified by IEEE 754r (no Inexact
flag, etc.).
Testcase groups that test only using the precisions and ranges of the
three decimal formats in the proposed 754r standard have been added.
These are grouped under the
names decSingle, decDouble, and decQuad,
where each includes further groups whose names are prefixed
with ds, dd, and dq respectively. There are
nearly 30,000 testcases in these new groups.
The decimal32, decimal64, and decimal128 groups
have been renamed to dsEncode, ddEncode and dqEncode
respectively, to match the naming scheme for the other fixed-size
testcases.
A new rounding mode has been added: 05up (‘round for re-reound’,
where only 0 and 5 might be rounded up; other last-place digits round
down).
The normalize operation and testcase group has been
renamed reduce to avoid confusion.