Sacado::ELRFad::SFad< ValueT, Num, ScalarT > Class Template Reference

Forward-mode AD class using static memory allocation. More...

#include <Sacado_ELRFad_SFad.hpp>

Inheritance diagram for Sacado::ELRFad::SFad< ValueT, Num, ScalarT >:

Inheritance graph
[legend]
Collaboration diagram for Sacado::ELRFad::SFad< ValueT, Num, ScalarT >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

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

Detailed Description

template<typename ValueT, int Num, typename ScalarT = typename ScalarValueType<ValueT>::type>
class Sacado::ELRFad::SFad< ValueT, Num, ScalarT >

Forward-mode AD class using static memory allocation.

This is the user-level class for forward mode AD with static memory allocation, and is appropriate for whenever the number of derivative components is known at compile time. The size of the derivative array is fixed by the template parameter Num.

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 SFad<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, int Num, typename ScalarT = typename ScalarValueType<ValueT>::type>
Sacado::ELRFad::SFad< ValueT, Num, ScalarT >::SFad (  )  [inline]

Default constructor.

Initializes value to 0 and derivative array is empty

template<typename ValueT, int Num, typename ScalarT = typename ScalarValueType<ValueT>::type>
Sacado::ELRFad::SFad< ValueT, Num, ScalarT >::SFad ( const ValueT &  x  )  [inline]

Constructor with supplied value x.

Initializes value to x and derivative array is empty

template<typename ValueT, int Num, typename ScalarT = typename ScalarValueType<ValueT>::type>
Sacado::ELRFad::SFad< ValueT, Num, ScalarT >::SFad ( 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, int Num, typename ScalarT = typename ScalarValueType<ValueT>::type>
Sacado::ELRFad::SFad< ValueT, Num, ScalarT >::SFad ( 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, int Num, typename ScalarT = typename ScalarValueType<ValueT>::type>
Sacado::ELRFad::SFad< ValueT, Num, ScalarT >::SFad ( 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 Wed May 12 21:58:57 2010 for Sacado by  doxygen 1.4.7