Automatic Differentiation: Techniques and Applications