Sacado Development
Loading...
Searching...
No Matches
Sacado::Fad::Exp::StaticStorage< T, Num > Class Template Reference

Derivative array storage class using static memory allocation. More...

#include <Sacado_Fad_Exp_StaticStorage.hpp>

Inheritance diagram for Sacado::Fad::Exp::StaticStorage< T, Num >:

Classes

struct  apply
 Turn StaticStorage into a meta-function class usable with mpl::apply. More...
struct  apply_N
 Replace static derivative length (interpreted as a fixed length). More...

Public Types

typedef std::remove_cv< T >::type value_type

Public Member Functions

SACADO_INLINE_FUNCTION StaticStorage ()
 Default constructor.
SACADO_INLINE_FUNCTION StaticStorage (const T &x)
 Constructor with value.
SACADO_INLINE_FUNCTION StaticStorage (const int sz, const T &x, const DerivInit zero_out=InitDerivArray)
 Constructor with size sz.
SACADO_INLINE_FUNCTION StaticStorage (const int sz, const int i, const value_type &x)
 Constructor with size sz, index i, and value x.
SACADO_INLINE_FUNCTION StaticStorage (const StaticStorage &x)
 Copy constructor.
SACADO_INLINE_FUNCTION StaticStorage (StaticStorage &&x)
 Move constructor.
SACADO_INLINE_FUNCTION ~StaticStorage ()
 Destructor.
SACADO_INLINE_FUNCTION StaticStorageoperator= (const StaticStorage &x)
 Assignment.
SACADO_INLINE_FUNCTION StaticStorageoperator= (StaticStorage &&x)
 Move assignment.
SACADO_INLINE_FUNCTION int size () const
 Returns number of derivative components.
SACADO_INLINE_FUNCTION int length () const
 Returns array length.
SACADO_INLINE_FUNCTION void resize (int sz)
 Resize the derivative array to sz.
SACADO_INLINE_FUNCTION void resizeAndZero (int sz)
 Resize the derivative array to sz.
SACADO_INLINE_FUNCTION void expand (int sz)
 Expand derivative array to size sz.
SACADO_INLINE_FUNCTION void zero ()
 Zero out derivative array.
SACADO_INLINE_FUNCTION const T & val () const
 Returns value.
SACADO_INLINE_FUNCTION T & val ()
 Returns value.
SACADO_INLINE_FUNCTION const T * dx () const
 Returns derivative array.
SACADO_INLINE_FUNCTION T dx (int i) const
 Returns derivative component i with bounds checking.
SACADO_INLINE_FUNCTION T & fastAccessDx (int i)
 Returns derivative component i without bounds checking.
SACADO_INLINE_FUNCTION const T & fastAccessDx (int i) const
 Returns derivative component i without bounds checking.

Static Public Attributes

static constexpr bool is_statically_sized = false
static constexpr int static_size = 0
static constexpr bool is_view = false

Protected Attributes

val_
 Value.
dx_ [Num]
 Derivative array.
int sz_
 Size of derivative array.

Detailed Description

template<typename T, int Num>
class Sacado::Fad::Exp::StaticStorage< T, Num >

Derivative array storage class using static memory allocation.

This class uses a statically allocated array whose dimension is fixed by the template parameter Num.

Constructor & Destructor Documentation

◆ StaticStorage() [1/2]

template<typename T, int Num>
SACADO_INLINE_FUNCTION Sacado::Fad::Exp::StaticStorage< T, Num >::StaticStorage ( const int sz,
const T & x,
const DerivInit zero_out = InitDerivArray )
inline

Constructor with size sz.

Initializes derivative array 0 of length sz

◆ StaticStorage() [2/2]

template<typename T, int Num>
SACADO_INLINE_FUNCTION Sacado::Fad::Exp::StaticStorage< T, Num >::StaticStorage ( const int sz,
const int i,
const value_type & 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.

Member Function Documentation

◆ expand()

template<typename T, int Num>
SACADO_INLINE_FUNCTION void Sacado::Fad::Exp::StaticStorage< T, Num >::expand ( int sz)
inline

Expand derivative array to size sz.

This method preserves any existing derivative components and sets any that are added to zero.

◆ resizeAndZero()

template<typename T, int Num>
SACADO_INLINE_FUNCTION void Sacado::Fad::Exp::StaticStorage< T, Num >::resizeAndZero ( int sz)
inline

Resize the derivative array to sz.

This method doest not preserve any existing derivative components but sets any that are added to zero.

Member Data Documentation

◆ dx_

template<typename T, int Num>
T Sacado::Fad::Exp::StaticStorage< T, Num >::dx_[Num]
protected

◆ sz_

template<typename T, int Num>
int Sacado::Fad::Exp::StaticStorage< T, Num >::sz_
protected

Size of derivative array.

Referenced by Sacado::Fad::Exp::StaticStorage< TT, Num >::operator=().

◆ val_

template<typename T, int Num>
T Sacado::Fad::Exp::StaticStorage< T, Num >::val_
protected

The documentation for this class was generated from the following file: