34class ARCCORE_COMMON_EXPORT StridedLoopRangesBase
38 constexpr StridedLoopRangesBase(
Int32 nb_stride,
Int64 nb_orig_element)
39 : m_stride_value((nb_orig_element + (nb_stride - 1)) / nb_stride)
40 , m_nb_original_element(nb_orig_element)
41 , m_nb_stride(nb_stride)
44 constexpr StridedLoopRangesBase(
Int64 nb_orig_element)
45 : m_stride_value(nb_orig_element)
46 , m_nb_original_element(nb_orig_element)
53 constexpr Int32 nbStride()
const {
return m_nb_stride; }
54 constexpr Int64 nbOriginalElement()
const {
return m_nb_original_element; }
55 constexpr Int64 strideValue()
const {
return m_stride_value; }
57 void setNbStride(
Int32 nb_stride) { _setNbStride(nb_stride); }
62 Int64 m_stride_value = 0;
64 Int64 m_nb_original_element = 0;
66 Int32 m_nb_stride = 0;
70 void _setNbStride(
Int32 nb_stride)
72 m_nb_stride = nb_stride;
73 m_stride_value = (m_nb_original_element + (nb_stride - 1)) / nb_stride;
84class StridedLoopRanges
85:
public StridedLoopRangesBase
89 using LoopBoundType = LoopBoundType_;
93 StridedLoopRanges(
Int32 nb_grid_stride,
const LoopBoundType& orig_loop)
94 : StridedLoopRangesBase(nb_grid_stride, orig_loop.nbElement())
95 , m_orig_loop(orig_loop)
98 StridedLoopRanges(
const LoopBoundType& orig_loop)
99 : StridedLoopRangesBase(orig_loop.nbElement())
100 , m_orig_loop(orig_loop)
103 constexpr const LoopBoundType& originalLoop()
const {
return m_orig_loop; }
107 LoopBoundType m_orig_loop;