39 #include "subscript.h"
47 template <
class Array1D>
50 template <
class Array1D>
59 typedef typename Array1D::element_type
T;
62 const Array1D &
array()
const {
return A_; }
69 #ifdef TNT_BOUNDS_CHECK
70 BIASASSERT(i==TNT_BASE_OFFSET);
77 #ifdef TNT_BOUNDS_CHECK
78 BIASASSERT(i== TNT_BASE_OFFSET);
86 #ifdef TNT_BOUNDS_CHECK
87 BIASASSERT(TNT_BASE_OFFSET <= i1 );
88 BIASASSERT(i2 <= A.dim() + (TNT_BASE_OFFSET-1));
97 #ifdef TNT_BOUNDS_CHECK
98 BIASASSERT(TNT_BASE_OFFSET <=I.
lbound());
99 BIASASSERT(I.
ubound() <= A.dim() + (TNT_BASE_OFFSET-1));
109 #ifdef TNT_BOUNDS_CHECK
110 BIASASSERT(TNT_BASE_OFFSET <= i1 );
111 BIASASSERT(i2 <= A.
dim() + (TNT_BASE_OFFSET - 1));
112 BIASASSERT(i1 <= i2);
122 #ifdef TNT_BOUNDS_CHECK
123 BIASASSERT(TNT_BASE_OFFSET <= i1);
124 BIASASSERT(i2 <=
dim() + (TNT_BASE_OFFSET -1));
125 BIASASSERT(i1 <= i2);
137 #ifdef TNT_BOUNDS_CHECK
138 BIASASSERT(TNT_BASE_OFFSET<=I.
lbound());
139 BIASASSERT(I.
ubound() <=
dim() + (TNT_BASE_OFFSET-1));
151 #ifdef TNT_BOUNDS_CHECK
152 BIASASSERT(TNT_BASE_OFFSET <= i);
153 BIASASSERT(i <=
dim() + (TNT_BASE_OFFSET-1));
160 #ifdef TNT_BOUNDS_CHECK
161 BIASASSERT(TNT_BASE_OFFSET <= i);
162 BIASASSERT(i <=
dim() + (TNT_BASE_OFFSET-1));
171 BIASASSERT(
dim() == R.
dim());
178 for (i=istart; i<=iend; i++)
189 BIASASSERT(
dim() == R.
dim());
196 for (i=istart; i<=iend; i++)
211 for (i=istart; i<= iend; i++)
223 BIASASSERT(
dim() == R.dim());
229 for (i=istart; i<=iend; i++)
238 template <
class Array1D>
239 std::ostream& operator<<(std::ostream &s, Region1D<Array1D> &A)
243 Subscript iend = N - 1 + TNT_BASE_OFFSET;
254 template <
class Array1D>
262 typedef typename Array1D::element_type
T;
272 #ifdef TNT_BOUNDS_CHECK
273 BIASASSERT(i==TNT_BASE_OFFSET);
280 #ifdef TNT_BOUNDS_CHECK
281 BIASASSERT(i== TNT_BASE_OFFSET);
289 #ifdef TNT_BOUNDS_CHECK
290 BIASASSERT(TNT_BASE_OFFSET <= i1 );
291 BIASASSERT(i2 <= A.dim() + (TNT_BASE_OFFSET-1));
292 BIASASSERT(i1 <= i2);
294 offset_ = i1 - TNT_BASE_OFFSET;
300 #ifdef TNT_BOUNDS_CHECK
301 BIASASSERT(TNT_BASE_OFFSET <=I.
lbound());
302 BIASASSERT(I.
ubound() <= A.dim() + (TNT_BASE_OFFSET-1));
312 #ifdef TNT_BOUNDS_CHECK
313 BIASASSERT(TNT_BASE_OFFSET <= i1 );
314 BIASASSERT(i2 <= A.dim() + (TNT_BASE_OFFSET - 1));
315 BIASASSERT(i1 <= i2);
319 offset_ = (i1 - TNT_BASE_OFFSET) + A.offset_;
325 #ifdef TNT_BOUNDS_CHECK
326 BIASASSERT(TNT_BASE_OFFSET <= i1);
327 BIASASSERT(i2 <=
dim() + (TNT_BASE_OFFSET -1));
328 BIASASSERT(i1 <= i2);
340 #ifdef TNT_BOUNDS_CHECK
341 BIASASSERT(TNT_BASE_OFFSET<=I.
lbound());
342 BIASASSERT(I.
ubound() <=
dim() + (TNT_BASE_OFFSET-1));
352 #ifdef TNT_BOUNDS_CHECK
353 BIASASSERT(TNT_BASE_OFFSET <= i);
354 BIASASSERT(i <=
dim() + (TNT_BASE_OFFSET-1));
364 template <
class Array1D>
365 std::ostream& operator<<(std::ostream &s, const_Region1D<Array1D> &A)
Region1D< Array1D > operator()(Subscript i1, Subscript i2)
const_Region1D< Array1D > operator()(Subscript i1, Subscript i2)
const_Region1D(const Array1D &A, const Index1D &I)
Subscript dim(Subscript i) const
Region1D< Array1D > & operator=(const Region1D< Array1D > &R)
TNT_SUBSCRIPT_TYPE Subscript
T & operator()(Subscript i)
Region1D(Region1D< Array1D > &A, Subscript i1, Subscript i2)
Subscript dim(Subscript i) const
const_Region1D< Array1D > operator()(const Index1D &I)
Subscript offset(Subscript i) const
Region1D(Array1D &A, const Index1D &I)
const_Region1D(const Array1D &A, Subscript i1, Subscript i2)
const Array1D & array() const
Subscript offset(Subscript i) const
const Array1D & array() const
const_Region1D(const_Region1D< Array1D > &A, Subscript i1, Subscript i2)
Region1D< Array1D > operator()(const Index1D &I)
Region1D(Array1D &A, Subscript i1, Subscript i2)
Region1D< Array1D > & operator=(const Array1D &R)
Region1D< Array1D > & operator=(const T &t)
Region1D< Array1D > & operator=(const const_Region1D< Array1D > &R)