20 #ifndef RAJA_pattern_tensor_TensorIndex_HPP
21 #define RAJA_pattern_tensor_TensorIndex_HPP
23 #include "RAJA/config.hpp"
33 template<
typename IDX,
36 strip_index_type_t<IDX> INDEX_VALUE,
37 strip_index_type_t<IDX> LENGTH_VALUE>
40 template<
typename INNER_TYPE>
43 template<
typename IDX,
typename TENSOR_TYPE, camp::
idx_t DIM>
82 template<value_type TBEGIN, value_type TEND>
100 : m_index(*seg.
begin()),
112 template<
typename T, camp::
idx_t D>
119 template<value_type IDX_VAL, value_type LEN_VAL>
163 template<
typename IDX,
164 typename TENSOR_TYPE,
189 template<
typename IDX,
typename VECTOR_TYPE>
195 template<
typename IDX,
typename MATRIX_TYPE>
201 template<
typename IDX,
typename MATRIX_TYPE>
207 template<
typename IDX,
typename MATRIX_TYPE>
217 template<
typename IDX,
typename MATRIX_TYPE>
RAJA header file for strongly-typed integer class.
Definition: TensorIndex.hpp:45
RAJA_INLINE static constexpr RAJA_HOST_DEVICE self_type all()
Definition: TensorIndex.hpp:55
RAJA_INLINE static constexpr RAJA_HOST_DEVICE StaticTensorIndex< StaticTensorIndexInner< IDX, TENSOR_TYPE, DIM, value_type(-1), value_type(-1)> > static_all()
Definition: TensorIndex.hpp:68
RAJA_INLINE constexpr RAJA_HOST_DEVICE TensorIndex(StaticTensorIndex< StaticTensorIndexInner< IDX, TENSOR_TYPE, DIM, IDX_VAL, LEN_VAL >> const RAJA_UNUSED_ARG(&c))
Definition: TensorIndex.hpp:120
RAJA_INLINE constexpr RAJA_HOST_DEVICE TensorIndex(TensorIndex< IDX, T, D > const &c)
Definition: TensorIndex.hpp:113
RAJA_INLINE constexpr RAJA_HOST_DEVICE index_type const & operator*() const
Definition: TensorIndex.hpp:131
RAJA_INLINE static constexpr RAJA_HOST_DEVICE self_type range(index_type begin, index_type end)
Definition: TensorIndex.hpp:77
RAJA_INLINE static constexpr RAJA_HOST_DEVICE StaticTensorIndex< StaticTensorIndexInner< IDX, TENSOR_TYPE, DIM, TBEGIN, TEND - TBEGIN > > static_range()
Definition: TensorIndex.hpp:85
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 TensorIndex(index_type value, value_type length)
Definition: TensorIndex.hpp:107
RAJA_INLINE constexpr RAJA_HOST_DEVICE value_type dim() const
Definition: TensorIndex.hpp:156
RAJA_INLINE constexpr RAJA_HOST_DEVICE index_type begin() const
Definition: TensorIndex.hpp:146
RAJA_INLINE constexpr RAJA_HOST_DEVICE TensorIndex()
Definition: TensorIndex.hpp:94
IDX index_type
Definition: TensorIndex.hpp:49
RAJA_INLINE constexpr RAJA_HOST_DEVICE TensorIndex(RAJA::TypedRangeSegment< IDX > const &seg)
Definition: TensorIndex.hpp:99
TENSOR_TYPE tensor_type
Definition: TensorIndex.hpp:50
TensorIndex< IDX, TENSOR_TYPE, DIM > self_type
Definition: TensorIndex.hpp:47
Header file for common RAJA internal macro definitions.
#define RAJA_HOST_DEVICE
Definition: macros.hpp:65
#define RAJA_UNUSED_ARG(x)
Definition: macros.hpp:97
RAJA_HOST_DEVICE constexpr RAJA_INLINE ColIndex< IDX, MATRIX_TYPE > toColIndex(RowIndex< IDX, MATRIX_TYPE > const &r)
Definition: TensorIndex.hpp:208
RAJA_HOST_DEVICE constexpr RAJA_INLINE RowIndex< IDX, MATRIX_TYPE > toRowIndex(ColIndex< IDX, MATRIX_TYPE > const &c)
Definition: TensorIndex.hpp:218
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
constexpr RAJA_HOST_DEVICE RAJA_INLINE std::enable_if< std::is_base_of< IndexValueBase, FROM >::value, typename FROM::value_type >::type stripIndexType(FROM const val)
Function that strips the strongly typed Index<> and returns its underlying value_type value.
Definition: IndexValue.hpp:323
Segment class representing a contiguous range of typed indices.
Definition: RangeSegment.hpp:100
Definition: TensorIndex.hpp:38
TENSOR_TYPE tensor_type
Definition: TensorIndex.hpp:175
strip_index_type_t< IDX > value_type
Definition: TensorIndex.hpp:173
IDX index_type
Definition: TensorIndex.hpp:174
Definition: TensorIndex.hpp:41