ADiMat is a software tool implementing the technology of
(AD) to programs written in MATLAB which is a
trademark of The Mathworks,
Inc. ADiMat is based on a source transformation approach. That
is, it transforms a given MATLAB code for the evaluation of some
mathematical function into a new MATLAB code for the evaluation of
user-specified derivatives of that function.
The list of currently implemented features:
- forward mode of AD,
- first order derivative computation,
- second order derivative computation in one pass (includes first order derivative computation),
- reverse mode of AD, first order
- most MATLAB 6.5 language features recognized,
- library of derivatives of function built into MATLAB,
- implements a class to compute derivatives in vector mode, and
- code optimization of augmented code.
The MATLAB code to be differentiated has to fullfill some
Besides the first item, all of the other restrictions can easily be
circumvented by rewriting the corresponding code fragments. Do not
hesitate to transform a code involving some of these concepts. We
will do our best to help you.
- No classes are allowed, i.e., ADiMat can not recognize MATLAB
classes like the classes of the symbolic toolbox.
- No eval() statement is allowed; the comand eval() evaluates a
string of MATLAB instructions. The string may be composed at
runtime so that its actual value is therefore not available at
- Some I/O functions (load, save, fscanf,...) are not completely
supported and are flagged.
The software is copyright and property of its authors at the
Institute for Scientific Computing, RWTH Aachen University,
ADiMat consists of two parts, a code transformation
server and a runtime environment. The transformation server can be visited and used interactively at
A binary only version of the runtime environment may be
obtained free of charge by downloading it
Currently, builds for architectures Linux x86_64 (GLNXA64),
Win32 (PCWIN) and Win64 (PCWIN64) are available.
corresponding BibTeX entry includes a direct link to the
electronic version in its doi field.
- 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,
Conference proceeding, Proceedings of the Second IEEE International
Workshop on Source Code Analysis and Manipulation (SCAM 2002), IEEE
Computer Society, 2002.
For some more information on ADiMat and how to use it you may read: