An Introduction To Automatic Differentiation