swMATH ID: 6597
Software Authors: Radul, Alexey; Pearlmutter, Barak A.; Siskind, Jeffrey Mark
Description: AD {it in} Fortran: implementation via prepreprocessor We describe an implementation of the {it Farfel Fortran77 AD extensions} [{it A. Radul} et al., “AD in Fortran, Part 1: Design”, url{arXiv:1203.1448}]. These extensions integrate forward and reverse AD directly into the programming model, with attendant benefits to flexibility, modularity, and ease of use. The implementation we describe is a “prepreprocessor” that generates input to existing Fortran-based AD tools. In essence, blocks of code which are targeted for AD by Farfel constructs are put into subprograms which capture their lexical variable context, and these are closure-converted into top-level subprograms and specialized to eliminate { t EXTERNAL} arguments, rendering them amenable to existing AD preprocessors, which are then invoked, possibly repeatedly if the AD is nested.
Homepage: http://www.bcl.hamilton.ie/~qobi/fortran/
Keywords: nesting; multiple transformation; forward mode; reverse mode; { t Tapenade}; { t ADIFOR}; programming-language implementation
Related Software: TAPENADE; ADIFOR; DiffSharp; Stan
Cited in: 2 Publications

Citations by Year