Abstract

AbstractOperator overloading in Matlab allows for user-defined types to semantically augment existing Matlab codes without changes. However, given sufficient knowledge about types and operand semantics, operator overloading can be replaced by equivalent function calls. The ADiMat software tool provides automatic differentiation of Matlab functions using a hybrid approach that combines source transformation and operator overloading. It can also be used as a general framework for user-defined transformations of Matlab codes. Tests showed the potential for performance improvement in a derivative class providing essential linear algebra functionality for ADiMat. The Matlab runtime environment was benchmarked regarding function and method call overheads as well as property access overhead with Matlab’s objects. These tests identify the access to class properties of type cell array as the main performance culprit. Hence, an automatic method, transforming the XML based abstract syntax tree created with ADiMat’s toolchain through a set of stylesheets, was developed. This process completely removes the derivative object usage and hence the operator overloading and the property access overhead from any derivative function created with ADiMat. Experimental results show that performance is improved considerably depending on the data container storing the derivative directions.KeywordsObject Oriented ProgrammingAutomatic DifferentiationCell ArrayForward ModeMethod InvocationThese keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.