Derivatives of mathematical functions play key role in various areas of numerical and technical computing. Many of these computations are done in MATLAB, a popular environment for technical computing providing engineers and scientists with capabilities for mathematical computing, analysis, visualization, and algorithmic development. For functions written in the MATLAB language, a novel software tool is proposed to automatically transform a given MATLAB program into another MATLAB program capable of computing not only the original function but also user-specified derivatives of that function. That is, a program transformation known as automatic differentiation is performed to change the semantics of the program in a fashion based on the chain rule of differential calculus. The crucial ingredient of the tool is a combination source-to-source transformation and operator overloading. The overall design of the tool is described and numerical experiments are reported demonstrating the efficiency of the resulting code for a sample problem.
Index Terms:
source transformation, operator overloading, automatic differentiation, derivatives, MATLAB, high-level language
Citation:
C. H. Bischof, H. M. Bücker, B. Lang, A. Rasch, A. Vehreschild, "Combining Source Transformation and Operator Overloading Techniques to Compute Derivatives for MATLAB Programs," scam, pp.65, Second IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'02), 2002