Sacado  Development
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Types | List of all members
Sacado::CacheFad::GeneralFad< T, Storage > Class Template Reference

Forward-mode AD class templated on the storage for the derivative array. More...

#include <Sacado_CacheFad_GeneralFad.hpp>

Inheritance diagram for Sacado::CacheFad::GeneralFad< T, Storage >:
Inheritance graph
[legend]
Collaboration diagram for Sacado::CacheFad::GeneralFad< T, Storage >:
Collaboration graph
[legend]

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.
 
GeneralFadoperator= (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.
 
GeneralFadoperator+= (const GeneralFad &x)
 Addition-assignment operator with GeneralFad right-hand-side.
 
GeneralFadoperator-= (const GeneralFad &x)
 Subtraction-assignment operator with GeneralFad right-hand-side.
 
GeneralFadoperator*= (const GeneralFad &x)
 Multiplication-assignment operator with GeneralFad right-hand-side.
 
GeneralFadoperator/= (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.
 

Detailed Description

template<typename T, typename Storage>
class Sacado::CacheFad::GeneralFad< T, Storage >

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.

Constructor & Destructor Documentation

template<typename T, typename Storage>
template<typename S >
Sacado::CacheFad::GeneralFad< T, Storage >::GeneralFad ( const S &  x,
typename Sacado::mpl::enable_if< std::is_convertible< S, value_type >, void * >::type  = 0 
)
inline

Constructor with supplied value x.

Initializes value to x and derivative array is empty

template<typename T, typename Storage>
Sacado::CacheFad::GeneralFad< T, Storage >::GeneralFad ( const int  sz,
const T &  x,
const DerivInit  zero_out = InitDerivArray 
)
inline

Constructor with size sz and value x.

Initializes value to x and derivative array 0 of length sz

template<typename T, typename Storage>
Sacado::CacheFad::GeneralFad< T, Storage >::GeneralFad ( const int  sz,
const int  i,
const T &  x 
)
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.

Member Function Documentation

template<typename T, typename Storage>
void Sacado::CacheFad::GeneralFad< T, Storage >::diff ( const int  ith,
const int  n 
)
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.


The documentation for this class was generated from the following file: