38#include <blitz/numinquire.h>
48template<
typename P_sourcetype,
typename P_resulttype = BZ_SUMTYPE(P_sourcetype)>
69 static const char*
name() {
return "sum"; }
76template<
typename P_sourcetype,
typename P_resulttype = BZ_FLOATTYPE(P_sourcetype)>
97 static const char*
name() {
return "mean"; }
104template<
typename P_sourcetype>
126 static const char*
name() {
return "min"; }
133template<
typename P_sourcetype>
155 static const char*
name() {
return "max"; }
169template<
typename P_sourcetype>
191 void reset(P_sourcetype initialValue)
const {
minmax_ = initialValue; }
193 static const char*
name() {
return "minmax"; }
200template<
typename P_sourcetype>
227 static const char*
name() {
return "minIndex"; }
235template<
typename P_sourcetype,
int N>
262 static const char*
name() {
return "minIndexVector"; }
270template<
typename P_sourcetype>
297 static const char*
name() {
return "maxIndex"; }
305template<
typename P_sourcetype,
int N_rank>
332 static const char*
name() {
return "maxIndexVector"; }
340template<
typename P_sourcetype>
364 static const char*
name() {
return "first"; }
371template<
typename P_sourcetype>
395 static const char*
name() {
return "last"; }
402template<
typename P_sourcetype,
typename P_resulttype = BZ_SUMTYPE(P_sourcetype)>
423 static const char*
name() {
return "product"; }
430template<
typename P_sourcetype>
452 static const char*
name() {
return "count"; }
459template<
typename P_sourcetype>
484 static const char*
name() {
return "any"; }
491template<
typename P_sourcetype>
515 static const char*
name() {
return "all"; }
static const bool needInit
Definition reduce.h:499
T_resulttype T_numtype
Definition reduce.h:497
bool T_resulttype
Definition reduce.h:496
void reset() const
Definition reduce.h:513
ReduceAll()
Definition reduce.h:501
P_sourcetype T_sourcetype
Definition reduce.h:495
T_resulttype result(const int) const
Definition reduce.h:511
static const bool needIndex
Definition reduce.h:499
static const char * name()
Definition reduce.h:515
T_resulttype all_
Definition reduce.h:519
bool operator()(const T_sourcetype &x, const int=0) const
Definition reduce.h:503
static const char * name()
Definition reduce.h:484
static const bool needInit
Definition reduce.h:467
P_sourcetype T_sourcetype
Definition reduce.h:463
void reset() const
Definition reduce.h:482
ReduceAny()
Definition reduce.h:469
T_resulttype result(const int) const
Definition reduce.h:480
bool operator()(const T_sourcetype &x, const int=0) const
Definition reduce.h:471
static const bool needIndex
Definition reduce.h:467
T_resulttype any_
Definition reduce.h:488
bool T_resulttype
Definition reduce.h:464
T_resulttype T_numtype
Definition reduce.h:465
ReduceCount()
Definition reduce.h:440
static const bool needIndex
Definition reduce.h:438
void reset() const
Definition reduce.h:450
T_resulttype count_
Definition reduce.h:456
P_sourcetype T_sourcetype
Definition reduce.h:434
bool operator()(const T_sourcetype &x, const int=0) const
Definition reduce.h:442
static const bool needInit
Definition reduce.h:438
T_resulttype result(const int) const
Definition reduce.h:448
int T_resulttype
Definition reduce.h:435
static const char * name()
Definition reduce.h:452
T_resulttype T_numtype
Definition reduce.h:436
static const bool needInit
Definition reduce.h:348
static const bool needIndex
Definition reduce.h:348
void reset() const
Definition reduce.h:362
static const char * name()
Definition reduce.h:364
T_resulttype T_numtype
Definition reduce.h:346
int T_resulttype
Definition reduce.h:345
bool operator()(const T_sourcetype &x, const T_resulttype &index) const
Definition reduce.h:352
T_resulttype result(const int) const
Definition reduce.h:360
T_resulttype index_
Definition reduce.h:368
ReduceFirst()
Definition reduce.h:350
P_sourcetype T_sourcetype
Definition reduce.h:344
P_sourcetype T_sourcetype
Definition reduce.h:375
int T_resulttype
Definition reduce.h:376
T_resulttype T_numtype
Definition reduce.h:377
void reset() const
Definition reduce.h:393
static const bool needIndex
Definition reduce.h:379
static const bool needInit
Definition reduce.h:379
static const char * name()
Definition reduce.h:395
ReduceLast()
Definition reduce.h:381
bool operator()(const T_sourcetype &x, const T_resulttype &index) const
Definition reduce.h:383
T_resulttype index_
Definition reduce.h:399
T_resulttype result(const int) const
Definition reduce.h:391
static const bool needIndex
Definition reduce.h:313
P_sourcetype T_sourcetype
Definition reduce.h:309
T_resulttype result(const int) const
Definition reduce.h:325
bool operator()(const T_sourcetype &x, const T_resulttype &index) const
Definition reduce.h:317
ReduceMaxIndexVector()
Definition reduce.h:315
T_resulttype T_numtype
Definition reduce.h:311
static const bool needInit
Definition reduce.h:313
T_resulttype index_
Definition reduce.h:337
T_sourcetype max_
Definition reduce.h:336
void reset(const T_resulttype &index) const
Definition reduce.h:327
static const char * name()
Definition reduce.h:332
TinyVector< int, N_rank > T_resulttype
Definition reduce.h:310
static const bool needInit
Definition reduce.h:278
static const char * name()
Definition reduce.h:297
P_sourcetype T_sourcetype
Definition reduce.h:274
T_resulttype result(int) const
Definition reduce.h:290
void reset(const T_resulttype &index) const
Definition reduce.h:292
T_sourcetype max_
Definition reduce.h:301
T_resulttype T_numtype
Definition reduce.h:276
int T_resulttype
Definition reduce.h:275
ReduceMaxIndex()
Definition reduce.h:280
bool operator()(const T_sourcetype &x, const T_resulttype &index) const
Definition reduce.h:282
static const bool needIndex
Definition reduce.h:278
T_resulttype index_
Definition reduce.h:302
T_resulttype T_numtype
Definition reduce.h:139
static const bool needInit
Definition reduce.h:141
void reset() const
Definition reduce.h:153
ReduceMax()
Definition reduce.h:143
P_sourcetype T_resulttype
Definition reduce.h:138
bool operator()(const T_sourcetype &x, const int=0) const
Definition reduce.h:145
T_resulttype max_
Definition reduce.h:159
P_sourcetype T_sourcetype
Definition reduce.h:137
static const bool needIndex
Definition reduce.h:141
T_resulttype result(const int) const
Definition reduce.h:151
static const char * name()
Definition reduce.h:155
T_resulttype sum_
Definition reduce.h:101
void reset() const
Definition reduce.h:95
static const bool needIndex
Definition reduce.h:84
static const char * name()
Definition reduce.h:97
T_resulttype T_numtype
Definition reduce.h:82
T_resulttype result(const int count) const
Definition reduce.h:93
bool operator()(const T_sourcetype &x, const int=0) const
Definition reduce.h:88
P_sourcetype T_sourcetype
Definition reduce.h:80
static const bool needInit
Definition reduce.h:84
P_resulttype T_resulttype
Definition reduce.h:81
ReduceMean()
Definition reduce.h:86
static const char * name()
Definition reduce.h:262
static const bool needIndex
Definition reduce.h:243
T_resulttype result(const int) const
Definition reduce.h:255
T_resulttype index_
Definition reduce.h:267
void reset(const T_resulttype &index) const
Definition reduce.h:257
P_sourcetype T_sourcetype
Definition reduce.h:239
T_resulttype T_numtype
Definition reduce.h:241
T_sourcetype min_
Definition reduce.h:266
bool operator()(const T_sourcetype &x, const T_resulttype &index) const
Definition reduce.h:247
TinyVector< int, N > T_resulttype
Definition reduce.h:240
ReduceMinIndexVector()
Definition reduce.h:245
static const bool needInit
Definition reduce.h:243
ReduceMinIndex()
Definition reduce.h:210
bool operator()(const T_sourcetype &x, const T_resulttype &index) const
Definition reduce.h:212
T_resulttype T_numtype
Definition reduce.h:206
static const char * name()
Definition reduce.h:227
static const bool needIndex
Definition reduce.h:208
int T_resulttype
Definition reduce.h:205
T_resulttype result(const int) const
Definition reduce.h:220
P_sourcetype T_sourcetype
Definition reduce.h:204
static const bool needInit
Definition reduce.h:208
T_resulttype index_
Definition reduce.h:232
void reset(const T_resulttype &index) const
Definition reduce.h:222
T_sourcetype min_
Definition reduce.h:231
T_resulttype result(int)
Definition reduce.h:189
T_resulttype minmax_
Definition reduce.h:197
bool operator()(T_sourcetype x, const int=0) const
Definition reduce.h:181
T_resulttype T_numtype
Definition reduce.h:175
void reset(P_sourcetype initialValue) const
Definition reduce.h:191
static const bool needInit
Definition reduce.h:177
P_sourcetype T_sourcetype
Definition reduce.h:173
MinMaxValue< P_sourcetype > T_resulttype
Definition reduce.h:174
ReduceMinMax()
Definition reduce.h:179
static const char * name()
Definition reduce.h:193
static const bool needIndex
Definition reduce.h:177
T_resulttype T_numtype
Definition reduce.h:110
T_resulttype min_
Definition reduce.h:130
static const bool needInit
Definition reduce.h:112
static const bool needIndex
Definition reduce.h:112
void reset() const
Definition reduce.h:124
bool operator()(const T_sourcetype &x, const int=0) const
Definition reduce.h:116
P_sourcetype T_sourcetype
Definition reduce.h:108
T_resulttype result(const int) const
Definition reduce.h:122
ReduceMin()
Definition reduce.h:114
static const char * name()
Definition reduce.h:126
P_sourcetype T_resulttype
Definition reduce.h:109
static const bool needInit
Definition reduce.h:410
T_resulttype T_numtype
Definition reduce.h:408
ReduceProduct()
Definition reduce.h:412
T_resulttype result(const int) const
Definition reduce.h:419
void reset() const
Definition reduce.h:421
P_resulttype T_resulttype
Definition reduce.h:407
static const bool needIndex
Definition reduce.h:410
P_sourcetype T_sourcetype
Definition reduce.h:406
static const char * name()
Definition reduce.h:423
T_resulttype product_
Definition reduce.h:427
bool operator()(const T_sourcetype &x, const int=0) const
Definition reduce.h:414
ReduceSum()
Definition reduce.h:58
P_sourcetype T_sourcetype
Definition reduce.h:52
P_resulttype T_resulttype
Definition reduce.h:53
T_resulttype sum_
Definition reduce.h:73
T_resulttype T_numtype
Definition reduce.h:54
bool operator()(const T_sourcetype &x, const int=0) const
Definition reduce.h:60
static const char * name()
Definition reduce.h:69
void reset() const
Definition reduce.h:67
static const bool needIndex
Definition reduce.h:56
T_resulttype result(const int) const
Definition reduce.h:65
static const bool needInit
Definition reduce.h:56
The TinyVector class is a one-dimensional, fixed length vector that implements the blitz expression t...
Definition tinyvec2.h:73
Definition array-impl.h:66
P_sourcetype max
Definition reduce.h:166
void operator=(const T &val)
Definition reduce.h:164
P_sourcetype min
Definition reduce.h:165