42#ifndef STOKHOS_STATIC_FIXED_STORAGE_HPP
43#define STOKHOS_STATIC_FIXED_STORAGE_HPP
50#ifndef KOKKOS_IMPL_PUBLIC_INCLUDE
51#define KOKKOS_IMPL_PUBLIC_INCLUDE
52#define KOKKOS_IMPL_PUBLIC_INCLUDE_NOTDEFINED_CORE
54#include "Kokkos_Core_fwd.hpp"
55#include "Kokkos_Cuda.hpp"
56#ifdef KOKKOS_IMPL_PUBLIC_INCLUDE_NOTDEFINED_CORE
57#undef KOKKOS_IMPL_PUBLIC_INCLUDE
58#undef KOKKOS_IMPL_PUBLIC_INCLUDE_NOTDEFINED_CORE
61#include "Sacado_Traits.hpp"
68 template <
typename ordinal_t,
typename value_t,
int Num,
typename device_t>
93 template <
typename ord_t,
typename val_t = value_t ,
typename dev_t = device_t >
95 typedef StaticFixedStorage<ord_t,val_t,Num,dev_t>
type;
100 typedef StaticFixedStorage<ordinal_type,value_type,N,device_t>
type;
104 KOKKOS_DEFAULTED_FUNCTION
108 KOKKOS_INLINE_FUNCTION
115 KOKKOS_INLINE_FUNCTION
121 KOKKOS_INLINE_FUNCTION
125 KOKKOS_DEFAULTED_FUNCTION
129 KOKKOS_INLINE_FUNCTION
135 KOKKOS_DEFAULTED_FUNCTION
139 KOKKOS_DEFAULTED_FUNCTION
143 KOKKOS_INLINE_FUNCTION
150 KOKKOS_INLINE_FUNCTION
158 KOKKOS_INLINE_FUNCTION
166 KOKKOS_INLINE_FUNCTION
172 KOKKOS_INLINE_FUNCTION
178 KOKKOS_INLINE_FUNCTION
187 KOKKOS_INLINE_FUNCTION
196 KOKKOS_INLINE_FUNCTION
202 KOKKOS_INLINE_FUNCTION
208 KOKKOS_INLINE_FUNCTION
212 KOKKOS_INLINE_FUNCTION
216 KOKKOS_INLINE_FUNCTION
221 KOKKOS_INLINE_FUNCTION
226 KOKKOS_INLINE_FUNCTION
230 KOKKOS_INLINE_FUNCTION
236 KOKKOS_INLINE_FUNCTION
242 KOKKOS_INLINE_FUNCTION
246 KOKKOS_INLINE_FUNCTION
251 KOKKOS_INLINE_FUNCTION
255 KOKKOS_INLINE_FUNCTION
259 KOKKOS_INLINE_FUNCTION
263 KOKKOS_INLINE_FUNCTION
267 KOKKOS_INLINE_FUNCTION
271 KOKKOS_INLINE_FUNCTION
275 KOKKOS_INLINE_FUNCTION
279 KOKKOS_INLINE_FUNCTION
285#if STOKHOS_ALIGN_MEMORY && ( defined(__INTEL_COMPILER) )
293#if defined(KOKKOS_ENABLE_CUDA)
300 template <
typename ordinal_t,
typename value_t,
int Num>
321 typedef typename execution_space::memory_space
memory_space;
325 template <
typename ord_t,
typename val_t = value_t ,
typename dev_t = execution_space >
327 typedef StaticFixedStorage<ord_t,val_t,Num,dev_t>
type;
332 typedef StaticFixedStorage<ordinal_type,value_type,N,execution_space>
type;
336 KOKKOS_DEFAULTED_FUNCTION
340 KOKKOS_INLINE_FUNCTION
347 KOKKOS_INLINE_FUNCTION
353 KOKKOS_INLINE_FUNCTION
357 KOKKOS_DEFAULTED_FUNCTION
361 KOKKOS_INLINE_FUNCTION
363 ss::copy(s.coeff_,
coeff_, Num);
367 KOKKOS_DEFAULTED_FUNCTION
371 KOKKOS_DEFAULTED_FUNCTION
375 KOKKOS_INLINE_FUNCTION
377 ss::copy(s.coeff_,
coeff_, Num);
382 KOKKOS_INLINE_FUNCTION
385 ss::copy(s.coeff_,
coeff_, Num);
390 KOKKOS_INLINE_FUNCTION
393 ss::copy(s.coeff_,
coeff_, Num);
398 KOKKOS_INLINE_FUNCTION
404 KOKKOS_INLINE_FUNCTION
410 KOKKOS_INLINE_FUNCTION
419 KOKKOS_INLINE_FUNCTION
428 KOKKOS_INLINE_FUNCTION
434 KOKKOS_INLINE_FUNCTION
440 KOKKOS_INLINE_FUNCTION
444 KOKKOS_INLINE_FUNCTION
448 KOKKOS_INLINE_FUNCTION
453 KOKKOS_INLINE_FUNCTION
458 KOKKOS_INLINE_FUNCTION
462 KOKKOS_INLINE_FUNCTION
468 KOKKOS_INLINE_FUNCTION
474 KOKKOS_INLINE_FUNCTION
478 KOKKOS_INLINE_FUNCTION
483 KOKKOS_INLINE_FUNCTION
487 KOKKOS_INLINE_FUNCTION
491 KOKKOS_INLINE_FUNCTION
495 KOKKOS_INLINE_FUNCTION
499 KOKKOS_INLINE_FUNCTION
503 KOKKOS_INLINE_FUNCTION
507 KOKKOS_INLINE_FUNCTION
511 KOKKOS_INLINE_FUNCTION
#define STOKHOS_STORAGE_HELPER_STRINGNAME_STATIC(__storagename__)
Statically allocated storage class.
value_type coeff_[Num]
Coefficient values.
KOKKOS_INLINE_FUNCTION const_volatile_reference getCoeff() const volatile
static KOKKOS_INLINE_FUNCTION ordinal_type size()
Return size.
KOKKOS_INLINE_FUNCTION const_reference operator[](const ordinal_type &i) const
Coefficient access (avoid if possible)
Stokhos::MemoryTraits< memory_space > MemTraits
KOKKOS_INLINE_FUNCTION StaticFixedStorage(const ordinal_type &sz, pointer v, bool owned)
Constructor for creating a view (not allowed)
KOKKOS_INLINE_FUNCTION StaticFixedStorage(const ordinal_type &sz, const value_type &x=value_type(0.0))
Constructor.
KOKKOS_INLINE_FUNCTION StaticFixedStorage(const volatile StaticFixedStorage &s)
Copy constructor.
KOKKOS_INLINE_FUNCTION reference getCoeff()
KOKKOS_INLINE_FUNCTION void resize(const ordinal_type &sz) volatile
Resize to new size (values are preserved)
KOKKOS_DEFAULTED_FUNCTION ~StaticFixedStorage()=default
Destructor.
KOKKOS_DEFAULTED_FUNCTION StaticFixedStorage()=default
Constructor.
KOKKOS_INLINE_FUNCTION void init(const_pointer v, const ordinal_type &sz=0)
Initialize values to an array of values.
const volatile value_type * const_volatile_pointer
device_t::execution_space execution_space
KOKKOS_INLINE_FUNCTION void init(const_reference v)
Initialize values to a constant value.
KOKKOS_INLINE_FUNCTION const_reference getCoeff() const
volatile value_type & volatile_reference
KOKKOS_INLINE_FUNCTION StaticFixedStorage & operator=(const StaticFixedStorage &s) volatile
Assignment operator.
KOKKOS_INLINE_FUNCTION void resize(const ordinal_type &sz)
Resize to new size (values are preserved)
volatile value_type * volatile_pointer
KOKKOS_DEFAULTED_FUNCTION StaticFixedStorage & operator=(const StaticFixedStorage &s)=default
Assignment operator.
const value_type & const_reference
static const int static_size
Stokhos::StaticArrayTraits< value_type, execution_space > ss
KOKKOS_INLINE_FUNCTION void init(const_pointer v, const ordinal_type &sz=0) volatile
Initialize values to an array of values.
KOKKOS_INLINE_FUNCTION StaticFixedStorage & operator=(const volatile StaticFixedStorage &s)
Assignment operator.
KOKKOS_INLINE_FUNCTION void init(const_reference v) volatile
Initialize values to a constant value.
KOKKOS_INLINE_FUNCTION pointer coeff()
Get coefficients.
const volatile value_type & const_volatile_reference
const value_type * const_pointer
KOKKOS_INLINE_FUNCTION StaticFixedStorage(const ordinal_type &sz, const value_type *x)
Constructor from array.
KOKKOS_INLINE_FUNCTION void load(pointer v)
Load values to an array of values.
KOKKOS_INLINE_FUNCTION const_volatile_pointer coeff() const volatile
Get coefficients.
KOKKOS_INLINE_FUNCTION StaticFixedStorage & operator=(const volatile StaticFixedStorage &s) volatile
Assignment operator.
KOKKOS_INLINE_FUNCTION volatile_reference getCoeff() volatile
KOKKOS_INLINE_FUNCTION void shallowReset(pointer v, const ordinal_type &sz, const ordinal_type &stride, bool owned) volatile
Reset storage to given array, size, and stride.
KOKKOS_INLINE_FUNCTION volatile_pointer coeff() volatile
Get coefficients.
static const bool supports_reset
KOKKOS_INLINE_FUNCTION void load(pointer v) volatile
Load values to an array of values.
KOKKOS_INLINE_FUNCTION const_pointer coeff() const
Get coefficients.
KOKKOS_INLINE_FUNCTION void shallowReset(pointer v, const ordinal_type &sz, const ordinal_type &stride, bool owned)
Reset storage to given array, size, and stride.
KOKKOS_DEFAULTED_FUNCTION StaticFixedStorage(const StaticFixedStorage &s)=default
Copy constructor.
device_t::memory_space memory_space
static const bool is_static
Top-level namespace for Stokhos classes and functions.
Traits class encapsulting memory alignment.
static const unsigned Alignment
Bytes to which memory allocations are aligned.
Static array allocation class.
StaticFixedStorage< ordinal_type, value_type, N, device_t > type
Turn StaticFixedStorage into a meta-function class usable with mpl::apply.
StaticFixedStorage< ord_t, val_t, Num, dev_t > type