A precision- and range-independent tool for testing floating-point arithmetic II: Conversions

Citation
B. Verdonk et al., A precision- and range-independent tool for testing floating-point arithmetic II: Conversions, ACM T MATH, 27(1), 2001, pp. 119-140
Citations number
17
Language
INGLESE
art.tipo
Article
Categorie Soggetti
Computer Science & Engineering
Journal title
ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE
ISSN journal
0098-3500 → ACNP
Volume
27
Issue
1
Year of publication
2001
Pages
119 - 140
Database
ISI
SICI code
0098-3500(200103)27:1<119:APARTF>2.0.ZU;2-N
Abstract
The IEEE 754 and 854 standards for floating-point arithmetic are essentiall y a specification of a programming environment, encompassing aspects from c omputer 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 e xponent range (hardware as well as software) for compliance with the princi ples 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-inde pendent syntax. In Part I we have covered the testing of the basic operatio ns +, -, x, / and of the square root and remainder functions. In Part II we describe the extension of the test tool to deal with conversions between f loating-point formats, conversions between floating-point and integer forma ts, the rounding of floating-point numbers to integral values, and binary-d ecimal conversions. Conversions can now be tested from a floating-point for mat of arbitrary precision and exponent range to another arbitrary smaller (larger) floating-point format as well as to and from fixed hardware intege r formats. Conversions between the bases 2 and 10 can be tested for a numbe r of precisions ranging from single (24 bits), double (53 bits), long doubl e or extended (64 bits) to quadruple (113 bits) precision and a proper mult iprecision (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.