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

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

#include <Sacado_Fad_SFad.hpp>

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

Inheritance graph
[legend]
List of all members.

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.

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.

Detailed Description

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

Definition at line 269 of file Sacado_Fad_SFad.hpp.


Constructor & Destructor Documentation

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

Default constructor.

Initializes value to 0 and derivative array is empty

Definition at line 283 of file Sacado_Fad_SFad.hpp.

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

Constructor with supplied value x.

Initializes value to x and derivative array is empty

Definition at line 290 of file Sacado_Fad_SFad.hpp.

template<typename ValueT, int Num, typename ScalarT = typename ScalarValueType<ValueT>::type>
Sacado::Fad::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

Definition at line 297 of file Sacado_Fad_SFad.hpp.

template<typename ValueT, int Num, typename ScalarT = typename ScalarValueType<ValueT>::type>
Sacado::Fad::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

Definition at line 304 of file Sacado_Fad_SFad.hpp.

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

Definition at line 313 of file Sacado_Fad_SFad.hpp.

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

Copy constructor.

Definition at line 317 of file Sacado_Fad_SFad.hpp.

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

Copy constructor from any Expression object.

Definition at line 321 of file Sacado_Fad_SFad.hpp.

template<typename ValueT, int Num, typename ScalarT = typename ScalarValueType<ValueT>::type>
Sacado::Fad::SFad< ValueT, Num, ScalarT >::~SFad (  )  [inline]

Destructor.

Definition at line 327 of file Sacado_Fad_SFad.hpp.


Member Function Documentation

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

Assignment operator with constant right-hand-side.

Definition at line 330 of file Sacado_Fad_SFad.hpp.

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

Assignment operator with constant right-hand-side.

Definition at line 336 of file Sacado_Fad_SFad.hpp.

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

Assignment operator with DFad right-hand-side.

Definition at line 342 of file Sacado_Fad_SFad.hpp.

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

Assignment operator with any expression right-hand-side.

Definition at line 348 of file Sacado_Fad_SFad.hpp.


The documentation for this class was generated from the following file:
Generated on Wed May 12 21:59:12 2010 for Sacado Package Browser (Single Doxygen Collection) by  doxygen 1.4.7