TAC++ is a source-to-source translator for C(++) code, i.e. TAC++ accepts C(++) code as input, applies a semantic transformation, and generates C(++) code as output. The generated code can operate in forward or reverse mode (tangent linear or adjoint model). TAC++ can generate code to evaluate Jacobian times vector products or the full Jacobian. Higher order derivative code is generated by applying TAC++ multiple times. TAC++ transfers the well proven design concepts for our AD tool TAF to C(++).
See an overview and a list of references for some of the first TAC++ applications.
Download example of TAC++ generated code for a Monte Carlo simulation in computational finance (LIBOR market model). Original model code and hand-coded tangent and adjoint by Mike Giles are available here .
TAC++ is a commercial product. Contact us to obtain a TAC++ licence.