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 |