20 #ifndef RAJA_pattern_tensor_TensorIndexTraits_HPP
21 #define RAJA_pattern_tensor_TensorIndexTraits_HPP
23 #include "RAJA/config.hpp"
35 template<
typename IDX,
typename VECTOR_TYPE, camp::
idx_t DIM>
47 template<
typename ARG>
92 template<
typename IDX,
typename TENSOR_TYPE, camp::
idx_t DIM>
140 return TENSOR_TYPE::s_dim_elem(DIM);
144 template<
typename IDX,
145 typename TENSOR_TYPE,
150 RAJA::expt::StaticTensorIndexInner<IDX,
199 return TENSOR_TYPE::s_dim_elem(DIM);
210 template<
typename ARG>
216 template<
typename ARG>
223 template<
typename ARG>
235 template<
typename ARG,
typename IDX>
248 template<
typename ARG,
typename IDX>
269 template<
typename ARG>
282 template<
typename IDX,
typename TENSOR_TYPE, camp::
idx_t DIM, camp::
idx_t
id>
286 template<
typename Data>
288 TensorIndex<IDX, TENSOR_TYPE, DIM>
292 camp::get<id>(data.segment_tuple)
293 .begin()[camp::get<id>(data.offset_tuple)],
294 camp::get<id>(data.vector_sizes));
302 template<
typename IDX,
typename TENSOR_TYPE, camp::
idx_t DIM, camp::
idx_t
id>
306 template<
typename Data>
308 TensorIndex<IDX, TENSOR_TYPE, DIM>
312 IDX(camp::get<id>(data.offset_tuple)),
313 camp::get<id>(data.vector_sizes));
RAJA header file defining SIMD/SIMT register operations.
Definition: TensorIndex.hpp:45
RAJA_INLINE constexpr RAJA_HOST_DEVICE value_type size() const
Definition: TensorIndex.hpp:151
strip_index_type_t< IDX > value_type
Definition: TensorIndex.hpp:48
RAJA_INLINE constexpr RAJA_HOST_DEVICE index_type begin() const
Definition: TensorIndex.hpp:146
Header file for common RAJA internal macro definitions.
#define RAJA_HOST_DEVICE
Definition: macros.hpp:65
RAJA_INLINE constexpr RAJA_HOST_DEVICE auto stripTensorIndexByValue(ARG const arg) -> typename TensorIndexTraits< ARG >::arg_type const
Definition: TensorIndexTraits.hpp:224
RAJA_INLINE constexpr RAJA_HOST_DEVICE IDX getTensorBegin(ARG const &arg, IDX dim_minval)
Definition: TensorIndexTraits.hpp:249
RAJA_INLINE constexpr RAJA_HOST_DEVICE auto stripTensorIndex(ARG const &arg) -> typename TensorIndexTraits< ARG >::arg_type const &
Definition: TensorIndexTraits.hpp:217
RAJA_INLINE constexpr RAJA_HOST_DEVICE IDX getTensorSize(ARG const &arg, IDX dim_size)
Definition: TensorIndexTraits.hpp:236
RAJA_INLINE constexpr RAJA_HOST_DEVICE auto getTensorDim() -> decltype(TensorIndexTraits< ARG >::dim())
Definition: TensorIndexTraits.hpp:270
RAJA_INLINE constexpr RAJA_HOST_DEVICE bool isTensorIndex()
Definition: TensorIndexTraits.hpp:211
Definition: AlignedRangeIndexSetBuilders.cpp:35
typename internal::StripIndexTypeT< FROM >::type strip_index_type_t
Strips a strongly typed index to its underlying type In the case of a non-strongly typed index,...
Definition: IndexValue.hpp:364
Definition: TensorIndex.hpp:38
Definition: TensorIndex.hpp:41
typename RAJA::expt::TensorIndex< IDX, VECTOR_TYPE, DIM >::value_type type
Definition: TensorIndexTraits.hpp:39
Definition: IndexValue.hpp:344