The IEEE 754 and 854 standards for floating-point arithmetic are essentially a specification of a programming environment, encompassing aspects from computer hardware, operating systems, and compilers to programming languages (see especially Section 8). Parts I and II of this paper together describe a tool to test floating-point implementations of arbitrary precision and exponent range (hardware as well as software) for compliance with the principles outlined in the IEEE standards. The tool consists of a driver program, together with a very large set of test vectors encoded in a precision-independent syntax. In Part I we have convered the testing of the basic operaitons +, −, ×, / and of the square root and remainder functions. In Part II we describe the extension of the test tool to deal with conversions between floating-point formats, conversions between floating-point and integer formats, the rounding of floating-point numbers to integral values, and binary-decimal conversions. Conversions can now be tested from a floating-point format of arbitrary precision and exponent range to another arbitrary smaller (larger) floating-point format as well as to and from fixed hardware integer formats. Conversion between the bases 2 and 10 can be tested for a number of precisions ranging from sing (24 bits), double (53 bits), long double or extended (64 bits) to quadruple (113 bits) precisioon and a proper multiprecision (240 bits) format. We conclude Part II with some applications of our test tool and report on the results of testing various floating-point implementations, meaning various language-compiler-hardware combinations as well as multiprecision libraries.
[1]
D. Gay.
Correctly Rounded Binary-Decimal and Decimal-Binary Conversions
,
1990
.
[2]
S. Tucker Taft,et al.
Information technology — Programming Languages — Ada
,
2001
.
[3]
Annie A. M. Cuyt,et al.
A precision- and range-independent tool for testing floating-point arithmetric I: basic operations, square root, and remainder
,
2001,
TOMS.
[4]
Jerome Toby Coonen.
Contributions to a proposed standard for binary floating-point arithmetic (computer arithmetic)
,
1984
.
[5]
David M. Smith,et al.
Algorithm 693: a FORTRAN package for floating-point multiple-precision arithmetic
,
1991,
TOMS.
[6]
Bjarne Stroustrup,et al.
C++ Programming Language
,
1986,
IEEE Softw..
[7]
B. Verdonk,et al.
Underflow revisited
,
2002
.