Sacado Package Browser (Single Doxygen Collection) Version of the Day
Classes | Public Types | Static Public Attributes | Protected Attributes
Sacado::ELRFad::Expr< SFadExprTag< T, Num > > Class Template Reference

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

#include <Sacado_ELRFad_SFad.hpp>

List of all members.

Classes

struct  LocalAccumOp

Public Types

typedef T value_type
 Typename of values.
typedef Expr< SFadExprTag< T,
Num > > 
base_expr_type
 Typename of base-expressions.

Static Public Attributes

static const int num_args = 1
 Number of arguments.
static const bool is_linear = true
 Is expression linear.

Protected Attributes

val_
 Value.
dx_ [Num]
 Derivatives.
bool update_val_
 Update value.

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 expand (int sz)
 Expand derivative array to size sz.
void zero ()
 Zero out the derivative array.
void setUpdateValue (bool update_val)
 Set whether this Fad object should update values.
bool updateValue () const
 Return whether this Fad object has an updated value.
template<typename S >
bool isEqualTo (const Expr< S > &x) const
 Returns whether two Fad objects have the same values.

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.
void computePartials (const T &bar, T partials[]) const
 Return partials w.r.t. arguments.
void getTangents (int i, T dots[]) const
 Return tangent component i of arguments.
template<int Arg>
bool isActive () const
 Return whether argument is active.
template<int Arg>
const T & getTangent (int i) const
 Return tangent component i of argument Arg.

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.

Detailed Description

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

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

This classes specializes Expr to SFad expressions.

Definition at line 78 of file Sacado_ELRFad_SFad.hpp.


Member Typedef Documentation

template<typename T , int Num>
typedef T Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::value_type

Typename of values.

Definition at line 83 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
typedef Expr< SFadExprTag<T,Num> > Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::base_expr_type

Typename of base-expressions.

Definition at line 86 of file Sacado_ELRFad_SFad.hpp.


Constructor & Destructor Documentation

template<typename T , int Num>
Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::Expr ( ) [inline]

Default constructor.

Definition at line 100 of file Sacado_ELRFad_SFad.hpp.

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

Constructor with supplied value x.

Initializes value to x and derivative array is empty

Definition at line 106 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
Sacado::ELRFad::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::ELRFad::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.

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

Copy constructor.

Definition at line 124 of file Sacado_ELRFad_SFad.hpp.

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

Copy constructor from any Expression object.

template<typename T , int Num>
Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::~Expr ( ) [inline]

Destructor.

Definition at line 134 of file Sacado_ELRFad_SFad.hpp.


Member Function Documentation

template<typename T , int Num>
void Sacado::ELRFad::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::ELRFad::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.

template<typename T , int Num>
void Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::expand ( int  sz) [inline]

Expand derivative array to size sz.

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

Definition at line 157 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
void Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::zero ( ) [inline]

Zero out the derivative array.

Definition at line 160 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
void Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::setUpdateValue ( bool  update_val) [inline]

Set whether this Fad object should update values.

Definition at line 163 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
bool Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::updateValue ( ) const [inline]

Return whether this Fad object has an updated value.

Definition at line 166 of file Sacado_ELRFad_SFad.hpp.

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

Returns whether two Fad objects have the same values.

Definition at line 170 of file Sacado_ELRFad_SFad.hpp.

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

Returns value.

Definition at line 187 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
T& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::val ( ) [inline]

Returns value.

Definition at line 190 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
int Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::size ( ) const [inline]

Returns number of derivative components.

Definition at line 200 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
int Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::availableSize ( ) const [inline]

Returns number of derivative components that can be stored without reallocation.

Definition at line 206 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
bool Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::hasFastAccess ( ) const [inline]

Returns true if derivative array is not empty.

Definition at line 209 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
bool Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::isPassive ( ) const [inline]

Returns true if derivative array is empty.

Definition at line 212 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
void Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::setIsConstant ( bool  is_const) [inline]

Set whether variable is constant.

Definition at line 215 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
const T* Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::dx ( ) const [inline]

Returns derivative array.

Definition at line 218 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
const T& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::dx ( int  i) const [inline]

Returns derivative component i with bounds checking.

Definition at line 221 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
T& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::fastAccessDx ( int  i) [inline]

Returns derivative component i without bounds checking.

Definition at line 224 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
const T& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::fastAccessDx ( int  i) const [inline]

Returns derivative component i without bounds checking.

Definition at line 227 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
void Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::computePartials ( const T &  bar,
partials[] 
) const [inline]

Return partials w.r.t. arguments.

Definition at line 230 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
void Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::getTangents ( int  i,
dots[] 
) const [inline]

Return tangent component i of arguments.

Definition at line 235 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
template<int Arg>
bool Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::isActive ( ) const [inline]

Return whether argument is active.

Definition at line 241 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
template<int Arg>
const T& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::getTangent ( int  i) const [inline]

Return tangent component i of argument Arg.

Definition at line 245 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
Expr< SFadExprTag<T,Num> >& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::operator= ( const T &  val)

Assignment operator with constant right-hand-side.

template<typename T , int Num>
Expr< SFadExprTag<T,Num> >& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::operator= ( const Expr< SFadExprTag< T, Num > > &  x)

Assignment with Expr right-hand-side.

template<typename T , int Num>
template<typename S >
Expr< SFadExprTag<T,Num> >& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::operator= ( const Expr< S > &  x)

Assignment operator with any expression right-hand-side.

template<typename T , int Num>
Expr< SFadExprTag<T,Num> >& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::operator+= ( const T &  x)

Addition-assignment operator with constant right-hand-side.

template<typename T , int Num>
Expr< SFadExprTag<T,Num> >& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::operator-= ( const T &  x)

Subtraction-assignment operator with constant right-hand-side.

template<typename T , int Num>
Expr< SFadExprTag<T,Num> >& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::operator*= ( const T &  x)

Multiplication-assignment operator with constant right-hand-side.

template<typename T , int Num>
Expr< SFadExprTag<T,Num> >& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::operator/= ( const T &  x)

Division-assignment operator with constant right-hand-side.

template<typename T , int Num>
template<typename S >
Expr< SFadExprTag<T,Num> >& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::operator+= ( const Expr< S > &  x)

Addition-assignment operator with Expr right-hand-side.

template<typename T , int Num>
template<typename S >
Expr< SFadExprTag<T,Num> >& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::operator-= ( const Expr< S > &  x)

Subtraction-assignment operator with Expr right-hand-side.

template<typename T , int Num>
template<typename S >
Expr< SFadExprTag<T,Num> >& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::operator*= ( const Expr< S > &  x)

Multiplication-assignment operator with Expr right-hand-side.

template<typename T , int Num>
template<typename S >
Expr< SFadExprTag<T,Num> >& Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::operator/= ( const Expr< S > &  x)

Division-assignment operator with Expr right-hand-side.


Member Data Documentation

template<typename T , int Num>
const int Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::num_args = 1 [static]

Number of arguments.

Definition at line 89 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
const bool Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::is_linear = true [static]

Is expression linear.

Definition at line 92 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
T Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::val_ [protected]

Value.

Definition at line 305 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
T Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::dx_[Num] [protected]

Derivatives.

Definition at line 308 of file Sacado_ELRFad_SFad.hpp.

template<typename T , int Num>
bool Sacado::ELRFad::Expr< SFadExprTag< T, Num > >::update_val_ [protected]

Update value.

Definition at line 311 of file Sacado_ELRFad_SFad.hpp.


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