Sacado::Fad::DMFad< ValueT, ScalarT > Class Template Reference

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

#include <Sacado_Fad_DMFad.hpp>

Inheritance diagram for Sacado::Fad::DMFad< ValueT, ScalarT >:

Inheritance graph
[legend]
Collaboration diagram for Sacado::Fad::DMFad< ValueT, ScalarT >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ~DMFad ()
 Destructor.
DMFadoperator= (const ValueT &val)
 Assignment operator with constant right-hand-side.
DMFadoperator= (const ScalarT &val)
 Assignment operator with constant right-hand-side.
DMFadoperator= (const DMFad &x)
 Assignment operator with DMFad right-hand-side.
template<typename S>
DMFadoperator= (const Expr< S > &x)
 Assignment operator with any expression right-hand-side.
Initialization methods
 DMFad ()
 Default constructor.
 DMFad (const ValueT &x)
 Constructor with supplied value x of type ValueT.
 DMFad (const ScalarT &x)
 Constructor with supplied value x of type ScalarT.
 DMFad (const int sz, const ValueT &x)
 Constructor with size sz and value x.
 DMFad (const int sz, const int i, const ValueT &x)
 Constructor with size sz, index i, and value x.
 DMFad (const DMFad &x)
 Copy constructor.
template<typename S>
 DMFad (const Expr< S > &x)
 Copy constructor from any Expression object.

Static Public Member Functions

static void setDefaultPool (MemPool *pool)
 Set the default memory pool for new objects.

Detailed Description

template<typename ValueT, typename ScalarT = typename ScalarValueType<ValueT>::type>
class Sacado::Fad::DMFad< ValueT, ScalarT >

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::GeneralFad.

The class is templated on two types, ValueT and ScalarT. Type ValueT is the type for values the derivative class holds, while type ScalarT is the type of basic scalars in the code being differentiated (usually doubles). When computing first derivatives, these two types are generally the same, However when computing higher derivatives, ValueT may be DFad<double> while ScalarT will still be double. Usually ScalarT does not need to be explicitly specified since it can be deduced from ValueT through the template metafunction ScalarValueType.


Constructor & Destructor Documentation

template<typename ValueT, typename ScalarT = typename ScalarValueType<ValueT>::type>
Sacado::Fad::DMFad< ValueT, ScalarT >::DMFad (  )  [inline]

Default constructor.

Initializes value to 0 and derivative array is empty

template<typename ValueT, typename ScalarT = typename ScalarValueType<ValueT>::type>
Sacado::Fad::DMFad< ValueT, ScalarT >::DMFad ( const ValueT &  x  )  [inline]

Constructor with supplied value x of type ValueT.

Initializes value to x and derivative array is empty

template<typename ValueT, typename ScalarT = typename ScalarValueType<ValueT>::type>
Sacado::Fad::DMFad< ValueT, ScalarT >::DMFad ( const ScalarT &  x  )  [inline]

Constructor with supplied value x of type ScalarT.

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

template<typename ValueT, typename ScalarT = typename ScalarValueType<ValueT>::type>
Sacado::Fad::DMFad< ValueT, ScalarT >::DMFad ( const int  sz,
const ValueT &  x 
) [inline]

Constructor with size sz and value x.

Initializes value to x and derivative array 0 of length sz

template<typename ValueT, typename ScalarT = typename ScalarValueType<ValueT>::type>
Sacado::Fad::DMFad< ValueT, ScalarT >::DMFad ( 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.


The documentation for this class was generated from the following file:
Generated on Tue Oct 20 12:54:55 2009 for Sacado by doxygen 1.4.7