Sacado  Development
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
Sacado::Fad::Exp::VectorDynamicStorage< T, U > Class Template Reference

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

#include <Sacado_Fad_Exp_VectorDynamicStorage.hpp>

Classes

struct  apply
 Turn DynamicStorage into a meta-function class usable with mpl::apply. More...
 
struct  apply_N
 Replace static derivative length. More...
 

Public Types

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

Public Member Functions

KOKKOS_INLINE_FUNCTION VectorDynamicStorage ()
 Default constructor.
 
KOKKOS_INLINE_FUNCTION VectorDynamicStorage (const T &x)
 Constructor with value.
 
KOKKOS_INLINE_FUNCTION VectorDynamicStorage (const int sz, const T &x, const DerivInit zero_out=InitDerivArray)
 Constructor with size sz. More...
 
KOKKOS_INLINE_FUNCTION VectorDynamicStorage (const int sz, const int i, const value_type &x)
 Constructor with size sz, index i, and value x. More...
 
KOKKOS_INLINE_FUNCTION VectorDynamicStorage (const int sz, T *x, U *dx_p, const int stride, bool zero_out)
 Constructor with supplied memory.
 
KOKKOS_INLINE_FUNCTION VectorDynamicStorage (const VectorDynamicStorage &x)
 Copy constructor.
 
KOKKOS_INLINE_FUNCTION ~VectorDynamicStorage ()
 Destructor.
 
KOKKOS_INLINE_FUNCTION
VectorDynamicStorage
operator= (const VectorDynamicStorage &x)
 Assignment.
 
KOKKOS_INLINE_FUNCTION int size () const
 Returns number of derivative components.
 
KOKKOS_INLINE_FUNCTION int length () const
 Returns array length.
 
KOKKOS_INLINE_FUNCTION void resize (int sz)
 Resize the derivative array to sz. More...
 
KOKKOS_INLINE_FUNCTION void resizeAndZero (int sz)
 Resize the derivative array to sz. More...
 
KOKKOS_INLINE_FUNCTION void expand (int sz)
 Expand derivative array to size sz. More...
 
KOKKOS_INLINE_FUNCTION void zero ()
 Zero out derivative array.
 
KOKKOS_INLINE_FUNCTION void setMemory (int sz, T *x, U *dx_p, int stride)
 Set value/derivative array memory.
 
KOKKOS_INLINE_FUNCTION const T & val () const
 Returns value.
 
KOKKOS_INLINE_FUNCTION T & val ()
 Returns value.
 
KOKKOS_INLINE_FUNCTION const U * dx () const
 Returns derivative array.
 
KOKKOS_INLINE_FUNCTION U dx (int i) const
 Returns derivative component i with bounds checking.
 
KOKKOS_INLINE_FUNCTION U & fastAccessDx (int i)
 Returns derivative component i without bounds checking.
 
KOKKOS_INLINE_FUNCTION const U & 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
 

Detailed Description

template<typename T, typename U = T>
class Sacado::Fad::Exp::VectorDynamicStorage< T, U >

Derivative array storage class using dynamic memory allocation.

Constructor & Destructor Documentation

template<typename T , typename U = T>
KOKKOS_INLINE_FUNCTION Sacado::Fad::Exp::VectorDynamicStorage< T, U >::VectorDynamicStorage ( const int  sz,
const T &  x,
const DerivInit  zero_out = InitDerivArray 
)
inline

Constructor with size sz.

Initializes derivative array 0 of length sz

References Sacado::ds_array< T, isScalar >::get(), and Sacado::ds_array< T, isScalar >::get_and_fill().

template<typename T , typename U = T>
KOKKOS_INLINE_FUNCTION Sacado::Fad::Exp::VectorDynamicStorage< T, U >::VectorDynamicStorage ( 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

template<typename T , typename U = T>
KOKKOS_INLINE_FUNCTION void Sacado::Fad::Exp::VectorDynamicStorage< T, U >::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.

References Sacado::ds_array< T, isScalar >::copy(), Sacado::ds_array< T, isScalar >::destroy_and_release(), Sacado::ds_array< T, isScalar >::get_and_fill(), and Sacado::ds_array< T, isScalar >::strided_zero().

template<typename T , typename U = T>
KOKKOS_INLINE_FUNCTION void Sacado::Fad::Exp::VectorDynamicStorage< T, U >::resize ( int  sz)
inline

Resize the derivative array to sz.

Note: This does not necessarily preserve derivative components.

References Sacado::ds_array< T, isScalar >::destroy_and_release(), and Sacado::ds_array< T, isScalar >::get_and_fill().

template<typename T , typename U = T>
KOKKOS_INLINE_FUNCTION void Sacado::Fad::Exp::VectorDynamicStorage< T, U >::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.

References Sacado::ds_array< T, isScalar >::destroy_and_release(), Sacado::ds_array< T, isScalar >::get_and_fill(), and Sacado::ds_array< T, isScalar >::strided_zero().


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