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
void reset() const
Definition reduce.h:513
ReduceAll()
Definition reduce.h:501
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
P_sourcetype T_sourcetype
Definition reduce.h:495
bool T_resulttype
Definition reduce.h:496
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
T_resulttype T_numtype
Definition reduce.h:465
void reset() const
Definition reduce.h:482
ReduceAny()
Definition reduce.h:469
bool T_resulttype
Definition reduce.h:464
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
P_sourcetype T_sourcetype
Definition reduce.h:463
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
T_resulttype T_numtype
Definition reduce.h:436
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
static const char * name()
Definition reduce.h:452
int T_resulttype
Definition reduce.h:435
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
bool operator()(const T_sourcetype &x, const T_resulttype &index) const
Definition reduce.h:352
T_resulttype T_numtype
Definition reduce.h:346
T_resulttype result(const int) const
Definition reduce.h:360
T_resulttype index_
Definition reduce.h:368
int T_resulttype
Definition reduce.h:345
ReduceFirst()
Definition reduce.h:350
P_sourcetype T_sourcetype
Definition reduce.h:344
void reset() const
Definition reduce.h:393
int T_resulttype
Definition reduce.h:376
static const bool needIndex
Definition reduce.h:379
static const bool needInit
Definition reduce.h:379
P_sourcetype T_sourcetype
Definition reduce.h:375
static const char * name()
Definition reduce.h:395
ReduceLast()
Definition reduce.h:381
T_resulttype T_numtype
Definition reduce.h:377
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
TinyVector< int, N_rank > T_resulttype
Definition reduce.h:310
static const bool needIndex
Definition reduce.h:313
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
P_sourcetype T_sourcetype
Definition reduce.h:309
ReduceMaxIndexVector()
Definition reduce.h:315
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
T_resulttype T_numtype
Definition reduce.h:311
static const bool needInit
Definition reduce.h:278
static const char * name()
Definition reduce.h:297
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
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
P_sourcetype T_sourcetype
Definition reduce.h:274
T_resulttype index_
Definition reduce.h:302
T_resulttype T_numtype
Definition reduce.h:276
int T_resulttype
Definition reduce.h:275
P_sourcetype T_resulttype
Definition reduce.h:138
P_sourcetype T_sourcetype
Definition reduce.h:137
static const bool needInit
Definition reduce.h:141
T_resulttype T_numtype
Definition reduce.h:139
void reset() const
Definition reduce.h:153
ReduceMax()
Definition reduce.h:143
bool operator()(const T_sourcetype &x, const int=0) const
Definition reduce.h:145
T_resulttype max_
Definition reduce.h:159
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
P_resulttype T_resulttype
Definition reduce.h:81
static const bool needIndex
Definition reduce.h:84
static const char * name()
Definition reduce.h:97
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
static const bool needInit
Definition reduce.h:84
T_resulttype T_numtype
Definition reduce.h:82
P_sourcetype T_sourcetype
Definition reduce.h:80
ReduceMean()
Definition reduce.h:86
static const char * name()
Definition reduce.h:262
P_sourcetype T_sourcetype
Definition reduce.h:239
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
TinyVector< int, N > T_resulttype
Definition reduce.h:240
void reset(const T_resulttype &index) const
Definition reduce.h:257
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
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
int T_resulttype
Definition reduce.h:205
static const char * name()
Definition reduce.h:227
static const bool needIndex
Definition reduce.h:208
T_resulttype result(const int) const
Definition reduce.h:220
static const bool needInit
Definition reduce.h:208
T_resulttype index_
Definition reduce.h:232
P_sourcetype T_sourcetype
Definition reduce.h:204
void reset(const T_resulttype &index) const
Definition reduce.h:222
T_resulttype T_numtype
Definition reduce.h:206
T_sourcetype min_
Definition reduce.h:231
T_resulttype result(int)
Definition reduce.h:189
T_resulttype minmax_
Definition reduce.h:197
T_resulttype T_numtype
Definition reduce.h:175
bool operator()(T_sourcetype x, const int=0) const
Definition reduce.h:181
void reset(P_sourcetype initialValue) const
Definition reduce.h:191
static const bool needInit
Definition reduce.h:177
ReduceMinMax()
Definition reduce.h:179
static const char * name()
Definition reduce.h:193
MinMaxValue< P_sourcetype > T_resulttype
Definition reduce.h:174
P_sourcetype T_sourcetype
Definition reduce.h:173
static const bool needIndex
Definition reduce.h:177
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
P_sourcetype T_sourcetype
Definition reduce.h:108
bool operator()(const T_sourcetype &x, const int=0) const
Definition reduce.h:116
T_resulttype result(const int) const
Definition reduce.h:122
ReduceMin()
Definition reduce.h:114
static const char * name()
Definition reduce.h:126
T_resulttype T_numtype
Definition reduce.h:110
P_sourcetype T_resulttype
Definition reduce.h:109
static const bool needInit
Definition reduce.h:410
ReduceProduct()
Definition reduce.h:412
T_resulttype result(const int) const
Definition reduce.h:419
void reset() const
Definition reduce.h:421
T_resulttype T_numtype
Definition reduce.h:408
static const bool needIndex
Definition reduce.h:410
static const char * name()
Definition reduce.h:423
P_resulttype T_resulttype
Definition reduce.h:407
P_sourcetype T_sourcetype
Definition reduce.h:406
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
T_resulttype sum_
Definition reduce.h:73
P_sourcetype T_sourcetype
Definition reduce.h:52
bool operator()(const T_sourcetype &x, const int=0) const
Definition reduce.h:60
P_resulttype T_resulttype
Definition reduce.h:53
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 T_numtype
Definition reduce.h:54
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
T max
Definition reduce.h:166
void operator=(const T &val)
Definition reduce.h:164
T min
Definition reduce.h:165