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