Sacado
Development
|
Forward-mode AD class using dynamic memory allocation but no expression templates. More...
#include <Sacado_Fad_SimpleFad.hpp>
Classes | |
struct | apply |
Turn SimpleFad into a meta-function class usable with mpl::apply. More... | |
Public Types | |
typedef DynamicStorage< ValueT > | StorageType |
Base classes. | |
typedef GeneralFad< ValueT, StorageType > | GeneralFadType |
typedef GeneralFadType::value_type | value_type |
Typename of values. | |
typedef GeneralFadType::scalar_type | scalar_type |
Typename of scalar's (which may be different from value_type) | |
typedef ScalarType< ValueT >::type | ScalarT |
Typename of scalar's (which may be different from ValueT) | |
Public Types inherited from Sacado::Fad::GeneralFad< ValueT, DynamicStorage< ValueT > > | |
typedef RemoveConst< ValueT >::type | value_type |
Typename of values. | |
typedef ScalarType< value_type > ::type | scalar_type |
Typename of scalar's (which may be different from T) | |
Public Types inherited from Sacado::Fad::DynamicStorage< ValueT > | |
typedef ValueT | value_type |
Public Member Functions | |
~SimpleFad () | |
Destructor. | |
bool | isEqualTo (const SimpleFad &x) const |
Returns whether two Fad objects have the same values. | |
template<typename S > | |
Sacado::mpl::enable_if < std::is_convertible< S, value_type >, SimpleFad & > ::type | operator= (const S &v) |
Assignment operator with constant right-hand-side. | |
SimpleFad & | operator= (const SimpleFad &x) |
Assignment operator with SimpleFad right-hand-side. | |
template<typename S > | |
Sacado::mpl::enable_if < std::is_convertible< S, value_type >, SimpleFad & > ::type | operator+= (const S &x) |
Addition-assignment operator with constant right-hand-side. | |
template<typename S > | |
Sacado::mpl::enable_if < std::is_convertible< S, value_type >, SimpleFad & > ::type | operator-= (const S &x) |
Subtraction-assignment operator with constant right-hand-side. | |
template<typename S > | |
Sacado::mpl::enable_if < std::is_convertible< S, value_type >, SimpleFad & > ::type | operator*= (const S &x) |
Multiplication-assignment operator with constant right-hand-side. | |
template<typename S > | |
Sacado::mpl::enable_if < std::is_convertible< S, value_type >, SimpleFad & > ::type | operator/= (const S &x) |
Division-assignment operator with constant right-hand-side. | |
SimpleFad & | operator+= (const SimpleFad &x) |
Addition-assignment operator with SimpleFad right-hand-side. | |
SimpleFad & | operator-= (const SimpleFad &x) |
Subtraction-assignment operator with SimpleFad right-hand-side. | |
SimpleFad & | operator*= (const SimpleFad &x) |
Multiplication-assignment operator with SimpleFad right-hand-side. | |
SimpleFad & | operator/= (const SimpleFad &x) |
Division-assignment operator with SimpleFad right-hand-side. | |
Initialization methods | |
SimpleFad () | |
Default constructor. More... | |
template<typename S > | |
SimpleFad (const S &x, typename Sacado::mpl::enable_if< std::is_convertible< S, value_type >, void * >::type=0) | |
Constructor with supplied value x convertible to ValueT. More... | |
SimpleFad (const int sz, const ValueT &x, const DerivInit zero_out=InitDerivArray) | |
Constructor with size sz and value x . More... | |
SimpleFad (const int sz, const int i, const ValueT &x) | |
Constructor with size sz , index i , and value x . More... | |
SimpleFad (const SimpleFad &x) | |
Copy constructor. | |
SimpleFad (const SimpleFad &x, const ValueT &v, const ValueT &partial) | |
Tangent copy constructor. | |
Public Member Functions inherited from Sacado::Fad::GeneralFad< ValueT, DynamicStorage< ValueT > > | |
GeneralFad () | |
Default constructor. | |
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 ValueT &x, const DerivInit zero_out=InitDerivArray) | |
Constructor with size sz and value x . More... | |
GeneralFad (const int sz, const int i, const ValueT &x) | |
Constructor with size sz , index i , and value x . More... | |
GeneralFad (const DynamicStorage< ValueT > &s) | |
Constructor with supplied storage s . | |
GeneralFad (const GeneralFad &x) | |
Copy constructor. | |
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. | |
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. | |
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. | |
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 GeneralFad right-hand-side. | |
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. | |
Sacado::mpl::enable_if < std::is_convertible< S, value_type >, GeneralFad & > ::type | operator+= (const S &v) |
Addition-assignment operator with constant right-hand-side. | |
GeneralFad & | operator+= (const GeneralFad &x) |
Addition-assignment operator with GeneralFad right-hand-side. | |
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. | |
Sacado::mpl::enable_if < std::is_convertible< S, value_type >, GeneralFad & > ::type | operator-= (const S &v) |
Subtraction-assignment operator with constant right-hand-side. | |
GeneralFad & | operator-= (const GeneralFad &x) |
Subtraction-assignment operator with GeneralFad right-hand-side. | |
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. | |
Sacado::mpl::enable_if < std::is_convertible< S, value_type >, GeneralFad & > ::type | operator*= (const S &v) |
Multiplication-assignment operator with constant right-hand-side. | |
GeneralFad & | operator*= (const GeneralFad &x) |
Multiplication-assignment operator with GeneralFad right-hand-side. | |
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. | |
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) |
Division-assignment operator with GeneralFad right-hand-side. | |
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. | |
Public Member Functions inherited from Sacado::Fad::DynamicStorage< ValueT > | |
DynamicStorage (const S &x, SACADO_ENABLE_VALUE_CTOR_DECL) | |
Default constructor. | |
DynamicStorage (const int sz, const ValueT &x, const DerivInit zero_out=InitDerivArray) | |
Constructor with size sz . More... | |
DynamicStorage (const DynamicStorage &x) | |
Copy constructor. | |
~DynamicStorage () | |
Destructor. | |
DynamicStorage & | operator= (const DynamicStorage &x) |
Assignment. | |
int | size () const |
Returns number of derivative components. | |
int | length () const |
Returns array length. | |
void | resize (int sz) |
Resize the derivative array to sz. More... | |
void | resizeAndZero (int sz) |
Resize the derivative array to sz. More... | |
void | expand (int sz) |
Expand derivative array to size sz. More... | |
void | zero () |
Zero out derivative array. | |
const ValueT & | val () const |
Returns value. | |
ValueT & | val () |
Returns value. | |
const ValueT * | dx () const |
Returns derivative array. | |
ValueT | dx (int i) const |
Returns derivative component i with bounds checking. | |
ValueT & | fastAccessDx (int i) |
Returns derivative component i without bounds checking. | |
const ValueT & | fastAccessDx (int i) const |
Returns derivative component i without bounds checking. | |
Additional Inherited Members | |
Protected Attributes inherited from Sacado::Fad::DynamicStorage< ValueT > | |
ValueT | val_ |
Value. | |
int | sz_ |
Derivative array size. | |
int | len_ |
Derivative array length. | |
ValueT * | dx_ |
Derivative array. | |
Forward-mode AD class using dynamic memory allocation but no expression templates.
This is the user-level class for forward mode AD with dynamic memory allocation, and is appropriate for whenever the number of derivative components is not known at compile time. The user interface is provided by Sacado::Fad::GeneralFad.
|
inline |
Default constructor.
Initializes value to 0 and derivative array is empty
|
inline |
Constructor with supplied value x
convertible to ValueT.
Initializes value to ValueT(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.