TAF is a source-to-source translator for Fortran 77-95 code, i.e. TAF accepts Fortran 77-95 code as input, applies a semantic transformation, and generates Fortran 77-95 code. TAF supports several semantic transformations. The most important one is Automatic Differentiation (AD), i.e. generation of code for evaluation of the first-order derivative (Jacobian matrix). This generated code can operate in forward or reverse mode (tangent linear or adjoint model). TAF can generate code to evaluate Jacobian times vector products or the full Jacobian. Higher order derivative code is generated by applying TAF multiple times.
Another TAF transformation is Automatic Sparsity Detection (ASD), i.e. efficient determination of the sparsity structure of the Jacobian matrix. This transformation is important, because the Jacobian's sparsity pattern can be exploited to render the evaluation of the Jacobian more efficient.
TAF also generates code to evaluate the underlying function several times simultaneously. This clone mode increases spatial locality of data accesses and thus can speed up the computations on modern architectures using a hirarchie of memory accesses.