Lecture / Tutorial: Introduction to Algorithmic Differentiation

Contents

  1. Welcome
  2. Derivative code by overloading
    1. univariate scalar differentiable programs
      1. motivation. essential calculus. finite differences
      2. first derivative code
      3. second and higher derivative code
    2. multivariate vector-valued differentiable programs
      1. motivation. essential calculus. finite differences
      2. first-order tangent code
      3. second- and higher-order tangent code
      4. first-order adjoint
      5. second- and higher-order adjoint
      6. Exploitation of sparsity
  3. Derivative code by hand
    1. tangent code
    2. adjoint straight-line code
    3. adjoint intra- and interprocedural code
  4. Derivative code by automatic source transformation
    1. overview and lexical analysis
    2. syntax analysis
    3. attribute grammars and syntax-directed translation