Programs in Physics & Physical Chemistry
|[Licence| Download | New Version Template] adxr_v2_0.tar.gz(17 Kbytes)|
|Manuscript Title: New version announcement for TaylUR, an arbitrary-order diagonal automatic differentiation package for Fortran 95|
|Authors: G.M. von Hippel|
|Program title: TaylUR|
|Catalogue identifier: ADXR_v2_0|
Distribution format: tar.gz
|Journal reference: Comput. Phys. Commun. 176(2007)710|
|Programming language: Fortran 95.|
|Computer: Any computer with a conforming Fortran 95 compiler.|
|Operating system: Any system with a conforming Fortran 95 compiler.|
|Keywords: automatic differentiation, higher derivatives, Fortran 95.|
|PACS: 02.60.Jh, 02.30.Mv.|
|Classification: 4.12, 4.14.|
Does the new version supersede the previous version?: Yes
Nature of problem:
Problems that require potentially high orders of derivatives with respect to some variables or derivatives of complex-valued functions, such as e.g. expansions of Feynman diagrams in particle masses in perturbative Quantum Field Theory.
Arithmetic operators and Fortran intrinsics are overloaded to act correctly on objects of a defined type taylor, which encodes a function along with its first few derivatives with respect to the user-defined independent variables. Derivatives of products and composite functions are computed using Leibniz's rule and Fàa di Bruno's formula.
Reasons for new version:
The previous version  contained a potentially serious bug in the functions overloading the exponential-related intrinsics (EXP, LOG, SIN, COS, TAN, SINH, COSH, TANH), which could corrupt the imaginary parts of derivatives. It also contained some features which caused it to crash when compiled with certain compilers (notably the NAG and Lahey/Fujitsu compilers).
Summary of revisions:
The bug in the exponential-related intrinsics has been corrected. A number of additional changes have been made to the code to enable better compatibility with a greater range of compilers, including the NAG and Lahey/Fujitsu compilers. Users of some of these compilers may have to define useintrinsic as a preprocessor symbol when compiling TaylUR.
Memory and CPU time constraints may restrict the number of variables and Taylor expansion order that can be achieved. Loss of numerical accuracy due to cancellation may become an issue at very high orders.
No mixed higher-order derivatives are computed. The complex conjugation operation assumes all independent variables to be real.
The running time of TaylUR operations depends linearly on the number of variables. Its dependence on the Taylor expansion order varies from linear (for linear operations) through quadratic (for multiplication) to exponential (for elementary function calls).
|||G. M. von Hippel, TaylUR, an arbitrary-order diagonal automatic differentiation package for Fortran 95, Comput. Phys. Commun. 174 (2006) 569-576|
|Disclaimer | ScienceDirect | CPC Journal | CPC | QUB|