Static Analyses of the Precision of Floating-Point Operations

Computers manipulate approximations of real numbers, called floating-point numbers. The calculations they make are accurate enough for most applications. Unfortunately, in some (catastrophic) situations, the floating-point operations lose so much precision that they quickly become irrelevant. In this article, we review some of the problems one can encounter, focussing on the IEEE754-1985 norm. We give a (sketch of a) semantics of its basic operations then abstract them (in the sense of abstract interpretation) to extract information about the possible loss of precision. The expected application is abstract debugging of software ranging from simple on-board systems (which use more and more on-the-shelf micro-processors with floating-point units) to scientific codes. The abstract analysis is demonstrated on simple examples and compared with related work.

[1]  Arnaud Tisserand,et al.  Toward Correctly Rounded Transcendentals , 1998, IEEE Trans. Computers.

[2]  Patrick Cousot,et al.  Abstract Interpretation Frameworks , 1992, J. Log. Comput..

[3]  François Bourdoncle,et al.  Interprocedural Abstract Interpretation of Block Structured Languages with Nested Procedures, Aliasing and Recursivity , 1990, PLILP.

[4]  David Monniaux An abstract Monte-Carlo method for the analysis of probabilistic programs , 2001, POPL '01.

[5]  Ramon E. Moore Methods and applications of interval analysis , 1979, SIAM studies in applied mathematics.

[6]  Abbas Edalat,et al.  A Domain-Theoretic Approach to Computability on the Real Line , 1999, Theor. Comput. Sci..

[7]  Alan F. Beardon,et al.  Iteration of Rational Functions , 1991 .

[8]  M. Scott Fast Rounding in Multiprecision Floating-Slash Arithmetic , 1989, IEEE Trans. Computers.

[9]  David Monniaux,et al.  Abstract Interpretation of Probabilistic Semantics , 2000, SAS.

[10]  J.-M. Chesneaux,et al.  Les fondements de l'arithmétique stochastique , 1992 .

[11]  François Bourdoncle,et al.  Efficient chaotic iteration strategies with widenings , 1993, Formal Methods in Programming and Their Applications.

[12]  J. Vignes New methods for evaluating the validity of the results of mathematical computations , 1978 .

[13]  François Bourdoncle,et al.  Abstract interpretation by dynamic partitioning , 1992, Journal of Functional Programming.

[14]  Peter Kornerup,et al.  Finite Precision Rational Arithmetic: An Arithmetic Unit , 1983, IEEE Transactions on Computers.

[15]  Nicolas Halbwachs,et al.  Automatic discovery of linear restraints among variables of a program , 1978, POPL.

[16]  Philippe Granger,et al.  Improving the Results of Static Analyses Programs by Local Decreasing Iteration , 1992, FSTTCS.

[17]  Abbas Edalat,et al.  Exact Real Computer Arithmetic , 1997 .

[18]  G. A. Baker Essentials of Padé approximants , 1975 .

[19]  D. J. Evans,et al.  Software for Numerical Mathematics , 1975 .

[20]  Willard L. Miranker,et al.  Accurate Scientific Computations , 1986, Lecture Notes in Computer Science.

[21]  Mei Han An,et al.  accuracy and stability of numerical algorithms , 1991 .

[22]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[23]  Patrick Cousot,et al.  Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation , 1992, PLILP.

[24]  J. Vignes,et al.  An Efficient Stochastic Method for Round-Off Error Analysis , 1985, Accurate Scientific Computations.

[25]  Françoise Chaitin-Chatelin,et al.  Lectures on finite precision computations , 1996, Software, environments, tools.

[26]  Abbas Edalat,et al.  Domains for Computation in Mathematics, Physics and Exact Real Arithmetic , 1997, Bulletin of Symbolic Logic.

[27]  Donald I. Good,et al.  Computer Interval Arithmetic: Definition and Proof of Correct Implementation , 1970, JACM.

[28]  Peter Kornerup,et al.  Finite precision lexicographic continued fraction number systems , 1985, 1985 IEEE 7th Symposium on Computer Arithmetic (ARITH).

[29]  Jean Vuillemin,et al.  Exact real computer arithmetic with continued fractions , 1988, IEEE Trans. Computers.

[30]  Jeremy R. Johnson,et al.  Efficient multiprecision floating point multiplication with optimal directional rounding , 1993, Proceedings of IEEE 11th Symposium on Computer Arithmetic.

[31]  Abbas Edalat,et al.  A new representation for exact real numbers , 1997, MFPS.

[32]  John F. Hart,et al.  Computer Approximations , 1978 .

[33]  William Kahan,et al.  The improbability of probabilistic error analyses for numerical computations , 1996 .

[34]  Robert B. Seidensticker Continued fractions for high-speed and high-accuracy computer arithmetic , 1983, 1983 IEEE 6th Symposium on Computer Arithmetic (ARITH).

[35]  Peter Kornerup,et al.  An On-Line Arithmetic Unit for Bit-Pipelined Rational Arithmetic , 1988, J. Parallel Distributed Comput..

[36]  Kishor S. Trivedi,et al.  The Status of Investigations into Computer Hardware Design Based on the Use of Continued Fractions , 1973, IEEE Transactions on Computers.

[37]  Abbas Edalat,et al.  Semantics of exact real arithmetic , 1997, Proceedings of Twelfth Annual IEEE Symposium on Logic in Computer Science.

[38]  William Kahan,et al.  Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic , 1996 .

[39]  Sylvanus Kla Koué Calcul parallèle et en-ligne des fonctions arithmétiques , 1993 .

[40]  Jean Vignes,et al.  A stochastic arithmetic for reliable scientific computation , 1993 .

[41]  A. Arnold Systèmes de transitions finis et sémantique des processus communicants , 1990 .

[42]  Yamine Aït Ameur,et al.  An Application of Abstract Interpretation to Floating Point Arithmetic , 1992, WSA.

[43]  Charles W. Schelin,et al.  Calculator Function Approximation , 1983 .

[44]  Jean-Michel Muller,et al.  Qualité des calculs sur ordinateur , 1997 .

[45]  J. Vignes,et al.  Error Analysis in Computing , 1974, IFIP Congress.

[46]  Andreas Griewank,et al.  Evaluating derivatives - principles and techniques of algorithmic differentiation, Second Edition , 2000, Frontiers in applied mathematics.

[47]  Arnaud Tisserand,et al.  Towards correctly rounded transcendentals , 1997, Proceedings 13th IEEE Sympsoium on Computer Arithmetic.

[48]  Mariette Yvinec,et al.  Programming with CGAL: the example of triangulations , 1999, SCG '99.