32template <
int num_dimensions>
35 is_regular_range(regular_true)
38template <
int num_dimensions>
41 is_regular_range(range.is_regular_range)
44template <
int num_dimensions>
47 is_regular_range(regular_to_do)
50template <
int num_dimensions>
53 : base_type(min_v[1], max_v[1]),
54 is_regular_range(regular_true)
57 this->
fill(lower_dims);
60template <
int num_dimensions>
62 : base_type(sizes[1]),
63 is_regular_range(regular_true)
66 this->
fill(lower_dims);
69template <
int num_dimensions>
74 if (this->is_regular_range == regular_true && this->
get_length() > 0)
83template <
int num_dimensions>
91template <
int num_dimensions>
95 return !(*
this == range2);
98template <
int num_dimensions>
102 switch (is_regular_range)
108 case regular_to_do: {
164 return max - min + 1;
170 return std::size_t(this->get_length());
class BasicCoordinate<int num_dimensions, typename coordT> defines num_dimensions -dimensional coordi...
Definition BasicCoordinate.h:57
This class defines ranges which can be 'irregular'.
Definition IndexRange.h:69
size_t size_all() const
return the total number of elements in this range
Definition IndexRange.inl:71
bool is_regular() const
checks if the range is 'regular'
Definition IndexRange.inl:100
bool get_regular_range(BasicCoordinate< num_dimensions, int > &min, BasicCoordinate< num_dimensions, int > &max) const
bool operator==(const IndexRange< num_dimensions > &) const
comparison operator
Definition IndexRange.inl:85
IndexRange()
Empty range.
Definition IndexRange.inl:33
int get_max_index() const
int get_min_index() const
virtual void resize(const int min_index, const int max_index)
void fill(const IndexRange< num_dimensions - 1 > &n)
IndexRange< num_dimensions - 1 > * num
Definition VectorWithOffset.h:370
BasicCoordinate< num_dimensions - 1, coordT > cut_first_dimension(const BasicCoordinate< num_dimensions, coordT > &c)
make a shorter BasicCoordinate, by cutting the first element from c
Definition BasicCoordinate.inl:477