Algorithm Differentiation in Lisp: ADIL. Algorithm differentiation (AD) is a technique used to transform a program F computing a numerical function of one argument F(x) into another program G(p) that returns a pair, hF(p), F0(p)i where by F0(p) we mean the derivative of F with respect to its argument x, evaluated at x = p. That is, we have a program AD that takes as input a program, and returns another: G := AD(F). Over the years AD programs have been developed to allow F to be expressed in some specialized variant of a popular programming language L (FORTRAN, C, Matlab, Python) and where G is delivered in that language L or some other. Alternatively, executing F(p) is some environment will deliver hF0(p), F(p)i directly. AD tools have also been incorporated in computer algebra systems (CAS) such as Maple. A CAS is hardly necessary for the task of writing the AD program, since the main requirement is a set of tools for manipulation of an internal (typically tree) form of a program. In Lisp, a normal program is already in this form and so the AD program in Lisp (ADIL), the target F and the product G can all be expressed compactly in Lisp. In spite of the brevity and extensibility of the ADIL program, we can provide features which are unsupported in other AD programs. In particular, recursive functions are easily accommodated. Our perspective here is to point out that for scientists who write programs in Lisp or any language that can be converted to Lisp, AD is easily at hand.

This software is also peer reviewed by journal TOMS.

References in zbMATH (referenced in 1 article )

Showing result 1 of 1.
Sorted by year (citations)

  1. Fateman, Richard: Algorithm differentiation in Lisp: ADIL (2014)