20template <
unsigned Dim>
class NDIndex;
22template <
unsigned Dim>
24template <
unsigned Dim>
27template <
unsigned Dim>
29template <
unsigned Dim>
32template <
unsigned Dim>
35template <
unsigned Dim>
37template <
unsigned Dim>
40template <
unsigned Dim>
43template <
unsigned Dim>
46template <
unsigned Dim,
unsigned Dim2>
49template <
unsigned Dim>
59template<
unsigned D1,
unsigned D2>
107 unsigned size()
const;
132 for ( d = 0 ; d <
Dim ; ++d )
140 for ( d = 0 ; d <
Dim ; ++d )
151template <
unsigned Dim>
156 for (
unsigned d=0; d<
Dim; d++) newNdi[d] = ndi[d] + off[d];
159template <
unsigned Dim>
164 for (
unsigned d=0; d<
Dim; d++) newNdi[d] = off[d] + ndi[d];
167template <
unsigned Dim>
172 for (
unsigned d=0; d<
Dim; d++) newNdi[d] = ndi[d] - off[d];
175template <
unsigned Dim>
180 for (
unsigned d=0; d<
Dim; d++) newNdi[d] = off[d] - ndi[d];
185template <
unsigned Dim>
190 for (
unsigned d=0; d<
Dim; d++) newNdi[d] = -ndi[d];
193template <
unsigned Dim>
198 for (
unsigned d=0; d<
Dim; d++) newNdi[d] = ndi[d] * mult[d];
201template <
unsigned Dim>
206 for (
unsigned d=0; d<
Dim; d++) newNdi[d] = mult[d] * ndi[d];
209template <
unsigned Dim>
214 for (
unsigned d=0; d<
Dim; d++) newNdi[d] = ndi[d]/denom[d];
220template <
unsigned Dim>
223 for (
unsigned d=0; d<
Dim; ++d) {
224 if (lhs[d] < rhs[d])
return true;
225 if ( !(lhs[d]==rhs[d]) )
return false;
230template <
unsigned Dim,
unsigned Dim2>
236 for (
unsigned d=0; d<
Dim; ++d)
237 if ( !(lhs[d]==rhs[d]) )
return false;
243template <
unsigned Dim>
248 for (d = 0; d <
Dim; ++d)
249 out << idx[d] << ((d==
Dim-1) ?
'}' :
',');
260template<
unsigned Dim>
271template<
unsigned Dim>
278 return a.contains(b);
282template<
unsigned Dim>
297#ifndef NDINDEX_INLINES_H
NDIndex< Dim > operator/(const NDIndex< Dim > &, const int *)
bool operator<(const NDIndex< Dim > &, const NDIndex< Dim > &)
NDIndex< Dim > operator+(const NDIndex< Dim > &, const int *)
NDIndex< D1 > plugBase(const NDIndex< D1 > &, const NDIndex< D2 > &)
NDIndex< Dim > operator*(const NDIndex< Dim > &, const int *)
bool operator==(const NDIndex< Dim > &, const NDIndex< Dim2 > &)
NDIndex< Dim > operator-(const NDIndex< Dim > &, const int *)
std::ostream & operator<<(std::ostream &, const NDIndex< Dim > &)
bool touches(const NDIndex< Dim > &) const
Message & putMessage(Message &m) const
NDIndex< Dim > plugBase(const NDIndex< D > &i) const
bool contains(const NDIndex< Dim > &a) const
Message & getMessage(Message &m)
const Index & operator[](unsigned d) const
Index & operator[](unsigned d)
NDIndex< Dim > intersect(const NDIndex< Dim > &) const
bool split(NDIndex< Dim > &l, NDIndex< Dim > &r, unsigned d, double a) const
NDIndex(const NDIndex< Dim-1 > &, const Index &)
bool containsAllPoints(const NDIndex< Dim > &b) const
static bool test(const NDIndex< Dim > &a, const NDIndex< Dim > &b)
static bool test(const NDIndex< Dim > &a, const NDIndex< Dim > &b)
static bool test(NDIndex< Dim > &l, NDIndex< Dim > &r, const NDIndex< Dim > &a)