The Core framework of AutoDiff implements the abstract coordinate-free concepts of differentiation (see Mathematical background below). It offers class templates for evaluating and differentiating expressions of any value and derivative type. Through a plugin system, separate modules can provide concrete implementation of these concepts for particular combinations of value and derivative types.
AutoDiff is designed as a framework that can be extended by users with additional modules for specific value and derivative types. The following modules are currently available as part of the library:
- Basic module - scalar expressions with C++ built-in types
- Eigen module - expressions with scalars, Eigen arrays, and (dense) Eigen matrices