Sacado
Development
|
Expression template forward-mode AD class with static memory allocation. More...
#include <Sacado_CacheFad_SFad.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) | |
typedef SFad< value_type, Num > | base_expr_type |
Typename of base-expressions. | |
Public Member Functions | |
Initialization methods | |
Expr () | |
Default constructor. | |
template<typename S > | |
Expr (const S &x, typename Sacado::mpl::enable_if< Sacado::mpl::is_convertible< S, value_type >, void * >::type=0) | |
Constructor with supplied value x . More... | |
Expr (const int sz, const T &x, const DerivInit zero_out=InitDerivArray) | |
Constructor with size sz and value x . More... | |
Expr (const int sz, const int i, const T &x) | |
Constructor with size sz , index i , and value x . More... | |
Expr (const Expr &x) | |
Copy constructor. | |
template<typename S > | |
Expr (const Expr< S > &x, typename mpl::enable_if_c< mpl::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. | |
~Expr () | |
Destructor. | |
void | diff (const int ith, const int n) |
Set Fad object as the ith independent variable. More... | |
void | resize (int sz) |
Resize derivative array to length sz . More... | |
void | expand (int sz) |
Expand derivative array to size sz. More... | |
void | zero () |
Zero out the derivative array. | |
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 < mpl::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. | |
Value accessor methods | |
const T & | val () const |
Returns value. | |
T & | val () |
Returns value. | |
Derivative accessor methods | |
int | size () const |
Returns number of derivative components. | |
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. | |
const T * | dx () const |
Returns derivative array. | |
const T & | dx (int i) const |
Returns derivative component i with bounds checking. | |
T & | fastAccessDx (int i) |
Returns derivative component i without bounds checking. | |
const T & | fastAccessDx (int i) const |
Returns derivative component i without bounds checking. | |
Assignment operators | |
template<typename S > | |
Sacado::mpl::enable_if < Sacado::mpl::is_convertible < S, value_type >, Expr & > ::type | operator= (const S &v) |
Assignment operator with constant right-hand-side. | |
Expr & | operator= (const Expr &x) |
Assignment with Expr right-hand-side. | |
template<typename S > | |
mpl::enable_if_c < mpl::is_convertible < typename Expr< S > ::value_type, value_type > ::value &&ExprLevel< typename Expr< S >::value_type >::value==ExprLevel < value_type >::value, Expr & > ::type | operator= (const Expr< S > &x) |
Assignment operator with any expression right-hand-side. | |
Unary operators | |
template<typename S > | |
Sacado::mpl::enable_if < Sacado::mpl::is_convertible < S, value_type >, Expr & > ::type | operator+= (const S &v) |
Addition-assignment operator with constant right-hand-side. | |
template<typename S > | |
Sacado::mpl::enable_if < Sacado::mpl::is_convertible < S, value_type >, Expr & > ::type | operator-= (const S &v) |
Subtraction-assignment operator with constant right-hand-side. | |
template<typename S > | |
Sacado::mpl::enable_if < Sacado::mpl::is_convertible < S, value_type >, Expr & > ::type | operator*= (const S &v) |
Multiplication-assignment operator with constant right-hand-side. | |
template<typename S > | |
Sacado::mpl::enable_if < Sacado::mpl::is_convertible < S, value_type >, Expr & > ::type | operator/= (const S &v) |
Division-assignment operator with constant right-hand-side. | |
template<typename S > | |
mpl::enable_if_c < mpl::is_convertible < typename Expr< S > ::value_type, value_type > ::value &&ExprLevel< typename Expr< S >::value_type >::value==ExprLevel < value_type >::value, Expr & > ::type | operator+= (const Expr< S > &x) |
Addition-assignment operator with Expr right-hand-side. | |
template<typename S > | |
mpl::enable_if_c < mpl::is_convertible < typename Expr< S > ::value_type, value_type > ::value &&ExprLevel< typename Expr< S >::value_type >::value==ExprLevel < value_type >::value, Expr & > ::type | operator-= (const Expr< S > &x) |
Subtraction-assignment operator with Expr right-hand-side. | |
template<typename S > | |
mpl::enable_if_c < mpl::is_convertible < typename Expr< S > ::value_type, value_type > ::value &&ExprLevel< typename Expr< S >::value_type >::value==ExprLevel < value_type >::value, Expr & > ::type | operator*= (const Expr< S > &x) |
Multiplication-assignment operator with Expr right-hand-side. | |
template<typename S > | |
mpl::enable_if_c < mpl::is_convertible < typename Expr< S > ::value_type, value_type > ::value &&ExprLevel< typename Expr< S >::value_type >::value==ExprLevel < value_type >::value, Expr & > ::type | operator/= (const Expr< S > &x) |
Division-assignment operator with Expr right-hand-side. | |
Protected Attributes | |
T | dx_ [Num] |
Derivatives. | |
T | val_ |
Value. | |
Expression template forward-mode AD class with static memory allocation.
|
inline |
Constructor with supplied value x
.
Initializes value to x
and derivative array is empty
References Sacado::ss_array< T, isScalar >::zero().
|
inline |
Constructor with size sz
and value x
.
Initializes value to x
and derivative array 0 of length sz
References Sacado::ss_array< T, isScalar >::zero().
|
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.
References Sacado::ss_array< T, isScalar >::zero().
|
inline |
Set Fad 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.
References Sacado::ss_array< T, isScalar >::zero().
|
inline |
Expand derivative array to size sz.
Since the derivative array length is not dynamic, this method throws an error if compiled with SACADO_DEBUG defined.
|
inline |
Resize derivative array to length sz
.
Since the derivative array length is not dynamic, this method throws an error if compiled with SACADO_DEBUG defined.