Sacado Development
Public Types | Protected Attributes
Sacado::Fad::Expr< SFadExprTag< T, Num > > Class Template Reference

Expression template forward-mode AD class with static memory allocation. More...

#include <Sacado_Fad_SFad.hpp>

Collaboration diagram for Sacado::Fad::Expr< SFadExprTag< T, Num > >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef T value_type
 Typename of values.

Public Member Functions

Initialization methods
 Expr ()
 Default constructor.
 Expr (const T &x)
 Constructor with supplied value x.
 Expr (const int sz, const T &x)
 Constructor with size sz and value x.
 Expr (const int sz, const int i, const T &x)
 Constructor with size sz, index i, and value x.
 Expr (const Expr &x)
 Copy constructor.
template<typename S >
 Expr (const Expr< S > &x)
 Copy constructor from any Expression object.
 ~Expr ()
 Destructor.
void diff (const int ith, const int n)
 Set Fad object as the ith independent variable.
void resize (int sz)
 Resize derivative array to length sz.
void zero ()
 Zero out the derivative array.
Value accessor methods
const T & val () const
 Returns value.
T & val ()
 Returns value.
Derivative accessor methods
int size () const
 Returns number of derivative components.
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.
const T * dx () const
 Returns derivative array.
const T & dx (int i) const
 Returns derivative component i with bounds checking.
T & fastAccessDx (int i)
 Returns derivative component i without bounds checking.
const T & fastAccessDx (int i) const
 Returns derivative component i without bounds checking.
Assignment operators
Expr< SFadExprTag< T, Num > > & operator= (const T &val)
 Assignment operator with constant right-hand-side.
Expr< SFadExprTag< T, Num > > & operator= (const Expr< SFadExprTag< T, Num > > &x)
 Assignment with Expr right-hand-side.
template<typename S >
Expr< SFadExprTag< T, Num > > & operator= (const Expr< S > &x)
 Assignment operator with any expression right-hand-side.
Unary operators
Expr< SFadExprTag< T, Num > > & operator+= (const T &x)
 Addition-assignment operator with constant right-hand-side.
Expr< SFadExprTag< T, Num > > & operator-= (const T &x)
 Subtraction-assignment operator with constant right-hand-side.
Expr< SFadExprTag< T, Num > > & operator*= (const T &x)
 Multiplication-assignment operator with constant right-hand-side.
Expr< SFadExprTag< T, Num > > & operator/= (const T &x)
 Division-assignment operator with constant right-hand-side.
template<typename S >
Expr< SFadExprTag< T, Num > > & operator+= (const Expr< S > &x)
 Addition-assignment operator with Expr right-hand-side.
template<typename S >
Expr< SFadExprTag< T, Num > > & operator-= (const Expr< S > &x)
 Subtraction-assignment operator with Expr right-hand-side.
template<typename S >
Expr< SFadExprTag< T, Num > > & operator*= (const Expr< S > &x)
 Multiplication-assignment operator with Expr right-hand-side.
template<typename S >
Expr< SFadExprTag< T, Num > > & operator/= (const Expr< S > &x)
 Division-assignment operator with Expr right-hand-side.

Protected Attributes

val_
 Value.
dx_ [Num]
 Derivatives.

Detailed Description

template<typename T, int Num>
class Sacado::Fad::Expr< SFadExprTag< T, Num > >

Expression template forward-mode AD class with static memory allocation.

This classes specializes Expr to SFad expressions.


Constructor & Destructor Documentation

template<typename T , int Num>
Sacado::Fad::Expr< SFadExprTag< T, Num > >::Expr ( const T &  x) [inline]

Constructor with supplied value x.

Initializes value to x and derivative array is empty

template<typename T , int Num>
Sacado::Fad::Expr< SFadExprTag< T, Num > >::Expr ( const int  sz,
const T &  x 
)

Constructor with size sz and value x.

Initializes value to x and derivative array 0 of length sz

template<typename T , int Num>
Sacado::Fad::Expr< SFadExprTag< T, Num > >::Expr ( const int  sz,
const int  i,
const T &  x 
)

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 , int Num>
void Sacado::Fad::Expr< SFadExprTag< T, Num > >::diff ( const int  ith,
const int  n 
)

Set Fad 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.

template<typename T , int Num>
void Sacado::Fad::Expr< SFadExprTag< T, Num > >::resize ( int  sz)

Resize derivative array to length sz.

Since the derivative array length is not dynamic, this method throws an error if compiled with SACADO_DEBUG defined.


The documentation for this class was generated from the following file:
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends