38#include <blitz/array/asexpr.h>
71 typedef unwrapET<T_typeprop>::T_unwrapped
T_result;
112 last_ = slicePosition;
122 (
first ==
last), (*
this) <<
" is an invalid range.");
125 (*
this) <<
": the stride must evenly divide the range");
133 int lbound(
const int)
const {
return 0; }
140#ifdef BZ_ARRAY_EXPR_PASS_INDEX_BY_VALUE
161 BZPRECONDITION(0);
return *
this;
171 { BZPRECONDITION(0);
return 0; }
180 { BZPRECONDITION(0);
return 0; }
184 { BZPRECONDITION(0);
return 0; }
200 void moveTo(
int)
const { BZPRECONDITION(0); }
206 { BZPRECONDITION(0);
return T_numtype(); }
215 std::ostringstream ostr;
293 os <<
"Range(" << range.
first() <<
"," << range.
last() <<
","
300 template<
typename T1,
typename T2 = nilArraySection,
301 class T3 = nilArraySection,
typename T4 = nilArraySection,
302 class T5 = nilArraySection,
typename T6 = nilArraySection,
303 class T7 = nilArraySection,
typename T8 = nilArraySection,
304 class T9 = nilArraySection,
typename T10 = nilArraySection,
305 class T11 = nilArraySection>
311 template<
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
312 typename T7,
typename T8,
typename T9,
typename T10,
typename T11>
313 typename SliceInfo<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>::T_slice
314 operator()(T1 r1, T2 r2, T3 r3, T4 r4, T5 r5, T6 r6, T7 r7, T8 r8, T9 r9, T10 r10, T11 r11)
const
ETBase()
Definition etbase.h:42
Definition tv2fastiter.h:383
void T_slice
Definition range.h:308
asET< T_numtype >::T_wrapped T_typeprop
Definition range.h:70
void push(int)
Definition range.h:164
friend ostream & operator<<(ostream &os, const Range &range)
Definition range.h:291
T_numtype operator[](int i) const
tvresult< N >::Type fastRead_tv(diffType) const
Definition range.h:183
T_numtype first(T_numtype lowRange=0) const
Definition range.h:228
void _bz_offsetData(sizeType offset, int dim) const
Definition range.h:190
void _bz_offsetData(sizeType i) const
Definition range.h:187
void advance(int)
Definition range.h:167
T_numtype operator()(int i) const
Definition range.h:152
int ascending(const int) const
Definition range.h:131
bool canCollapse(int, int) const
Definition range.h:176
T_numtype shift(int offset1, int dim1, int offset2, int dim2) const
Definition range.h:205
TinyVector< int, 1 > T_index
Definition range.h:75
char T_ctorArg2
Definition range.h:74
Range operator-(T_numtype shift) const
Definition range.h:277
T_numtype operator()(const TinyVector< int, N_rank > &i) const
Definition range.h:146
void advance()
Definition range.h:166
bool isStride(int, diffType) const
Definition range.h:197
T_numtype last(T_numtype highRange=0) const
Definition range.h:235
bool assertInRange(const T_index &BZ_DEBUG_PARAM(index)) const
static const int numTMOperands
Definition range.h:80
Range operator+(T_numtype shift) const
Definition range.h:284
int lbound(const int) const
Definition range.h:133
Range(T_numtype first, T_numtype last, diffType stride=1)
Definition range.h:116
T_numtype fastRead(diffType) const
Definition range.h:179
void _bz_offsetData(sizeType offset1, int dim1, sizeType offset2, int dim2) const
Definition range.h:192
bool isUnitStride() const
Definition range.h:273
static Range all()
Definition range.h:269
static const int numArrayOperands
Definition range.h:78
Range()
Definition range.h:95
SliceInfo< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::T_slice operator()(T1 r1, T2 r2, T3 r3, T4 r4, T5 r5, T6 r6, T7 r7, T8 r8, T9 r9, T10 r10, T11 r11) const
Definition range.h:314
Range(T_numtype slicePosition)
Definition range.h:109
int ubound(const int) const
Definition range.h:134
static const int maxWidth
Definition range.h:83
T_numtype last_
Definition range.h:320
void advanceUnitStride()
Definition range.h:173
diffType stride() const
Definition range.h:250
Range T_range_result
Definition range.h:76
void prettyPrint(std::string &str, prettyPrintFormat &format) const
Definition range.h:211
T_numtype first_value() const
Definition range.h:129
diffType suggestStride(int) const
Definition range.h:194
T_numtype operator*() const
Definition range.h:128
diffType stride_
Definition range.h:321
RectDomain< rank_ > domain() const
void loadStride(int)
Definition range.h:168
static const int rank_
Definition range.h:84
int T_numtype
Definition range.h:67
void T_ctorArg1
Definition range.h:73
bool isAscendingContiguous() const
Definition range.h:253
unwrapET< T_typeprop >::T_unwrapped T_result
Definition range.h:71
T_numtype shift(int offset, int dim) const
Definition range.h:202
static const int numTVOperands
Definition range.h:79
void moveTo(int) const
Definition range.h:200
void moveTo(const TinyVector< int, N_rank > &) const
Definition range.h:209
void pop(int)
Definition range.h:165
void setRange(T_numtype first, T_numtype last, diffType stride=1)
Definition range.h:258
opType< T_numtype >::T_optype T_optype
Definition range.h:68
bool isUnitStride(int) const
Definition range.h:170
int length(int=0) const
Definition range.h:242
const Range operator()(const RectDomain< N_rank > &d) const
Definition range.h:159
static const int numIndexPlaceholders
Definition range.h:81
Range(const Range &r)
Definition range.h:102
static const int minWidth
Definition range.h:82
int ordering(const int) const
Definition range.h:132
T_numtype first_
Definition range.h:320
The TinyVector class is a one-dimensional, fixed length vector that implements the blitz expression t...
Definition tinyvec2.h:73
static const size_t vecWidth
SIMD width of types in number of elements.
Definition simdtypes.h:39
Definition array-impl.h:66
ptrdiff_t diffType
Definition blitz.h:111
size_t sizeType
Definition blitz.h:110
const int toEnd
Definition range.h:62
const int fromStart
Definition range.h:61
The vectorized return type for a Range should be another range, but that's not useful since a vectori...
Definition range.h:91
FastTV2Iterator< T_numtype, N > Type
Definition range.h:92