Algorithmic differentiation in Axiom

This paper describes the design and implementation of an algorithmic differentiation framework in the Axiom computer algebra system. Our implementation works by transformations on Spad programs at the level of the typed abstract syntax tree -- Spad is the language for extending Axiom with libraries. The framework illustrates an algebraic theory of algorithmic differentiation, here only for Spad programs, but we suggest that the theory is general. In particular, if it is possible to define a compositional semantics for programs, we define the exact requirements for when a program can be algorithmically differentiated. This leads to a general algorithmic differentiation system, and is not confined to functions which compute with basic data types, such as floating point numbers.

[1]  Michael B. Monagan,et al.  ADrien: an implementation of automatic differentiation in Maple , 1999, ISSAC '99.

[2]  James H. Davenport,et al.  Scratchpad's view of algebra II: A categorical view of factorization , 1991, ISSAC '91.

[3]  Irène Guessarian,et al.  Algebraic semantics , 1981, Lecture Notes in Computer Science.

[4]  Michael B. Monagan,et al.  GRADIENT: algorithmic differentiation in Maple , 1993, ISSAC '93.

[5]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[6]  Joseph A. Goguen,et al.  Initial Algebra Semantics and Continuous Algebras , 1977, J. ACM.

[7]  Christian H. Bischof,et al.  ADIC: an extensible automatic differentiation tool for ANSI‐C , 1997, Softw. Pract. Exp..

[8]  James H. Davenport,et al.  Scratchpad's View of Algebra I: Basic Commutative Algebra , 1990, DISCO.

[9]  Andreas Griewank,et al.  Evaluating derivatives - principles and techniques of algorithmic differentiation, Second Edition , 2000, Frontiers in applied mathematics.

[10]  Joseph E. Stoy,et al.  Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory , 1981 .

[11]  Andreas Griewank,et al.  ADIFOR: Automatic differentiation in a source translator environment , 1992, ISSAC '92.

[12]  Richard D. Jenks,et al.  AXIOM: the scientific computation system , 1992 .

[13]  Christian Bischof,et al.  ADIC: an extensible automatic differentiation tool for ANSI-C , 1997 .

[14]  Andreas Griewank,et al.  Algorithm 755: ADOL-C: a package for the automatic differentiation of algorithms written in C/C++ , 1996, TOMS.