|
Mundy: Multibody Nonlocal Dynamics Version of the Day
|
A forward-mode autodiff scalar over passive real type T with N tracked derivatives. More...
#include <AutoDiffScalar.hpp>
Public Member Functions | |
Constructors and destructor | |
| constexpr | AutoDiffScalar ()=default |
| Default constructor. Value and derivatives are uninitialized. | |
| constexpr | AutoDiffScalar (const T &value) |
| Construct a constant: the given value with zero derivatives. | |
| constexpr | AutoDiffScalar (const T &value, const Vector< T, N > &derivatives) |
| Construct from a value and an explicit derivative vector. | |
| constexpr | AutoDiffScalar (const T &value, size_t index) |
Construct an independent variable: the given value with a unit derivative in slot index. | |
| constexpr | ~AutoDiffScalar ()=default |
| constexpr | AutoDiffScalar (const AutoDiffScalar &)=default |
| constexpr | AutoDiffScalar (AutoDiffScalar &&)=default |
| constexpr AutoDiffScalar & | operator= (const AutoDiffScalar &)=default |
| constexpr AutoDiffScalar & | operator= (AutoDiffScalar &&)=default |
Accessors | |
| constexpr const T & | value () const |
| The underlying value. | |
| constexpr T & | value () |
| constexpr const Vector< T, N > & | derivatives () const |
| The derivative vector. | |
| constexpr Vector< T, N > & | derivatives () |
Arithmetic with another AutoDiffScalar | |
| constexpr AutoDiffScalar | operator- () const |
| constexpr AutoDiffScalar | operator+ (const AutoDiffScalar &o) const |
| constexpr AutoDiffScalar | operator- (const AutoDiffScalar &o) const |
| constexpr AutoDiffScalar | operator* (const AutoDiffScalar &o) const |
| Product rule: (u v)' = u' v + u v'. | |
| constexpr AutoDiffScalar | operator/ (const AutoDiffScalar &o) const |
| Quotient rule: (u / v)' = (u' - (u/v) v') / v. | |
| constexpr AutoDiffScalar & | operator+= (const AutoDiffScalar &o) |
| constexpr AutoDiffScalar & | operator-= (const AutoDiffScalar &o) |
| constexpr AutoDiffScalar & | operator*= (const AutoDiffScalar &o) |
| constexpr AutoDiffScalar & | operator/= (const AutoDiffScalar &o) |
Arithmetic with a passive value | |
| constexpr AutoDiffScalar | operator+ (const T &s) const |
| constexpr AutoDiffScalar | operator- (const T &s) const |
| constexpr AutoDiffScalar | operator* (const T &s) const |
| constexpr AutoDiffScalar | operator/ (const T &s) const |
| constexpr AutoDiffScalar & | operator+= (const T &s) |
| constexpr AutoDiffScalar & | operator-= (const T &s) |
| constexpr AutoDiffScalar & | operator*= (const T &s) |
| constexpr AutoDiffScalar & | operator/= (const T &s) |
Type aliases | |
| using | value_type = T |
| The passive value type. | |
| using | derivative_type = Vector<T, N> |
| The derivative storage type. | |
| static constexpr size_t | num_derivatives = N |
| The number of tracked derivatives. | |
The value is a T; the derivatives are a Vector<T,N>, one slot per independent variable. Arithmetic and math operations carry both forward by the chain rule.
| T | The passive (non-differentiated) real type, e.g. double. |
| N | The number of independent variables whose derivatives are tracked. |
| using mundy::AutoDiffScalar< T, N >::value_type = T |
| using mundy::AutoDiffScalar< T, N >::derivative_type = Vector<T, N> |
|
constexprdefault |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
constexprdefault |
|
constexprdefault |
|
constexprdefault |
|
constexprdefault |
|
constexprdefault |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
staticconstexpr |