Fast evaluation of elementary mathematical functions with correctly rounded last bit
ACM Transactions on Mathematical Software (TOMS)
Elementary functions: algorithms and implementation
Elementary functions: algorithms and implementation
The art of computer programming, volume 2 (3rd ed.): seminumerical algorithms
The art of computer programming, volume 2 (3rd ed.): seminumerical algorithms
Towards the Post-Ultimate libm
ARITH '05 Proceedings of the 17th IEEE Symposium on Computer Arithmetic
Combining Coq and Gappa for Certifying Floating-Point Programs
Calculemus '09/MKM '09 Proceedings of the 16th Symposium, 8th International Conference. Held as Part of CICM '09 on Intelligent Computer Mathematics
Certification of bounds on expressions involving rounded operators
ACM Transactions on Mathematical Software (TOMS)
Computing correctly rounded integer powers in floating-point arithmetic
ACM Transactions on Mathematical Software (TOMS)
Towards program optimization through automated analysis of numerical precision
Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization
LEMA: towards a language for reliable arithmetic
ACM Communications in Computer Algebra
Efficient and accurate computation of upper bounds of approximation errors
Theoretical Computer Science
Towards the profiling of scientific software for accuracy
Proceedings of the 2011 Conference of the Center for Advanced Studies on Collaborative Research
A scalable approach for automated precision analysis
Proceedings of the ACM/SIGDA international symposium on Field Programmable Gate Arrays
Rigorous polynomial approximation using taylor models in Coq
NFM'12 Proceedings of the 4th international conference on NASA Formal Methods
Automatically adapting programs for mixed-precision floating-point computation
Proceedings of the 27th international ACM conference on International conference on supercomputing
Efficient search for inputs causing high floating-point errors
Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming
Hi-index | 0.00 |
The implementation of a correctly rounded or interval elementary function needs to be proven carefully in the very last details. The proof requires a tight bound on the overall error of the implementation with respect to the mathematical function. Such work is function specific, concerns tens of lines of code for each function, and will usually be broken by the smallest change to the code (e.g. for maintenance or optimization purpose). Therefore, it is very tedious and error-prone if done by hand. This article discusses the use of the Gappa proof assistant in this context. Gappa has two main advantages over previous approaches: Its input format is very close to the actual C code to validate, and it automates error evaluation and propagation using interval arithmetic. Besides, it can be used to incrementally prove complex mathematical properties pertaining to the C code. Yet it does not require any specific knowledge about automatic theorem proving, and thus is accessible to a wider community. Moreover, Gappa may generate a formal proof of the results that can be checked independently by a lower-level proof assistant like Coq, hence providing an even higher confidence in the certification of the numerical code.