1 #ifndef NPSTAT_ARRAYNDSCANNER_HH_
2 #define NPSTAT_ARRAYNDSCANNER_HH_
42 {initialize(shape, lenShape);}
45 {initialize(shape.empty() ?
static_cast<unsigned*
>(0) :
46 &shape[0], shape.size());}
50 inline unsigned dim()
const {
return dim_;}
53 inline unsigned long state()
const {
return state_;}
56 inline unsigned long maxState()
const {
return maxState_;}
59 inline bool isValid()
const {
return state_ < maxState_;}
62 void getIndex(
unsigned* index,
unsigned indexBufferLen)
const;
65 inline void reset() {state_ = 0UL;}
69 {
if (state_ < maxState_) ++state_;
return *
this;}
72 inline void operator++(
int) {
if (state_ < maxState_) ++state_;}
76 {state_ =
state <= maxState_ ?
state : maxState_;}
81 void initialize(
const unsigned* shape,
unsigned lenShape);
83 unsigned long strides_[CHAR_BIT*
sizeof(
unsigned long)];
85 unsigned long maxState_;
Definition: ArrayNDScanner.hh:37
unsigned dim() const
Definition: ArrayNDScanner.hh:50
unsigned long state() const
Definition: ArrayNDScanner.hh:53
ArrayNDScanner & operator++()
Definition: ArrayNDScanner.hh:68
bool isValid() const
Definition: ArrayNDScanner.hh:59
unsigned long maxState() const
Definition: ArrayNDScanner.hh:56
void operator++(int)
Definition: ArrayNDScanner.hh:72
void reset()
Definition: ArrayNDScanner.hh:65
ArrayNDScanner(const unsigned *shape, const unsigned lenShape)
Definition: ArrayNDScanner.hh:41
void getIndex(unsigned *index, unsigned indexBufferLen) const
void setState(const unsigned long state)
Definition: ArrayNDScanner.hh:75
Definition: AbsArrayProjector.hh:14