Algorithms and design for a second-order automatic differentiation module
ISSAC '97 Proceedings of the 1997 international symposium on Symbolic and algebraic computation
Functional differentiation of computer programs
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Efficient derivative computations in neutron scattering via interface contraction
Proceedings of the 2002 ACM symposium on Applied computing
Functional Differentiation of Computer Programs
Higher-Order and Symbolic Computation
Adifor 2.0: Automatic Differentiation of Fortran 77 Programs
IEEE Computational Science & Engineering
Automatic parallelism in differentiation of Fourier transforms
Proceedings of the 2003 ACM symposium on Applied computing
Modeling the performance of interface contraction
ACM Transactions on Mathematical Software (TOMS)
Looking for narrow interfaces in automatic differentiation using graph drawing
Future Generation Computer Systems
Looking for narrow interfaces in automatic differentiation using graph drawing
Future Generation Computer Systems
Hi-index | 0.00 |
Developing code for computing the first- and higher-order derivatives of a function by hand can be very time consuming and is prone to errors. Automatic differentiation has proven capable of producing derivative codes with very little effort on the part of the user. Automatic differentiation avoids the truncation errors characteristic of divided difference approximations. However, the derivative code produced by automatic differentiation can be significantly less efficient than one produced by hand. This shortcoming may be overcome by utilizing insight into the high-level structure of a computation. This paper focuses on how to take advantage of the fact that the number of variables passed between subroutines frequently is small compared with the number of variables with respect to which one wishes to differentiate. Such an "interface contraction," coupled with the associativity of the chain rule for differentiation, allows one to apply automatic differentiation in a more judicious fashion, resulting in much more efficient code for the computation of derivatives. A case study involving the ADIFOR (Automatic Differentiation of Fortran) tool and a program for maximizing a logistic-normal likelihood function developed from a problem in nutritional epidemiology is examined, and performance figures are presented.