AdaAutoDiff
C++ Templates and Ada Package for Automatic Differentiation
Operators are overloaded so that a normal looking function definition provides access to not only evaluations of itself, but to evaluations of any of its analytic derivatives.
Automatic differentiation means the user does not need to define the analytic expressions for all the various partial derivatives. It also means that those complex expressions are essentially calculated at compile time, and merely evaluated at runtime.
First order derivatives only, forward...