Abstract
MATLAB is commonly considered to be an attractive, high-productivity programming environment by many computational scientists and engineers. So-called MEX-files are dynamically linked subroutines produced from, say, C or Fortran source code that, when compiled, can be run directly from within MATLAB as if they were MATLAB built-in functions. When applying automatic differentiation to a MATLAB program that calls external software via MEX-files, code is mechanically generated for the MATLAB part and for the external part in two separate phases. These resulting code fragments need to be put together via new MEX-files. This work introduces a novel software tool called automatic differentiation mexfunction generator that automatically generates MEX interface functions for gluing these automatically generated code fragments.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Moler, C.B.: Numerical Computing with MATLAB. SIAM, Philadelphia (2004)
Rall, L.B.: Automatic Differentiation: Techniques and Applications. LNCS, vol. 120. Springer, Heidelberg (1981)
Griewank, A.: Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation. SIAM, Philadelphia (2000)
Bischof, C.H., Roh, L., Mauer, A.: ADIC — An extensible automatic differentiation tool for ANSI-C. Software: Practice and Experience 27(12), 1427–1456 (1997)
Bischof, C., Carle, A., Corliss, G., Griewank, A., Hovland, P.: ADIFOR: Generating derivative codes from Fortran programs. Scientific Programming 1(1), 11–29 (1992)
Bischof, C., Carle, A., Khademi, P., Mauer, A.: ADIFOR 2.0: Automatic Differentiation of Fortran 77 Programs. IEEE Computational Science & Engineering 3(3), 18–32 (1996)
Bischof, C.H., Bücker, H.M., Lang, B., Rasch, A., Vehreschild, A.: Combining source transformation and operator overloading techniques to compute derivatives for MATLAB programs. In: Proceedings of the Second IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2002), pp. 65–72. IEEE Computer Society, Los Alamitos (2002)
The MathWorks, Inc. MATLAB, The External Interface Guide, Natick, Mass (2005)
Bischof, C.H., Bücker, H.M., Lang, B.: Automatic Differentiation for Computational Finance. In: Kontoghiorghes, E.J., Rustem, B., Siokos, S. (eds.) Computational Methods in Decision-Making, Economics and Finance. Applied Optimization, vol. 74, pp. 297–310. Kluwer Academic Publishers, Dordrecht (2002)
Bischof, C.H., Bücker, H.M., Lang, B., Rasch, A., Risch, J.W.: Extending the functionality of the general-purpose finite element package SEPRAN by automatic differentiation. International Journal for Numerical Methods in Engineering 58(14), 2225–2238 (2003)
Slusanschi, E., Bücker, H.M.: On the Limits of Current Implementations of Algorithmic Differentiation. In: Petcu, D., Negru, V., Zaharie, D., Jebelean, T. (eds.) Proceedings of the 6th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, SYNASC 2004, Timisoara, Romania, September 26–30, 2004, pp. 295–306. Timisoara, MIRTON (2004)
Griewank, A., Corliss, G.: Automatic Differentiation of Algorithms. SIAM, Philadelphia (1991)
Berz, M., Bischof, C., Corliss, G., Griewank, A. (eds.): Computational Differentiation: Techniques, Applications, and Tools. SIAM, Philadelphia (1996)
Corliss, G., Faure, C., Griewank, A., Hascoët, L., Naumann, U. (eds.): Automatic Differentiation of Algorithms: From Simulation to Optimization. Springer, New York (2002)
Bücker, H.M., Corliss, G.F., Hovland, P.D., Naumann, U., Norris, B.: A Concurrent Pascal Compiler for Minicomputers. Lecture Notes in Computational Science and Engineering, vol. 50. Springer, New York (1977)
Keady, G., Laine, M.: Using genmex – examples of calls to NAG (unpublished manuscript, 1995)
Hawkes, E., Keady, G.: Two more links to NAG numerics involving CA systems. In: Wester, M., Steinberg, S., Jahn, M. (eds.) Electronic Proceedings of the 1st International IMACS Conference on Applications of Computer Algebra. Albuquerque, New Mexico, USA, May 16–19 (1995)
Makdissi, A.: H2MEX gateway generator (2006), A program available on the internet at: http://yazdiet.club.fr/h2mex.html
Kalkuhl, M., Wiechert, W., Bücker, H.M., Vehreschild, A.: High Precision Satellite Orbit Simulation: A Test Bench for Automatic Differentiation in MATLAB. In: Hülsemann, F., Kowarschik, M., Rüde, U. (eds.) Proceedings of the Eighteenth Symposium on Simulation Techniques, ASIM 2005, September 12–15, 2005. Frontiers in Simulation, vol. 15, pp. 428–433. SCS Publishing House, Erlangen (2005)
Hedin, A.E.: MSIS–86 thermospheric model. Journal of Geophysical Research 92(A5), 4649–4662 (1987)
Hedin, A.E., Thuillier, G.: Comparison of OGO 6 measured thermospheric temperatures with the MSIS–86 empirical model. Journal of Geophysical Research 93(A6), 5965–5971 (1988)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bücker, H.M., Elsheikh, A., Vehreschild, A. (2006). A System for Interfacing MATLAB with External Software Geared Toward Automatic Differentiation. In: Iglesias, A., Takayama, N. (eds) Mathematical Software - ICMS 2006. ICMS 2006. Lecture Notes in Computer Science, vol 4151. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11832225_37
Download citation
DOI: https://doi.org/10.1007/11832225_37
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-38084-9
Online ISBN: 978-3-540-38086-3
eBook Packages: Computer ScienceComputer Science (R0)