*Automatic Differentiation*(AD) is a set of techniques based on the mechanical application of the chain rule to obtain derivatives of a function given as a computer program. AD exploits the fact that every computer program, no matter how complicated, executes a sequence of elementary arithmetic operations such as additions or elementary functions such as exp(). By applying the chain rule of derivative calculus repeatedly to these operations, derivatives of arbitrary order can be computed automatically, and accurate to working precision.

Conceptually, AD is different from *symbolic differentiation*
and approximations by *divided differences*.

AD is used in the following areas:

- Numerical Methods
- Sensitivity Analysis
- Design Optimization
- Data Assimilation & Inverse Problems