ISSAC '89 Proceedings of the ACM-SIGSAM 1989 international symposium on Symbolic and algebraic computation
GRADIENT: algorithmic differentiation in Maple
ISSAC '93 Proceedings of the 1993 international symposium on Symbolic and algebraic computation
Recursive functions of symbolic expressions and their computation by machine, Part I
Communications of the ACM
Software engineering (6th ed.)
Software engineering (6th ed.)
Mathematics Mechanization: Mechanical Geometry Theorem-Proving, Mechanical Geometry Problem-Solving, and Polynomial Equations-Solving
Robust Characterizations of Polynomials withApplications to Program Testing
SIAM Journal on Computing
Formal Verification of Floating Point Trigonometric Functions
FMCAD '00 Proceedings of the Third International Conference on Formal Methods in Computer-Aided Design
HAKMEM
Discoveries and experiments in the automation of mathematical reasoning
Discoveries and experiments in the automation of mathematical reasoning
Handbook of Mathematical Functions, With Formulas, Graphs, and Mathematical Tables,
Handbook of Mathematical Functions, With Formulas, Graphs, and Mathematical Tables,
Automated simplification of large symbolic expressions
Journal of Symbolic Computation
Hi-index | 0.01 |
One problem in applying elementary methods to prove correctness of interesting scientific programs is the large discrepancy in level of discourse between low-level proof methods and the logic of scientific calculation, especially that used in a complex numerical program. The justification of an algorithm typically relies on algebra or analysis, but the correctness of the program requires that the arithmetic expressions are written correctly and that iterations converge to correct values in spite of truncation of infinite processes or series and the commission of numerical roundoff errors. We hope to help bridge this gap by showing how we can, in some cases, state a high-level requirement and by using a computer algebra system (CAS) demonstrate that a program satisfies that requirement. A CAS can contribute program manipulation, partial evaluation, simplification or other algorithmic methods. A novelty here is that we add to the usual list of techniques automatic differentiation, a method already widely used in optimization contexts where algorithms are differentiated. We sketch a proof of a numerical program to compute sine, and display a related approach to a version of a Bessel function algorithm for J0(x) based on a recurrence.