What every computer scientist should know about floating-point arithmetic
ACM Computing Surveys (CSUR)
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Compiler transformations for high-performance computing
ACM Computing Surveys (CSUR)
Implementation of automatic differentiation tools
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
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
Propagation of Roundoff Errors in Finite Precision Computations: A Semantics Approach
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Asserting the Precision of Floating-Point Computations: A Simple Abstract Interpreter
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Greedy algorithms for optimizing multivariate Horner schemes
ACM SIGSAM Bulletin
Control Code Obfuscation by Abstract Interpretation
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Semantics of roundoff error propagation in finite precision calculations
Higher-Order and Symbolic Computation
How to Ensure a Faithful Polynomial Evaluation with the Compensated Horner Algorithm
ARITH '07 Proceedings of the 18th IEEE Symposium on Computer Arithmetic
Fixed-point configurable hardware components
EURASIP Journal on Embedded Systems
The pitfalls of verifying floating-point computations
ACM Transactions on Programming Languages and Systems (TOPLAS)
An overview of semantics for the validation of numerical programs
VMCAI'05 Proceedings of the 6th 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
Towards program optimization through automated analysis of numerical precision
Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization
Perturbing numerical calculations for statistical analysis of floating-point program (in)stability
Proceedings of the 19th international symposium on Software testing and analysis
Modular and verified automatic program repair
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Theories, solvers and static analysis by abstract interpretation
Journal of the ACM (JACM)
Mobile robot localization by multiangulation using set inversion
Robotics and Autonomous Systems
A formal proof of square root and division elimination in embedded programs
CPP'12 Proceedings of the Second international conference on Certified Programs and Proofs
Dynamic floating-point cancellation detection
Parallel Computing
Automatically adapting programs for mixed-precision floating-point computation
Proceedings of the 27th international ACM conference on International conference on supercomputing
Automated Insertion of Exception Handling for Key and Referential Constraints
Journal of Database Management
Hi-index | 0.00 |
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.