## Abstract

Automatic differentiation is a technique for the rule-based transformation of a subprogram that computes some mathematical function into a subprogram that computes the derivatives of that function. Automatic differentiation algorithms are typically expressed as operating on a weighted term graph called a linearized computational graph. Constructing this weighted term graph for imperative programming languages such as C/C++ and Fortran introduces several challenges. Alias and definition-use information is needed to construct term graphs for individual statements and then combine them into one graph for a collection of statements. Furthermore, the resulting weighted term graph must be represented in a language-independent fashion to enable the use of AD algorithms in tools for various languages. We describe the construction and representation of weighted term graphs for C/C++ and Fortran, as implemented in the ADIC 2.0 and OpenAD/F tools for automatic differentiation.

Original language | English (US) |
---|---|

Pages (from-to) | 99-111 |

Number of pages | 13 |

Journal | Electronic Notes in Theoretical Computer Science |

Volume | 176 |

Issue number | 1 |

DOIs | |

State | Published - May 28 2007 |

Externally published | Yes |

## Keywords

- automatic differentiation
- computational graph
- term graph

## ASJC Scopus subject areas

- Theoretical Computer Science
- General Computer Science