An Overview of Semantics for the Validation of Numerical Programs

In this article, we introduce a simple formal semantics for floating-point numbers with errors which is expressive enough to be formally compared to the other methods. Next, we define formal semantics for interval, stochastic, automatic differentiation and error series methods. This enables us to formally compare the properties calculated in each semantics to our reference, simple semantics. Most of these methods having been developed to verify numerical intensive codes, we also discuss their adequacy to the formal validation of softwares and to static analysis. Finally, this study is completed by experimental results.

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

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

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

[4]  Patrick Cousot,et al.  A static analyzer for large safety-critical software , 2003, PLDI.

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

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

[7]  P. Langlois Automatic Linear Correction of Rounding Errors , 2001 .

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

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

[10]  John Harrison,et al.  A Machine-Checked Theory of Floating Point Arithmetic , 1999, TPHOLs.

[11]  Laurence Rideau,et al.  A Generic Library for Floating-Point Numbers and Its Application to Exact Computing , 2001, TPHOLs.

[12]  Andreas Griewank,et al.  Algorithm 755: ADOL-C: a package for the automatic differentiation of algorithms written in C/C++ , 1996, TOMS.

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

[14]  Gene H. Golub,et al.  Matrix computations , 1983 .

[15]  Guillaume Melquiond,et al.  The Boost Interval Arithmetic Library , 2003 .

[16]  J. Rogers Chaos , 1876 .

[17]  Douglas M. Priest,et al.  Algorithms for arbitrary precision floating point arithmetic , 1991, [1991] Proceedings 10th IEEE Symposium on Computer Arithmetic.

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

[19]  Nathalie Revol,et al.  Multiple Precision Interval Packages: Comparing Different Approaches , 2003, Numerical Software with Result Verification.

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

[21]  Sylvie Boldo,et al.  Representable correcting terms for possibly underflowing floating point operations , 2003, Proceedings 2003 16th IEEE Symposium on Computer Arithmetic.

[22]  Yahia Lebbah,et al.  Solving Constraints over Floating-Point Numbers , 2001, CP.

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

[24]  Matthieu Martel,et al.  Static Analysis of the Numerical Stability of Loops , 2002, SAS.

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

[26]  Ansi Ieee,et al.  IEEE Standard for Binary Floating Point Arithmetic , 1985 .

[27]  J. Yorke,et al.  Chaos: An Introduction to Dynamical Systems , 1997 .

[28]  Fabrice Rouillier,et al.  Motivations for an Arbitrary Precision Interval Arithmetic and the MPFI Library , 2005, Reliab. Comput..