Sacado  Development
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
Classes | Public Types | Public Member Functions | List of all members
Sacado::Fad::DVFad< ValueT > Class Template Reference

Forward-mode AD class using dynamic memory allocation and expression templates. More...

#include <Sacado_Fad_DVFad.hpp>

Inheritance diagram for Sacado::Fad::DVFad< ValueT >:
Inheritance graph
[legend]
Collaboration diagram for Sacado::Fad::DVFad< ValueT >:
Collaboration graph
[legend]

Classes

struct  apply
 Turn DVFad into a meta-function class usable with mpl::apply. More...
 

Public Types

typedef VectorDynamicStorage
< ValueT > 
StorageType
 Base classes.
 
typedef GeneralFad< ValueT,
StorageType
GeneralFadType
 
typedef Expr< GeneralFadTypeExprType
 
typedef ExprType::value_type value_type
 Typename of values.
 
typedef ExprType::scalar_type scalar_type
 Typename of scalar's (which may be different from T)
 
typedef ScalarType< ValueT >::type ScalarT
 Typename of scalar's (which may be different from ValueT)
 
- Public Types inherited from Sacado::Fad::Expr< GeneralFad< ValueT, VectorDynamicStorage< ValueT > > >
typedef GeneralFad< ValueT,
VectorDynamicStorage< ValueT > > 
value_type
 

Public Member Functions

 ~DVFad ()
 Destructor.
 
template<typename S >
Sacado::mpl::enable_if
< std::is_convertible< S,
value_type >, DVFad & >::type 
operator= (const S &v)
 Assignment operator with constant right-hand-side.
 
DVFadoperator= (const DVFad &x)
 Assignment operator with DVFad 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, DVFad & >
::type 
operator= (const Expr< S > &x)
 Assignment operator with any expression right-hand-side.
 
template<typename S >
Sacado::mpl::enable_if
< std::is_convertible< S,
value_type >, DVFad & >::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 >, DVFad & >::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 >, DVFad & >::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 >, DVFad & >::type 
operator/= (const S &x)
 Division-assignment operator with constant right-hand-side.
 
DVFadoperator+= (const DVFad &x)
 Addition-assignment operator with DVFad right-hand-side.
 
DVFadoperator-= (const DVFad &x)
 Subtraction-assignment operator with DVFad right-hand-side.
 
DVFadoperator*= (const DVFad &x)
 Multiplication-assignment operator with DVFad right-hand-side.
 
DVFadoperator/= (const DVFad &x)
 Division-assignment operator with DVFad 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, DVFad & >
::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, DVFad & >
::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, DVFad & >
::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, DVFad & >
::type 
operator/= (const Expr< S > &x)
 Division-assignment operator with Expr right-hand-side.
 
Initialization methods
 DVFad ()
 Default constructor. More...
 
template<typename S >
 DVFad (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...
 
 DVFad (const int sz, const ValueT &x, const DerivInit zero_out=InitDerivArray)
 Constructor with size sz and value x. More...
 
 DVFad (const int sz, const int i, const ValueT &x)
 Constructor with size sz, index i, and value x. More...
 
 DVFad (const int sz, ValueT *x, ValueT *dx, bool zero_out=false)
 Constructor with supplied memory. More...
 
 DVFad (const int sz, const int i, ValueT *x, ValueT *dx)
 Constructor with supplied memory and index i. More...
 
 DVFad (const DVFad &x)
 Copy constructor.
 
template<typename S >
 DVFad (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.
 

Detailed Description

template<typename ValueT>
class Sacado::Fad::DVFad< ValueT >

Forward-mode AD class using dynamic memory allocation and 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::GeneralVFad.

Constructor & Destructor Documentation

template<typename ValueT>
Sacado::Fad::DVFad< ValueT >::DVFad ( )
inline

Default constructor.

Initializes value to 0 and derivative array is empty

template<typename ValueT>
template<typename S >
Sacado::Fad::DVFad< ValueT >::DVFad ( const S &  x,
typename Sacado::mpl::enable_if< std::is_convertible< S, value_type >, void * >::type  = 0 
)
inline

Constructor with supplied value x convertible to ValueT.

Initializes value to ValueT(x) and derivative array is empty.

template<typename ValueT>
Sacado::Fad::DVFad< ValueT >::DVFad ( const int  sz,
const ValueT &  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 ValueT>
Sacado::Fad::DVFad< ValueT >::DVFad ( const int  sz,
const int  i,
const ValueT &  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.

template<typename ValueT>
Sacado::Fad::DVFad< ValueT >::DVFad ( const int  sz,
ValueT *  x,
ValueT *  dx,
bool  zero_out = false 
)
inline

Constructor with supplied memory.

Initializes value to point to x and derivative array to point todx. Derivative array is zero'd out if zero_out is true.

template<typename ValueT>
Sacado::Fad::DVFad< ValueT >::DVFad ( const int  sz,
const int  i,
ValueT *  x,
ValueT *  dx 
)
inline

Constructor with supplied memory and index i.

Initializes value to point to x and derivative array to point todx. Initializes derivative array row i of the identity matrix, i.e., sets derivative component i to 1 and all other's to zero.


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