1 #ifndef MHO_BidirectionalIndexedIterator_HH__
2 #define MHO_BidirectionalIndexedIterator_HH__
37 const std::size_t* strides)
40 for(std::size_t i = 0; i < RANK; i++)
52 for(std::size_t i = 0; i < RANK; i++)
70 MHO_NDArrayMath::IncrementIndices< RANK >(&(
fDimensions[0]), &(
fIdx[0]));
87 MHO_NDArrayMath::DecrementIndices< RANK >(&(
fDimensions[0]), &(
fIdx[0]));
161 for(std::size_t i = 0; i < RANK; i++)
Class MHO_BidirectionalIndexedIterator.
Definition: MHO_BidirectionalIndexedIterator.hh:26
XValueType value_type
Definition: MHO_BidirectionalIndexedIterator.hh:29
self_type operator-(const std::ptrdiff_t &diff)
Definition: MHO_BidirectionalIndexedIterator.hh:139
pointer operator->()
Definition: MHO_BidirectionalIndexedIterator.hh:149
MHO_BidirectionalIndexedIterator self_type
Definition: MHO_BidirectionalIndexedIterator.hh:28
MHO_BidirectionalIndexedIterator(const self_type ©)
Definition: MHO_BidirectionalIndexedIterator.hh:50
const pointer operator->() const
Definition: MHO_BidirectionalIndexedIterator.hh:153
self_type operator+(const std::ptrdiff_t &diff)
Definition: MHO_BidirectionalIndexedIterator.hh:132
difference_type GetPositionOffset() const
Definition: MHO_BidirectionalIndexedIterator.hh:182
std::size_t fMemoryOffset
Definition: MHO_BidirectionalIndexedIterator.hh:198
self_type operator++()
Definition: MHO_BidirectionalIndexedIterator.hh:65
pointer GetPtr()
Definition: MHO_BidirectionalIndexedIterator.hh:178
self_type operator=(const self_type &rhs)
Definition: MHO_BidirectionalIndexedIterator.hh:155
bool operator==(const self_type &rhs) const
Definition: MHO_BidirectionalIndexedIterator.hh:174
XValueType & reference
Definition: MHO_BidirectionalIndexedIterator.hh:30
reference operator*()
Definition: MHO_BidirectionalIndexedIterator.hh:147
bool operator!=(const self_type &rhs) const
Definition: MHO_BidirectionalIndexedIterator.hh:176
index_type fDimensions
Definition: MHO_BidirectionalIndexedIterator.hh:191
pointer fBegin
Definition: MHO_BidirectionalIndexedIterator.hh:190
self_type operator-=(const std::ptrdiff_t &diff)
Definition: MHO_BidirectionalIndexedIterator.hh:124
self_type operator--()
Definition: MHO_BidirectionalIndexedIterator.hh:82
difference_type GetMemoryOffset() const
Definition: MHO_BidirectionalIndexedIterator.hh:184
self_type operator++(int)
Definition: MHO_BidirectionalIndexedIterator.hh:100
std::bidirectional_iterator_tag iterator_category
Definition: MHO_BidirectionalIndexedIterator.hh:32
index_type fIdx
Definition: MHO_BidirectionalIndexedIterator.hh:199
self_type operator+=(const std::ptrdiff_t &diff)
Definition: MHO_BidirectionalIndexedIterator.hh:116
bool IsValid() const
Definition: MHO_BidirectionalIndexedIterator.hh:186
std::ptrdiff_t difference_type
Definition: MHO_BidirectionalIndexedIterator.hh:33
reference operator*() const
Definition: MHO_BidirectionalIndexedIterator.hh:151
const pointer GetPtr() const
Definition: MHO_BidirectionalIndexedIterator.hh:180
index_type fStrides
Definition: MHO_BidirectionalIndexedIterator.hh:192
virtual ~MHO_BidirectionalIndexedIterator()
Definition: MHO_BidirectionalIndexedIterator.hh:63
std::array< std::size_t, RANK > index_type
Definition: MHO_BidirectionalIndexedIterator.hh:34
std::size_t fLength
Definition: MHO_BidirectionalIndexedIterator.hh:193
XValueType * pointer
Definition: MHO_BidirectionalIndexedIterator.hh:31
MHO_BidirectionalIndexedIterator(pointer begin_ptr, std::size_t position_offset, const std::size_t *dims, const std::size_t *strides)
Definition: MHO_BidirectionalIndexedIterator.hh:36
void CalculateOffsets()
Definition: MHO_BidirectionalIndexedIterator.hh:201
difference_type operator-(const self_type &iter)
Definition: MHO_BidirectionalIndexedIterator.hh:114
std::size_t fPositionOffset
Definition: MHO_BidirectionalIndexedIterator.hh:197
self_type operator--(int)
Definition: MHO_BidirectionalIndexedIterator.hh:107
pointer fPtr
Definition: MHO_BidirectionalIndexedIterator.hh:196
Definition: MHO_ChannelLabeler.hh:17