Program transformation for numerical precision

This article introduces a new program transformation in order to enhance the numerical accuracy of floating-point computations. We consider that a program would return an exact result if the computations were carried out using real numbers. In practice, roundoff errors due to the finite representation of values arise during the execution. These errors are closely related to the way formulas are evaluated. Indeed, mathematically equivalent formulas, obtained using laws like associativity, distributivity, etc., may lead to very different numerical results in the computer arithmetic. We propose a semantics-based transformation in order to optimize the numerical accuracy of programs. This transformation is expressed in the abstract interpretation framework and it aims at rewriting pieces of numerical codes in order to obtain results closer to what the computer would output if it used the exact arithmetic.

[1]  Matthieu Martel An Overview of Semantics for the Validation of Numerical Programs , 2005, VMCAI.

[2]  Eric Goubault,et al.  Static Analyses of the Precision of Floating-Point Operations , 2001, SAS.

[3]  Eric Goubault,et al.  Asserting the Precision of Floating-Point Computations: A Simple Abstract Interpreter , 2002, ESOP.

[4]  Matthieu Martel Enhancing the implementation of mathematical formulas for fixed-point and floating-point arithmetics , 2009, Formal Methods Syst. Des..

[5]  Christian H. Bischof,et al.  Implementation of automatic differentiation tools , 2002, PEPM '02.

[6]  Roberto Giacobazzi,et al.  Control code obfuscation by abstract interpretation , 2005, Third IEEE International Conference on Software Engineering and Formal Methods (SEFM'05).

[7]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[8]  David Monniaux,et al.  The pitfalls of verifying floating-point computations , 2007, TOPL.

[9]  Romuald Rocher,et al.  Fixed-Point Configurable Hardware Components , 2006, EURASIP J. Embed. Syst..

[10]  Romuald Rocher,et al.  Analytical accuracy evaluation of fixed-point systems , 2007, 2007 15th European Signal Processing Conference.

[11]  Matthieu Martel,et al.  Semantics of roundoff error propagation in finite precision calculations , 2006, High. Order Symb. Comput..

[12]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[13]  Guido D. Salvucci,et al.  Ieee standard for binary floating-point arithmetic , 1985 .

[14]  Patrick Cousot,et al.  Systematic design of program transformation frameworks by abstract interpretation , 2002, POPL '02.

[15]  Matthieu Martel,et al.  Some future challenges in the validation of control systems , 2006 .

[16]  Matthieu Martel,et al.  Propagation of Roundoff Errors in Finite Precision Computations: A Semantics Approach , 2002, ESOP.

[17]  Vladik Kreinovich,et al.  Greedy algorithms for optimizing multivariate Horner schemes , 2004, SIGS.

[18]  David F. Bacon,et al.  Compiler transformations for high-performance computing , 1994, CSUR.

[19]  Pat H. Sterbenz,et al.  Floating-point computation , 1973 .

[20]  Matthieu Martel Semantics-Based Transformation of Arithmetic Expressions , 2007, SAS.

[21]  Philippe Langlois,et al.  How to Ensure a Faithful Polynomial Evaluation with the Compensated Horner Algorithm , 2007, 18th IEEE Symposium on Computer Arithmetic (ARITH '07).