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 >
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 >
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
528 #endif // STOKHOS_STATIC_FIXED_STORAGE_HPP 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 reference getCoeff()
KOKKOS_INLINE_FUNCTION void init(const_reference v) volatile
Initialize values to a constant value.
Statically allocated storage class.
KOKKOS_DEFAULTED_FUNCTION StaticFixedStorage()=default
Constructor.
Kokkos::DefaultExecutionSpace execution_space
KOKKOS_INLINE_FUNCTION StaticFixedStorage(const ordinal_type &sz, const value_type &x=value_type(0.0))
Constructor.
Stokhos::StaticArrayTraits< value_type, execution_space > ss
const volatile value_type & const_volatile_reference
Static array allocation class.
KOKKOS_INLINE_FUNCTION void load(pointer v)
Load values to an array of values.
KOKKOS_INLINE_FUNCTION void load(pointer v) volatile
Load values to an array of values.
static const int static_size
const volatile value_type * const_volatile_pointer
Stokhos::MemoryTraits< memory_space > MemTraits
KOKKOS_INLINE_FUNCTION void init(const_pointer v, const ordinal_type &sz=0)
Initialize values to an array of values.
const value_type * const_pointer
KOKKOS_INLINE_FUNCTION void resize(const ordinal_type &sz)
Resize to new size (values are preserved)
Turn StaticFixedStorage into a meta-function class usable with mpl::apply.
const IndexType const IndexType const IndexType const IndexType const ValueType const ValueType * x
KOKKOS_INLINE_FUNCTION void init(const_pointer v, const ordinal_type &sz=0) volatile
Initialize values to an array of values.
KOKKOS_INLINE_FUNCTION void resize(const ordinal_type &sz) volatile
Resize to new size (values are preserved)
KOKKOS_INLINE_FUNCTION StaticFixedStorage(const ordinal_type &sz, pointer v, bool owned)
Constructor for creating a view (not allowed)
const value_type & const_reference
StaticFixedStorage< ordinal_type, value_type, N, device_t > type
Top-level namespace for Stokhos classes and functions.
Traits class encapsulting memory alignment.
KOKKOS_INLINE_FUNCTION StaticFixedStorage & operator=(const volatile StaticFixedStorage &s) volatile
Assignment operator.
KOKKOS_INLINE_FUNCTION StaticFixedStorage(const ordinal_type &sz, const value_type *x)
Constructor from array.
device_t::execution_space execution_space
KOKKOS_INLINE_FUNCTION StaticFixedStorage & operator=(const StaticFixedStorage &s) volatile
Assignment operator.
KOKKOS_INLINE_FUNCTION pointer coeff()
Get coefficients.
static const unsigned Alignment
Bytes to which memory allocations are aligned.
volatile value_type & volatile_reference
static KOKKOS_INLINE_FUNCTION ordinal_type size()
Return size.
KOKKOS_INLINE_FUNCTION const_volatile_reference getCoeff() const volatile
device_t::memory_space memory_space
KOKKOS_INLINE_FUNCTION volatile_reference getCoeff() volatile
KOKKOS_INLINE_FUNCTION const_reference getCoeff() const
static const bool is_static
KOKKOS_INLINE_FUNCTION const_volatile_pointer coeff() const volatile
Get coefficients.
KOKKOS_INLINE_FUNCTION const_pointer coeff() const
Get coefficients.
KOKKOS_INLINE_FUNCTION void init(const_reference v)
Initialize values to a constant value.
StaticFixedStorage< ord_t, val_t, Num, dev_t > type
KOKKOS_DEFAULTED_FUNCTION StaticFixedStorage & operator=(const StaticFixedStorage &s)=default
Assignment operator.
KOKKOS_INLINE_FUNCTION StaticFixedStorage & operator=(const volatile StaticFixedStorage &s)
Assignment operator.
KOKKOS_INLINE_FUNCTION const_reference operator[](const ordinal_type &i) const
Coefficient access (avoid if possible)
static const bool supports_reset
KOKKOS_INLINE_FUNCTION StaticFixedStorage(const volatile StaticFixedStorage &s)
Copy constructor.
value_type coeff_[Num]
Coefficient values.
std::enable_if< Kokkos::is_view_uq_pce< Kokkos::View< XD, XP... > >::value >::type fill(const Kokkos::View< XD, XP... > &x, const typename Kokkos::View< XD, XP... >::non_const_value_type &val)
KOKKOS_INLINE_FUNCTION volatile_pointer coeff() volatile
Get coefficients.
#define STOKHOS_STORAGE_HELPER_STRINGNAME_STATIC(__storagename__)
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()=default
Destructor.
volatile value_type * volatile_pointer