Decimal Testcases, version 2.44
Copyright (c) IBM Corporation, 2009. All rights reserved. ©
|7 Apr 2009
|[previous | contents]
This appendix lists changes since the first public draft of
Two new testcase groups, randomDouble and randomSingle,
have been added.
Minor corrections and clarifications have been made.
The specification has been enhanced to include tests for extended value
arithmetic (including subnormal values and values such as NaN
and Infinity). In particular:
The rounding testcase group now includes tests for the
ceiling and floor modes.
A new version directive has been added to allow a formal version
number to be indicated.
A new extended directive controls the extended-values
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.
A new operation, remaindernear (IEEE remainder) has been added,
together with a testcase group of the same name.
Some underflow and overflow exception results and conditions have been
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:
Three new operations and testcase groups (abs, max,
and min) have been added.
Corrected the description of the maxexponent directive; a value
of zero is permitted.
This version incorporates updates to testcases for subnormal numbers
(previous testcases included subnormals which were more precise than
allowed by IEEE 754), 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).
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
The extended testcase group has been removed and its testcases
incorporated into other groups.
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.
Minor clarifications have been added.
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 quantize operation and testcase
group have been added.
The integer (round-to-integer) operation has been replaced by
the tointegral (round-to-integral-value) operation. The latter
implements the IEEE 754-2008 operation (no Inexact
The samequantum operation and testcase
group have been added.
The exp, ln, and log10 operations and testcase
groups have been added.
The power testcase group has been greatly extended, to cover
non-integer second operands, and the powersqrt testcase group
has been added.
The comparetotal operation and testcase group has been added;
this operation compares two numbers using IEEE 754-2008 total ordering.
Testcases may now have up to three operands (for fma).
The following operations and testcase groups have been added:
and, canonical, class, comparesig, comparetotmag, copy, copyabs,
copynegate, copysign, fma, invert, logb, maxmag, minmag, nextminus,
nextplus, nexttoward, or, rotate, scaleb, shift, tointegralx,
References to IEEE 854 and the old IEEE 754 standard have been removed
and/or changed to refer to IEEE 754-2008, and specific URLs for the
General Decimal Arithmetic site have been removed.
Testcase groups that test only using the precisions and ranges of the
three decimal formats in the IEEE 754-2008 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
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
The normalize operation and testcase group has been
renamed reduce to avoid confusion.
Also, all references to the General Decimal Arithmetic website have
been updated to
(its new location).
The document is now formatted using OpenOffice (generated from GML),
for improved PDF files with bookmarks, hot links, etc. There are no
[previous | contents]