Sacado
Development
|
Forward-mode AD class templated on the storage for the derivative array. More...
#include <Sacado_CacheFad_GeneralFad.hpp>
Public Types | |
typedef RemoveConst< T >::type | value_type |
Typename of values. | |
typedef ScalarType< value_type > ::type | scalar_type |
Typename of scalar's (which may be different from T) | |
Public Member Functions | |
Initialization methods | |
GeneralFad () | |
Default constructor. | |
template<typename S > | |
GeneralFad (const S &x, typename Sacado::mpl::enable_if< std::is_convertible< S, value_type >, void * >::type=0) | |
Constructor with supplied value x . More... | |
GeneralFad (const int sz, const T &x, const DerivInit zero_out=InitDerivArray) | |
Constructor with size sz and value x . More... | |
GeneralFad (const int sz, const int i, const T &x) | |
Constructor with size sz , index i , and value x . More... | |
GeneralFad (const Storage &s) | |
Constructor with supplied storage s . | |
GeneralFad (const GeneralFad &x) | |
Copy constructor. | |
template<typename S > | |
GeneralFad (const Expr< S > &x, typename mpl::enable_if_c< std::is_convertible< typename Expr< S >::value_type, value_type >::value &&ExprLevel< typename Expr< S >::value_type >::value==ExprLevel< value_type >::value, void * >::type=0) | |
Copy constructor from any Expression object. | |
~GeneralFad () | |
Destructor. | |
void | diff (const int ith, const int n) |
Set GeneralFad object as the ith independent variable. More... | |
void | setUpdateValue (bool update_val) |
Set whether this Fad object should update values. | |
bool | updateValue () const |
Return whether this Fad object has an updated value. | |
void | cache () const |
Cache values. | |
template<typename S > | |
mpl::enable_if_c < std::is_convertible < typename Expr< S > ::value_type, value_type > ::value &&ExprLevel< typename Expr< S >::value_type >::value==ExprLevel < value_type >::value, bool > ::type | isEqualTo (const Expr< S > &x) const |
Returns whether two Fad objects have the same values. | |
Derivative accessor methods | |
int | availableSize () const |
Returns number of derivative components that can be stored without reallocation. | |
bool | hasFastAccess () const |
Returns true if derivative array is not empty. | |
bool | isPassive () const |
Returns true if derivative array is empty. | |
void | setIsConstant (bool is_const) |
Set whether variable is constant. | |
Assignment operators | |
template<typename S > | |
Sacado::mpl::enable_if < std::is_convertible< S, value_type >, GeneralFad & > ::type | operator= (const S &v) |
Assignment operator with constant right-hand-side. | |
GeneralFad & | operator= (const GeneralFad &x) |
Assignment with Expr right-hand-side. | |
template<typename S > | |
mpl::enable_if_c < std::is_convertible < typename Expr< S > ::value_type, value_type > ::value &&ExprLevel< typename Expr< S >::value_type >::value==ExprLevel < value_type >::value, GeneralFad & >::type | operator= (const Expr< S > &x) |
Assignment operator with any expression right-hand-side. | |
Unary operators | |
template<typename S > | |
Sacado::mpl::enable_if < std::is_convertible< S, value_type >, GeneralFad & > ::type | operator+= (const S &v) |
Addition-assignment operator with constant right-hand-side. | |
template<typename S > | |
Sacado::mpl::enable_if < std::is_convertible< S, value_type >, GeneralFad & > ::type | operator-= (const S &v) |
Subtraction-assignment operator with constant right-hand-side. | |
template<typename S > | |
Sacado::mpl::enable_if < std::is_convertible< S, value_type >, GeneralFad & > ::type | operator*= (const S &v) |
Multiplication-assignment operator with constant right-hand-side. | |
template<typename S > | |
Sacado::mpl::enable_if < std::is_convertible< S, value_type >, GeneralFad & > ::type | operator/= (const S &v) |
Division-assignment operator with constant right-hand-side. | |
GeneralFad & | operator+= (const GeneralFad &x) |
Addition-assignment operator with GeneralFad right-hand-side. | |
GeneralFad & | operator-= (const GeneralFad &x) |
Subtraction-assignment operator with GeneralFad right-hand-side. | |
GeneralFad & | operator*= (const GeneralFad &x) |
Multiplication-assignment operator with GeneralFad right-hand-side. | |
GeneralFad & | operator/= (const GeneralFad &x) |
Division-assignment operator with GeneralFad right-hand-side. | |
template<typename S > | |
mpl::enable_if_c < std::is_convertible < typename Expr< S > ::value_type, value_type > ::value &&ExprLevel< typename Expr< S >::value_type >::value==ExprLevel < value_type >::value, GeneralFad & >::type | operator+= (const Expr< S > &x) |
Addition-assignment operator with Expr right-hand-side. | |
template<typename S > | |
mpl::enable_if_c < std::is_convertible < typename Expr< S > ::value_type, value_type > ::value &&ExprLevel< typename Expr< S >::value_type >::value==ExprLevel < value_type >::value, GeneralFad & >::type | operator-= (const Expr< S > &x) |
Subtraction-assignment operator with Expr right-hand-side. | |
template<typename S > | |
mpl::enable_if_c < std::is_convertible < typename Expr< S > ::value_type, value_type > ::value &&ExprLevel< typename Expr< S >::value_type >::value==ExprLevel < value_type >::value, GeneralFad & >::type | operator*= (const Expr< S > &x) |
Multiplication-assignment operator with Expr right-hand-side. | |
template<typename S > | |
mpl::enable_if_c < std::is_convertible < typename Expr< S > ::value_type, value_type > ::value &&ExprLevel< typename Expr< S >::value_type >::value==ExprLevel < value_type >::value, GeneralFad & >::type | operator/= (const Expr< S > &x) |
Division-assignment operator with Expr right-hand-side. | |
Forward-mode AD class templated on the storage for the derivative array.
This class provides a general forward mode AD implementation for any type of derivative array storage. It does not incorporate expression templates.
This version of GeneralFad is virtually identical to Sacado::Fad::GeneralFad, with small differences in the implementations of some of the methods to support caching of "values" of intermediate operations in an expression, recognizing that the "this" object might also be on the right-hand-side of an expression.
|
inline |
Constructor with supplied value x
.
Initializes value to x
and derivative array is empty
|
inline |
Constructor with size sz
and value x
.
Initializes value to x
and derivative array 0 of length sz
|
inline |
Constructor with size sz
, index i
, and value x
.
Initializes value to x
and derivative array of length sz
as row i
of the identity matrix, i.e., sets derivative component i
to 1 and all other's to zero.
|
inline |
Set GeneralFad object as the ith
independent variable.
Sets the derivative array of length n
to the ith
row of the identity matrix and has the same affect as the Implementation(const int sz, const int i, const T & x) constructor.