Systematic design of program transformation frameworks by abstract interpretation
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Accuracy and Stability of Numerical Algorithms
Accuracy and Stability of Numerical Algorithms
SIAM Journal on Scientific Computing
Semantics of roundoff error propagation in finite precision calculations
Higher-Order and Symbolic Computation
The pitfalls of verifying floating-point computations
ACM Transactions on Programming Languages and Systems (TOPLAS)
Equality saturation: a new approach to optimization
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Towards an Industrial Use of FLUCTUAT on Safety-Critical Avionics Software
FMICS '09 Proceedings of the 14th International Workshop on Formal Methods for Industrial Critical Systems
Enhancing the implementation of mathematical formulas for fixed-point and floating-point arithmetics
Formal Methods in System Design
Handbook of Floating-Point Arithmetic
Handbook of Floating-Point Arithmetic
Algorithm 908: Online Exact Summation of Floating-Point Streams
ACM Transactions on Mathematical Software (TOMS)
Accuracy versus time: a case study with summation algorithms
Proceedings of the 4th International Workshop on Parallel and Symbolic Computation
Static analysis of finite precision computations
VMCAI'11 Proceedings of the 12th international conference on Verification, model checking, and abstract interpretation
Semantics-based transformation of arithmetic expressions
SAS'07 Proceedings of the 14th international conference on Static Analysis
Accurate Evaluation of Arithmetic Expressions (Invited Talk)
Electronic Notes in Theoretical Computer Science (ENTCS)
Synthesis of fixed-point programs
Proceedings of the Eleventh ACM International Conference on Embedded Software
Hi-index | 0.00 |
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.