Skip to content

Supported algorithmic differentiation (autodiff) features

The listings might be incomplete. If something is missing, it is not supported. Algorithmic differentiation is applied via the autodiff metafunction. Maybe the planned features are added in 2026. Do not wait for them. The autodif feature is a proof of concept implementation.

** Reverse mode algorithmic differentiation is very experimental. Expect it to break. **

Currently supported or planned features

Description Status forward Status reverse
Type definitions (structures) Supported Supported
Member values Supported Planned
Member functions Supported Supported
Function arguments Supported Supported
Function return arguments Supported Supported
Addition and multiplication Supported Supported
Prefix addition and subtraction Supported Planned
Static member function calls Supported Supported
Member function calls Supported Planned
Function calls Supported Supported
Math functions (sin, cos, exp, sqrt) Supported Supported
If else Supported Planned
Return statement Supported Planned
Intermediate variables Supported Supported
Passive variables Supported Supported
While loop Supported Planned
Do while loop Supported Planned
For loop Supported Supported
Template arguments Planned Planned
Lambda functions Planned Planned