Higher-Order and Symbolic Computation

, Volume 19, Issue 1, pp 7–30 | Cite as

Semantics of roundoff error propagation in finite precision calculations

  • Matthieu Martel


We introduce a concrete semantics for floating-point operations which describes the propagation of roundoff errors throughout a calculation. This semantics is used to assert the correctness of a static analysis which can be straightforwardly derived from it.

In our model, every elementary operation introduces a new first order error term, which is later propagated and combined with other error terms, yielding higher order error terms. The semantics is parameterized by the maximal order of error to be examined and verifies whether higher order errors actually are negligible. We consider also coarser semantics computing the contribution, to the final error, of the errors due to some intermediate computations. As a result, we obtain a family of semantics and we show that the less precise ones are abstractions of the more precise ones.


Numerical precision Abstract interpretation Floating-point arithmetic IEEE 754 Standard 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    1. Alligood, K.T., Sauer, T.D., Yorke, J.A.: Chaos, An Introduction to Dynamical Systems. Springer-Verlag (1996) ISBN 0-387-94677-2Google Scholar
  2. 2.
    2. ANSI/IEEE. IEEE Standard for Binary Floating-point Arithmetic, std 754–1985 edition (1985)Google Scholar
  3. 3.
    3. Bischof, C., Hovland, P.D., Norris, B.: Implementation of automatic differentiation tools. In Proceedings of the ACM-SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Transformations, PEPM′02, pp. 98–107. ACM, Press (2002)Google Scholar
  4. 4.
    4. Boldo, S., Daumas, M.: Representable correcting terms for possibly underflowing floating point operations. In: Bajard, J.-C., Schulte, M. (eds.), Proceedings of the 16th Symposium on Computer Arithmetic, pp. 79–86. IEEE, Press (2003)Google Scholar
  5. 5.
    5. Chesneaux, J.-M.: L’arithmétique stochastique et le logiciel CADNA. Habilitation á diriger des recherches. Université Pierre et Marie Curie, Paris (1995)Google Scholar
  6. 6.
    6. Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximations of fixed points. Principles of Programming Languages 4, pp. 238–252 (1977)Google Scholar
  7. 7.
    7. Cousot, P., Cousot, R.: Abstract interpretation frameworks. J. L. Symb. Comput. 2(4), 511–547 (1992)zbMATHMathSciNetGoogle Scholar
  8. 8.
    8. Daumas, M., Rideau, L., Théry, L.: A generic library for floating-point numbers and its application to exact computing. In: TPHOLs′01, International Conference on Theorem Proving and Higher Order Logics, number 2152 in Lecture Notes in Computer Science, pp. 169–184. Springer-Verlag (2001)Google Scholar
  9. 9.
    9. Garey, M.R., Johnson, D.S.: Computers and Intractability: A Guide to the Theory of NP-Completeness. W.H. Freeman and Company (1979) ISBN 0-7167-1045-5Google Scholar
  10. 10.
    10. Goldberg, D.: What every computer scientist should know about floating-point arithmetic. ACM Comput. Surv. 23(1), 5–48 (1991)CrossRefGoogle Scholar
  11. 11.
    11. Goubault, E.: Static analyses of the precision of floating-point operations. In: Static Analysis Symposium, SAS′01, number 2126 in Lecture Notes in Computer Science, pp. 234–259. Springer-Verlag (2001)Google Scholar
  12. 12.
    12. Goubault, E., Martel, M., Putot, S.: Concrete and abstract semantics of floating-point operations. Technical Report DRT/LIST/DTSI/SLA/LSL/01-058, CEA (2001)Google Scholar
  13. 13.
    13. Goubault, E., Martel, M., Putot, S.: Asserting the precision of floating-point computations: A simple abstract interpreter. In: 11th European Symposium on Programming, ESOP′02, number 2305 in Lecture Notes in Computer Science, pp. 209–212 (2002)Google Scholar
  14. 14.
    14. Griewank, A.: Evaluating Derivatives, Principles and Techniques of Algorithmic Differentiation. Frontiers in Applied Mathematics. SIAM (Publisher), (2000) ISBN 0-89871-451-6Google Scholar
  15. 15.
    15. Hanrot, G., Lefevre, V., Rouillier, F., Zimmermann, P.: The MPFR library. Institut de Recherche en Informatique et Automatique (2001)
  16. 16.
    16. Harrison, J.: A machine-checked theory of floating point arithmetic. In: TPHOLs′99, International Conference on Theorem Proving and Higher Order Logics, number 1690 in Lecture Notes in Computer Science, pp. 113–130. Springer-Verlag (1999)Google Scholar
  17. 17.
    17. Hauser, J.R.: Handling floating-point exceptions in numeric programs. ACM Trans. Progra. Lang. Syst. 18(2), 139–174 (1996)CrossRefGoogle Scholar
  18. 18.
    18. Higham, N.J.: Accuracy and Stability of Numerical Algorithms. (1996) SIAM (Publisher), ISBN 0-89871-355-2Google Scholar
  19. 19.
    19. Knuth, D.: The Art of Computer Programming—Seminumerical Algorithms. Addison Wesley, 3rd edn. Chapter 4, (1997) ISBN 0-201-89684-2Google Scholar
  20. 20.
    20. Langlois, P.: Automatic linear correction of rounding errors. BIT, Num. Math. 41(3), 515–539 (2001)zbMATHMathSciNetCrossRefGoogle Scholar
  21. 21.
    21. Langlois, P., Nativel, F.: Improving automatic reduction of round-off errors. In: IMACS World Congress on Scientific Computation, Modelling and Applied Mathematics, vol. 2, pp. 359–364. Wissenshaft und Teknik-Verlag (1997)Google Scholar
  22. 22.
    22. Lefevre, V., Muller, J.M., Tisserand, A.: Toward correctly rounded transcendentals. IEEE Trans. on Comput. 47(11), 1235–1243 (1998)CrossRefGoogle Scholar
  23. 23.
    23. Martel, M.: Propagation of roundoff errors in finite precision computations: A semantics approach. In: 11th European Symposium on Programming, ESOP′02, number 2305 in Lecture Notes in Computer Science, pp. 194–208. Springer-Verlag (2002)Google Scholar
  24. 24.
    24. Martel, M.: Static analysis of the numerical stability of loops. In: Static Analysis Symposium, SAS′02, number 2477 in Lecture Notes in Computer Science, pp. 133–150. Springer-Verlag (2002)Google Scholar
  25. 25.
    25. Matula, D.W., Kornerup, P.: Foundations of finite precision rational arithmetic. J. Comput. 2, 378–387 (1980)MathSciNetGoogle Scholar
  26. 26.
    26. Michel, C., Rueher, M., Lebbah, Y.: Solving constraints over floating-point numbers. In: CP′2001, Seventh International Conference on Principles and Practice of Constraint Programming, number 2239 in Lecture Notes in Computer Science, pp. 524–538. Springer-Verlag (2001)Google Scholar
  27. 27.
    27. Moore, R.E.: Interval Analysis. Prentice-Hall, Englewood Cliffs (1963)Google Scholar
  28. 28.
    28. Mrozek, M.: Rigorous error analysis of numerical algorithms via symbolic computations. J. Symb. Comput. 22, 435–458 (1996)zbMATHMathSciNetCrossRefGoogle Scholar
  29. 29.
    29. Priest, M.: Algorithms for arbitrary precision floating point arithmetic. In: Kornerup, P., Matula, D. (eds.) Proceedings of the 10th Symposium on Computer Arithmetic, pp. 132–144. IEEE Computer Society Press (1991)Google Scholar
  30. 30.
    30. Putot, S., Goubault, E., Martel, M.: Static analysis based validation of floating-point computations. In: Numerical Software with Result Verification, number 2991 in Lecture Notes in Computer Science, pp. 306–313 (2004)Google Scholar
  31. 31.
    31. Vignes, J.: A stochastic arithmetic for reliable scientific computation. Math. Comput. Simul. 35(3), 233–261 (1993)MathSciNetCrossRefGoogle Scholar

Copyright information

© Springer Science + Business Media, LLC 2006

Authors and Affiliations

  1. 1.CEA—Recherche TechnologiqueLIST-DTSI-SOLGif-Sur-Yvette CedexFrance

Personalised recommendations