A precision- and range-independent tool for testing floating-point arithmetric I: basic operations, square root, and remainder

This paper introduces a precision- and range-independent tool for testing the compliance of hardware or software implementations of (multiprecision) floating-point arithmetic with the principles of the IEEE standards 754 and 854. The tool consists of a driver program, offering many options to test only specific aspects of the IEEE standards, and a large set of test vectors, encoded in a precision-independent syntax to allow the testing of basic and extended hardware formats as well as multiprecision floating-point implementations. The suite of test vectors stems on one hand from the integration and fully precision- and range-independent generalization of existing hardware test sets, and on the other hand from the systematic testing of exact rounding for all combinations of round and sticky bits that can occur. The former constitutes only 50% of the resulting test set. In the latter we especially focus on hard-to-round cases. In addition, the test suite implicitly tests properties of floating-point operations, following the idea of Paranoia, and it reports which of the three IEEE-compliant underflow mechanisms is used by the floating-point implementation under consideration. We also chech whether that underflow mechanism is used consistently. The tool is backward compatible with the UCBTEST package and with Coonen's test syntax.

[1]  David H. Bailey,et al.  A Fortran 90-based multiprecision system , 1995, TOMS.

[2]  B. Verdonk,et al.  Underflow revisited , 2002 .

[3]  Steven M. German Introduction to the Special Issue on Verification of Arithmetic Hardware , 1999, Formal Methods Syst. Des..

[4]  Nicholas J. Higham,et al.  INVERSE PROBLEMS NEWSLETTER , 1991 .

[5]  David H. Bailey,et al.  Floating Point Arithmetic in Future Supercomputers , 1989, Int. J. High Perform. Comput. Appl..

[6]  Annie A. M. Cuyt,et al.  A precision- and range-independent tool for testing floating-point arithmetic II: conversions , 2001, TOMS.

[7]  Richard P. Brent,et al.  Recent technical reports , 1977, SIGA.

[8]  Marius A. Cornea-Hasegan,et al.  Proving the IEEE Correctness of Iterative Floating-Point Square Root , Divide , and Remainder Algorithms , 1998 .

[9]  John Harrison,et al.  Floating Point Verification in HOL Light: The Exponential Function , 1997, Formal Methods Syst. Des..

[10]  VerschaerenDennis,et al.  A precision- and range-independent tool for testing floating-point arithmetic II , 2001 .

[11]  David M. Smith,et al.  Algorithm 693: a FORTRAN package for floating-point multiple-precision arithmetic , 1991, TOMS.

[12]  David M. Russinoff A Mechanically Checked Proof of IEEE Compliance of the Floating Point Multiplication, Division and Square Root Algorithms of the AMD-K7™ Processor , 1998, LMS J. Comput. Math..

[13]  Karim Belabas,et al.  User’s Guide to PARI / GP , 2000 .

[14]  Stephen Lloyd Baluk Moshier,et al.  Methods and programs for mathematical functions , 1989 .

[15]  Jerome Toby Coonen Contributions to a proposed standard for binary floating-point arithmetic (computer arithmetic) , 1984 .