A New Abstract Domain for the Representation of Mathematically Equivalent Expressions

  • Arnault Ioualalen
  • Matthieu Martel
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7460)


Exact computations being in general not tractable for computers, they are approximated by floating-point computations. This is the source of many errors in numerical programs. Because the floating-point arithmetic is not intuitive, these errors are very difficult to detect and to correct by hand and we consider the problem of automatically synthesizing accurate formulas. We consider that a program would return an exact result if the computations were carried out using real numbers. In practice, roundoff errors arise during the execution and these errors are closely related to the way formulas are written. Our approach is based on abstract interpretation. We introduce Abstract Program Equivalence Graphs (APEGs) to represent in polynomial size an exponential number of mathematically equivalent expressions. The concretization of an APEG yields expressions of very different shapes and accuracies. Then, we extract optimized expressions from APEGs by searching the most accurate concrete expressions among the set of represented expressions.


Abstract Interpretation Expansion Function Minus Operator Homogeneous Part Equivalent Expression 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    ANSI/IEEE. IEEE Standard for Binary Floating-point Arithmetic, std 754-2008 edition (2008)Google Scholar
  2. 2.
    Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximations of fixed points. In: POPL, pp. 238–252. ACM (1977)Google Scholar
  3. 3.
    Cousot, P., Cousot, R.: Systematic design of program transformation frameworks by abstract interpretation. In: POPL, pp. 178–190. ACM (2002)Google Scholar
  4. 4.
    Delmas, D., Goubault, E., Putot, S., Souyris, J., Tekkal, K., Védrine, F.: Towards an Industrial Use of FLUCTUAT on Safety-Critical Avionics Software. In: Alpuente, M., Cook, B., Joubert, C. (eds.) FMICS 2009. LNCS, vol. 5825, pp. 53–69. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  5. 5.
    Putot, S., Goubault, É., Martel, M.: Static Analysis-Based Validation of Floating-Point Computations. In: Alt, R., Frommer, A., Kearfott, R.B., Luther, W. (eds.) Numerical Software with Result Verification. LNCS, vol. 2991, pp. 306–313. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  6. 6.
    Goubault, E., Putot, S.: Static Analysis of Finite Precision Computations. In: Jhala, R., Schmidt, D. (eds.) VMCAI 2011. LNCS, vol. 6538, pp. 232–247. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  7. 7.
    Higham, N.J.: Accuracy and Stability of Numerical Algorithms, 2nd edn. Society for Industrial and Applied Mathematics, Philadelphia (2002)zbMATHCrossRefGoogle Scholar
  8. 8.
    Langlois, P., Martel, M., Thévenoux, L.: Accuracy Versus Time: A Case Study with Summation Algorithms. In: PASCO, pp. 121–130. ACM (2010)Google Scholar
  9. 9.
    Martel, M.: Semantics of roundoff error propagation in finite precision calculations. Journal of Higher Order and Symbolic Computation 19, 7–30 (2006)zbMATHCrossRefGoogle Scholar
  10. 10.
    Martel, M.: Semantics-Based Transformation of Arithmetic Expressions. In: Riis Nielson, H., Filé, G. (eds.) SAS 2007. LNCS, vol. 4634, pp. 298–314. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  11. 11.
    Martel, M.: Enhancing the implementation of mathematical formulas for fixed-point and floating-point arithmetics. Journal of Formal Methods in System Design 35, 265–278 (2009)zbMATHCrossRefGoogle Scholar
  12. 12.
    Monniaux, D.: The pitfalls of verifying floating-point computations. ACM Transactions of Programming Language Systems (TOPLAS) 30(3), 12 (2008)Google Scholar
  13. 13.
    Mouilleron, C.: Efficient computation with structured matrices and arithmetic expressions. PhD thesis, Université de Lyon–ENS de Lyon (November 2011)Google Scholar
  14. 14.
    Muller, J.-M.: On the definition of ulp(x). Technical Report 5504, INRIA (2005)Google Scholar
  15. 15.
    Muller, J.-M., Brisebarre, N., de Dinechin, F., Jeannerod, C.-P., Lefèvre, V., Melquiond, G., Revol, N., Stehlé, D., Torres, S.: Handbook of Floating-Point Arithmetic. Birkhäuser, Boston (2010)zbMATHCrossRefGoogle Scholar
  16. 16.
    Ogita, T., Rump, S.M., Oishi, S.: Accurate sum and dot product. SIAM Journal on Scientific Computing (SISC) 26(6), 1955–1988 (2005)MathSciNetzbMATHCrossRefGoogle Scholar
  17. 17.
    Tate, R., Stepp, M., Tatlock, Z., Lerner, S.: Equality saturation: A new approach to optimization. In: POPL, pp. 264–276. ACM (2009)Google Scholar
  18. 18.
    Torbjorn Granlund and the GMP development team. The GNU Multiple Precision Arithmetic Library, 5.0.2 edn. (2011),
  19. 19.
    Zhu, Y.-K., Hayes, W.B.: Algorithm 908: Online exact summation of floating-point streams. Transactions on Mathematical Software 37(3), 1–13 (2010)zbMATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Arnault Ioualalen
    • 1
    • 2
    • 3
  • Matthieu Martel
    • 1
    • 2
    • 3
  1. 1.Architectures et Logiciels InformatiquesUniv. Perpignan Via Domitia, DigitsPerpignanFrance
  2. 2.Laboratoire d’Informatique Robotique et de Microélectronique de Montpellier, UMR 5506Univ. Montpellier IIMontpellierFrance
  3. 3.Laboratoire d’Informatique Robotique et de Microélectronique de Montpellier, UMR 5506CNRSMontpellierFrance

Personalised recommendations