3#ifndef AWKWARD_REDUCER_H_
4#define AWKWARD_REDUCER_H_
23 virtual const std::string
46 virtual const std::shared_ptr<void>
49 int64_t outlength)
const = 0;
59 virtual const std::shared_ptr<void>
62 int64_t outlength)
const = 0;
72 virtual const std::shared_ptr<void>
75 int64_t outlength)
const = 0;
85 virtual const std::shared_ptr<void>
88 int64_t outlength)
const = 0;
98 virtual const std::shared_ptr<void>
101 int64_t outlength)
const = 0;
111 virtual const std::shared_ptr<void>
114 int64_t outlength)
const = 0;
124 virtual const std::shared_ptr<void>
127 int64_t outlength)
const = 0;
137 virtual const std::shared_ptr<void>
140 int64_t outlength)
const = 0;
150 virtual const std::shared_ptr<void>
153 int64_t outlength)
const = 0;
163 virtual const std::shared_ptr<void>
166 int64_t outlength)
const = 0;
176 virtual const std::shared_ptr<void>
179 int64_t outlength)
const = 0;
189 virtual const std::shared_ptr<void>
192 int64_t outlength)
const = 0;
202 virtual const std::shared_ptr<void>
205 int64_t outlength)
const = 0;
215 virtual const std::shared_ptr<void>
218 int64_t outlength)
const = 0;
228 virtual const std::shared_ptr<void>
231 int64_t outlength)
const = 0;
260 const std::shared_ptr<void>
263 int64_t outlength)
const override;
265 const std::shared_ptr<void>
268 int64_t outlength)
const override;
270 const std::shared_ptr<void>
273 int64_t outlength)
const override;
275 const std::shared_ptr<void>
278 int64_t outlength)
const override;
280 const std::shared_ptr<void>
283 int64_t outlength)
const override;
285 const std::shared_ptr<void>
288 int64_t outlength)
const override;
290 const std::shared_ptr<void>
293 int64_t outlength)
const override;
295 const std::shared_ptr<void>
298 int64_t outlength)
const override;
300 const std::shared_ptr<void>
303 int64_t outlength)
const override;
305 const std::shared_ptr<void>
308 int64_t outlength)
const override;
310 const std::shared_ptr<void>
313 int64_t outlength)
const override;
315 const std::shared_ptr<void>
318 int64_t outlength)
const override;
320 const std::shared_ptr<void>
323 int64_t outlength)
const override;
325 const std::shared_ptr<void>
328 int64_t outlength)
const override;
330 const std::shared_ptr<void>
333 int64_t outlength)
const override;
361 const std::shared_ptr<void>
364 int64_t outlength)
const override;
366 const std::shared_ptr<void>
369 int64_t outlength)
const override;
371 const std::shared_ptr<void>
374 int64_t outlength)
const override;
376 const std::shared_ptr<void>
379 int64_t outlength)
const override;
381 const std::shared_ptr<void>
384 int64_t outlength)
const override;
386 const std::shared_ptr<void>
389 int64_t outlength)
const override;
391 const std::shared_ptr<void>
394 int64_t outlength)
const override;
396 const std::shared_ptr<void>
399 int64_t outlength)
const override;
401 const std::shared_ptr<void>
404 int64_t outlength)
const override;
406 const std::shared_ptr<void>
409 int64_t outlength)
const override;
411 const std::shared_ptr<void>
414 int64_t outlength)
const override;
416 const std::shared_ptr<void>
419 int64_t outlength)
const override;
421 const std::shared_ptr<void>
424 int64_t outlength)
const override;
426 const std::shared_ptr<void>
429 int64_t outlength)
const override;
431 const std::shared_ptr<void>
434 int64_t outlength)
const override;
463 const std::shared_ptr<void>
466 int64_t outlength)
const override;
468 const std::shared_ptr<void>
471 int64_t outlength)
const override;
473 const std::shared_ptr<void>
476 int64_t outlength)
const override;
478 const std::shared_ptr<void>
481 int64_t outlength)
const override;
483 const std::shared_ptr<void>
486 int64_t outlength)
const override;
488 const std::shared_ptr<void>
491 int64_t outlength)
const override;
493 const std::shared_ptr<void>
496 int64_t outlength)
const override;
498 const std::shared_ptr<void>
501 int64_t outlength)
const override;
503 const std::shared_ptr<void>
506 int64_t outlength)
const override;
508 const std::shared_ptr<void>
511 int64_t outlength)
const override;
513 const std::shared_ptr<void>
516 int64_t outlength)
const override;
518 const std::shared_ptr<void>
521 int64_t outlength)
const override;
523 const std::shared_ptr<void>
526 int64_t outlength)
const override;
528 const std::shared_ptr<void>
531 int64_t outlength)
const override;
533 const std::shared_ptr<void>
536 int64_t outlength)
const override;
565 const std::shared_ptr<void>
568 int64_t outlength)
const override;
570 const std::shared_ptr<void>
573 int64_t outlength)
const override;
575 const std::shared_ptr<void>
578 int64_t outlength)
const override;
580 const std::shared_ptr<void>
583 int64_t outlength)
const override;
585 const std::shared_ptr<void>
588 int64_t outlength)
const override;
590 const std::shared_ptr<void>
593 int64_t outlength)
const override;
595 const std::shared_ptr<void>
598 int64_t outlength)
const override;
600 const std::shared_ptr<void>
603 int64_t outlength)
const override;
605 const std::shared_ptr<void>
608 int64_t outlength)
const override;
610 const std::shared_ptr<void>
613 int64_t outlength)
const override;
615 const std::shared_ptr<void>
618 int64_t outlength)
const override;
620 const std::shared_ptr<void>
623 int64_t outlength)
const override;
625 const std::shared_ptr<void>
628 int64_t outlength)
const override;
630 const std::shared_ptr<void>
633 int64_t outlength)
const override;
635 const std::shared_ptr<void>
638 int64_t outlength)
const override;
667 const std::shared_ptr<void>
670 int64_t outlength)
const override;
672 const std::shared_ptr<void>
675 int64_t outlength)
const override;
677 const std::shared_ptr<void>
680 int64_t outlength)
const override;
682 const std::shared_ptr<void>
685 int64_t outlength)
const override;
687 const std::shared_ptr<void>
690 int64_t outlength)
const override;
692 const std::shared_ptr<void>
695 int64_t outlength)
const override;
697 const std::shared_ptr<void>
700 int64_t outlength)
const override;
702 const std::shared_ptr<void>
705 int64_t outlength)
const override;
707 const std::shared_ptr<void>
710 int64_t outlength)
const override;
712 const std::shared_ptr<void>
715 int64_t outlength)
const override;
717 const std::shared_ptr<void>
720 int64_t outlength)
const override;
722 const std::shared_ptr<void>
725 int64_t outlength)
const override;
727 const std::shared_ptr<void>
730 int64_t outlength)
const override;
732 const std::shared_ptr<void>
735 int64_t outlength)
const override;
737 const std::shared_ptr<void>
740 int64_t outlength)
const override;
769 const std::shared_ptr<void>
772 int64_t outlength)
const override;
774 const std::shared_ptr<void>
777 int64_t outlength)
const override;
779 const std::shared_ptr<void>
782 int64_t outlength)
const override;
784 const std::shared_ptr<void>
787 int64_t outlength)
const override;
789 const std::shared_ptr<void>
792 int64_t outlength)
const override;
794 const std::shared_ptr<void>
797 int64_t outlength)
const override;
799 const std::shared_ptr<void>
802 int64_t outlength)
const override;
804 const std::shared_ptr<void>
807 int64_t outlength)
const override;
809 const std::shared_ptr<void>
812 int64_t outlength)
const override;
814 const std::shared_ptr<void>
817 int64_t outlength)
const override;
819 const std::shared_ptr<void>
822 int64_t outlength)
const override;
824 const std::shared_ptr<void>
827 int64_t outlength)
const override;
829 const std::shared_ptr<void>
832 int64_t outlength)
const override;
834 const std::shared_ptr<void>
837 int64_t outlength)
const override;
839 const std::shared_ptr<void>
842 int64_t outlength)
const override;
863 ReducerMin(
double initial_f64, uint64_t initial_u64, int64_t initial_i64);
876 const std::shared_ptr<void>
879 int64_t outlength)
const override;
881 const std::shared_ptr<void>
884 int64_t outlength)
const override;
886 const std::shared_ptr<void>
889 int64_t outlength)
const override;
891 const std::shared_ptr<void>
894 int64_t outlength)
const override;
896 const std::shared_ptr<void>
899 int64_t outlength)
const override;
901 const std::shared_ptr<void>
904 int64_t outlength)
const override;
906 const std::shared_ptr<void>
909 int64_t outlength)
const override;
911 const std::shared_ptr<void>
914 int64_t outlength)
const override;
916 const std::shared_ptr<void>
919 int64_t outlength)
const override;
921 const std::shared_ptr<void>
924 int64_t outlength)
const override;
926 const std::shared_ptr<void>
929 int64_t outlength)
const override;
931 const std::shared_ptr<void>
934 int64_t outlength)
const override;
936 const std::shared_ptr<void>
939 int64_t outlength)
const override;
941 const std::shared_ptr<void>
944 int64_t outlength)
const override;
946 const std::shared_ptr<void>
949 int64_t outlength)
const override;
952 uint64_t initial_u64_;
953 int64_t initial_i64_;
975 ReducerMax(
double initial_f64_, uint64_t initial_u64_, int64_t initial_i64_);
988 const std::shared_ptr<void>
991 int64_t outlength)
const override;
993 const std::shared_ptr<void>
996 int64_t outlength)
const override;
998 const std::shared_ptr<void>
1001 int64_t outlength)
const override;
1003 const std::shared_ptr<void>
1006 int64_t outlength)
const override;
1008 const std::shared_ptr<void>
1011 int64_t outlength)
const override;
1013 const std::shared_ptr<void>
1016 int64_t outlength)
const override;
1018 const std::shared_ptr<void>
1021 int64_t outlength)
const override;
1023 const std::shared_ptr<void>
1026 int64_t outlength)
const override;
1028 const std::shared_ptr<void>
1031 int64_t outlength)
const override;
1033 const std::shared_ptr<void>
1036 int64_t outlength)
const override;
1038 const std::shared_ptr<void>
1041 int64_t outlength)
const override;
1043 const std::shared_ptr<void>
1046 int64_t outlength)
const override;
1048 const std::shared_ptr<void>
1051 int64_t outlength)
const override;
1053 const std::shared_ptr<void>
1056 int64_t outlength)
const override;
1058 const std::shared_ptr<void>
1061 int64_t outlength)
const override;
1063 double initial_f64_;
1064 uint64_t initial_u64_;
1065 int64_t initial_i64_;
1105 const std::shared_ptr<void>
1108 int64_t outlength)
const override;
1110 const std::shared_ptr<void>
1113 int64_t outlength)
const override;
1115 const std::shared_ptr<void>
1118 int64_t outlength)
const override;
1120 const std::shared_ptr<void>
1123 int64_t outlength)
const override;
1125 const std::shared_ptr<void>
1128 int64_t outlength)
const override;
1130 const std::shared_ptr<void>
1133 int64_t outlength)
const override;
1135 const std::shared_ptr<void>
1138 int64_t outlength)
const override;
1140 const std::shared_ptr<void>
1143 int64_t outlength)
const override;
1145 const std::shared_ptr<void>
1148 int64_t outlength)
const override;
1150 const std::shared_ptr<void>
1153 int64_t outlength)
const override;
1155 const std::shared_ptr<void>
1158 int64_t outlength)
const override;
1160 const std::shared_ptr<void>
1163 int64_t outlength)
const override;
1165 const std::shared_ptr<void>
1168 int64_t outlength)
const override;
1170 const std::shared_ptr<void>
1173 int64_t outlength)
const override;
1175 const std::shared_ptr<void>
1178 int64_t outlength)
const override;
1217 const std::shared_ptr<void>
1220 int64_t outlength)
const override;
1222 const std::shared_ptr<void>
1225 int64_t outlength)
const override;
1227 const std::shared_ptr<void>
1230 int64_t outlength)
const override;
1232 const std::shared_ptr<void>
1235 int64_t outlength)
const override;
1237 const std::shared_ptr<void>
1240 int64_t outlength)
const override;
1242 const std::shared_ptr<void>
1245 int64_t outlength)
const override;
1247 const std::shared_ptr<void>
1250 int64_t outlength)
const override;
1252 const std::shared_ptr<void>
1255 int64_t outlength)
const override;
1257 const std::shared_ptr<void>
1260 int64_t outlength)
const override;
1262 const std::shared_ptr<void>
1265 int64_t outlength)
const override;
1267 const std::shared_ptr<void>
1270 int64_t outlength)
const override;
1272 const std::shared_ptr<void>
1275 int64_t outlength)
const override;
1277 const std::shared_ptr<void>
1280 int64_t outlength)
const override;
1282 const std::shared_ptr<void>
1285 int64_t outlength)
const override;
1287 const std::shared_ptr<void>
1290 int64_t outlength)
const override;
A contiguous, one-dimensional array of integers used to represent data structures,...
Definition: Index.h:82
Reducer algorithm that returns true if all values are true, false otherwise. The identity is true.
Definition: Reducer.h:751
const std::shared_ptr< void > apply_uint8(const uint8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 8-bit integer values.
const std::shared_ptr< void > apply_float64(const double *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 64-bit floating-point values.
const std::shared_ptr< void > apply_datetime(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of datetime values.
const std::shared_ptr< void > apply_uint16(const uint16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 16-bit integer values.
const std::shared_ptr< void > apply_int8(const int8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 8-bit integer values.
const std::shared_ptr< void > apply_timedelta(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of timedelta values.
const std::shared_ptr< void > apply_int16(const int16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 16-bit integer values.
const std::shared_ptr< void > apply_uint32(const uint32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 32-bit integer values.
const std::shared_ptr< void > apply_bool(const bool *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of boolean values.
const std::shared_ptr< void > apply_int32(const int32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 32-bit integer values.
const std::string name() const override
Name of the reducer algorithm: "all".
util::dtype preferred_dtype() const override
Data type to prefer, as a NumPy dtype, if the array has UnknownType.
const std::shared_ptr< void > apply_complex128(const std::complex< double > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 64-bit floating-point values.
util::dtype return_dtype(util::dtype given_dtype) const override
Return type for a given_dtype as a NumPy dtype.
const std::shared_ptr< void > apply_float32(const float *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 32-bit floating-point values.
const std::shared_ptr< void > apply_complex64(const std::complex< float > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 32-bit floating-point values.
const std::shared_ptr< void > apply_uint64(const uint64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 64-bit integer values.
const std::shared_ptr< void > apply_int64(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 64-bit integer values.
Reducer algorithm that returns true if any values are true, false otherwise. The identity is false.
Definition: Reducer.h:649
const std::shared_ptr< void > apply_uint8(const uint8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 8-bit integer values.
const std::shared_ptr< void > apply_float64(const double *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 64-bit floating-point values.
const std::shared_ptr< void > apply_datetime(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of datetime values.
const std::shared_ptr< void > apply_uint16(const uint16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 16-bit integer values.
const std::shared_ptr< void > apply_int8(const int8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 8-bit integer values.
const std::shared_ptr< void > apply_timedelta(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of timedelta values.
const std::shared_ptr< void > apply_int16(const int16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 16-bit integer values.
const std::shared_ptr< void > apply_uint32(const uint32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 32-bit integer values.
const std::shared_ptr< void > apply_bool(const bool *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of boolean values.
const std::shared_ptr< void > apply_int32(const int32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 32-bit integer values.
const std::string name() const override
Name of the reducer algorithm: "any".
util::dtype preferred_dtype() const override
Data type to prefer, as a NumPy dtype, if the array has UnknownType.
const std::shared_ptr< void > apply_complex128(const std::complex< double > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 64-bit floating-point values.
util::dtype return_dtype(util::dtype given_dtype) const override
Return type for a given_dtype as a NumPy dtype.
const std::shared_ptr< void > apply_float32(const float *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 32-bit floating-point values.
const std::shared_ptr< void > apply_complex64(const std::complex< float > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 32-bit floating-point values.
const std::shared_ptr< void > apply_uint64(const uint64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 64-bit integer values.
const std::shared_ptr< void > apply_int64(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 64-bit integer values.
Reducer algorithm that returns the position of the maximum value. The identity is meaningless and sho...
Definition: Reducer.h:1193
const std::shared_ptr< void > apply_uint8(const uint8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 8-bit integer values.
const std::shared_ptr< void > apply_float64(const double *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 64-bit floating-point values.
const std::shared_ptr< void > apply_datetime(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of datetime values.
const std::shared_ptr< void > apply_uint16(const uint16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 16-bit integer values.
const std::shared_ptr< void > apply_int8(const int8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 8-bit integer values.
const std::shared_ptr< void > apply_timedelta(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of timedelta values.
const std::shared_ptr< void > apply_int16(const int16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 16-bit integer values.
const std::shared_ptr< void > apply_uint32(const uint32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 32-bit integer values.
const std::shared_ptr< void > apply_bool(const bool *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of boolean values.
const std::shared_ptr< void > apply_int32(const int32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 32-bit integer values.
const std::string name() const override
Name of the reducer algorithm: "argmax".
util::dtype preferred_dtype() const override
Data type to prefer, as a NumPy dtype, if the array has UnknownType.
virtual bool returns_positions() const override
True if this reducer returns index positions; false otherwise.
const std::shared_ptr< void > apply_complex128(const std::complex< double > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 64-bit floating-point values.
util::dtype return_dtype(util::dtype given_dtype) const override
Return type for a given_dtype as a NumPy dtype.
const std::shared_ptr< void > apply_float32(const float *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 32-bit floating-point values.
const std::shared_ptr< void > apply_complex64(const std::complex< float > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 32-bit floating-point values.
const std::shared_ptr< void > apply_uint64(const uint64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 64-bit integer values.
const std::shared_ptr< void > apply_int64(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 64-bit integer values.
Reducer algorithm that returns the position of the minimum value. The identity is meaningless and sho...
Definition: Reducer.h:1081
const std::shared_ptr< void > apply_uint8(const uint8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 8-bit integer values.
const std::shared_ptr< void > apply_float64(const double *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 64-bit floating-point values.
const std::shared_ptr< void > apply_datetime(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of datetime values.
const std::shared_ptr< void > apply_uint16(const uint16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 16-bit integer values.
const std::shared_ptr< void > apply_int8(const int8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 8-bit integer values.
const std::shared_ptr< void > apply_timedelta(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of timedelta values.
const std::shared_ptr< void > apply_int16(const int16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 16-bit integer values.
const std::shared_ptr< void > apply_uint32(const uint32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 32-bit integer values.
const std::shared_ptr< void > apply_bool(const bool *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of boolean values.
const std::shared_ptr< void > apply_int32(const int32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 32-bit integer values.
const std::string name() const override
Name of the reducer algorithm: "argmin".
util::dtype preferred_dtype() const override
Data type to prefer, as a NumPy dtype, if the array has UnknownType.
virtual bool returns_positions() const override
True if this reducer returns index positions; false otherwise.
const std::shared_ptr< void > apply_complex128(const std::complex< double > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 64-bit floating-point values.
util::dtype return_dtype(util::dtype given_dtype) const override
Return type for a given_dtype as a NumPy dtype.
const std::shared_ptr< void > apply_float32(const float *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 32-bit floating-point values.
const std::shared_ptr< void > apply_complex64(const std::complex< float > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 32-bit floating-point values.
const std::shared_ptr< void > apply_uint64(const uint64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 64-bit integer values.
const std::shared_ptr< void > apply_int64(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 64-bit integer values.
Reducer algorithm that counts non-zero items. The identity is 0.
Definition: Reducer.h:343
const std::shared_ptr< void > apply_uint8(const uint8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 8-bit integer values.
const std::shared_ptr< void > apply_float64(const double *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 64-bit floating-point values.
const std::shared_ptr< void > apply_datetime(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of datetime values.
const std::shared_ptr< void > apply_uint16(const uint16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 16-bit integer values.
const std::shared_ptr< void > apply_int8(const int8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 8-bit integer values.
const std::shared_ptr< void > apply_timedelta(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of timedelta values.
const std::shared_ptr< void > apply_int16(const int16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 16-bit integer values.
const std::shared_ptr< void > apply_uint32(const uint32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 32-bit integer values.
const std::shared_ptr< void > apply_bool(const bool *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of boolean values.
const std::shared_ptr< void > apply_int32(const int32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 32-bit integer values.
const std::string name() const override
Name of the reducer algorithm: "count_nonzero".
util::dtype preferred_dtype() const override
const std::shared_ptr< void > apply_complex128(const std::complex< double > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 64-bit floating-point values.
util::dtype return_dtype(util::dtype given_dtype) const override
Return type for a given_dtype as a NumPy dtype.
const std::shared_ptr< void > apply_float32(const float *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 32-bit floating-point values.
const std::shared_ptr< void > apply_complex64(const std::complex< float > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 32-bit floating-point values.
const std::shared_ptr< void > apply_uint64(const uint64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 64-bit integer values.
const std::shared_ptr< void > apply_int64(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 64-bit integer values.
Reducer algorithm that simply counts items. The identity is 0.
Definition: Reducer.h:242
const std::shared_ptr< void > apply_uint8(const uint8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 8-bit integer values.
const std::shared_ptr< void > apply_float64(const double *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 64-bit floating-point values.
const std::shared_ptr< void > apply_datetime(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of datetime values.
const std::shared_ptr< void > apply_uint16(const uint16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 16-bit integer values.
const std::shared_ptr< void > apply_int8(const int8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 8-bit integer values.
const std::shared_ptr< void > apply_timedelta(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of timedelta values.
const std::shared_ptr< void > apply_int16(const int16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 16-bit integer values.
const std::shared_ptr< void > apply_uint32(const uint32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 32-bit integer values.
const std::shared_ptr< void > apply_bool(const bool *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of boolean values.
const std::shared_ptr< void > apply_int32(const int32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 32-bit integer values.
const std::string name() const override
Name of the reducer algorithm: "count".
util::dtype preferred_dtype() const override
Data type to prefer, as a NumPy dtype, if the array has UnknownType.
const std::shared_ptr< void > apply_complex128(const std::complex< double > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 64-bit floating-point values.
util::dtype return_dtype(util::dtype given_dtype) const override
Return type for a given_dtype as a NumPy dtype.
const std::shared_ptr< void > apply_float32(const float *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 32-bit floating-point values.
const std::shared_ptr< void > apply_complex64(const std::complex< float > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 32-bit floating-point values.
const std::shared_ptr< void > apply_uint64(const uint64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 64-bit integer values.
const std::shared_ptr< void > apply_int64(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 64-bit integer values.
Reducer algorithm that returns the maximum value. The identity is minus infinity or the smallest poss...
Definition: Reducer.h:973
const std::shared_ptr< void > apply_uint8(const uint8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 8-bit integer values.
const std::shared_ptr< void > apply_float64(const double *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 64-bit floating-point values.
const std::shared_ptr< void > apply_datetime(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of datetime values.
const std::shared_ptr< void > apply_uint16(const uint16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 16-bit integer values.
const std::shared_ptr< void > apply_int8(const int8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 8-bit integer values.
const std::shared_ptr< void > apply_timedelta(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of timedelta values.
const std::shared_ptr< void > apply_int16(const int16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 16-bit integer values.
const std::shared_ptr< void > apply_uint32(const uint32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 32-bit integer values.
const std::shared_ptr< void > apply_bool(const bool *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of boolean values.
const std::shared_ptr< void > apply_int32(const int32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 32-bit integer values.
const std::string name() const override
Name of the reducer algorithm: "max".
util::dtype preferred_dtype() const override
Data type to prefer, as a NumPy dtype, if the array has UnknownType.
const std::shared_ptr< void > apply_complex128(const std::complex< double > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 64-bit floating-point values.
ReducerMax(double initial_f64_, uint64_t initial_u64_, int64_t initial_i64_)
const std::shared_ptr< void > apply_float32(const float *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 32-bit floating-point values.
const std::shared_ptr< void > apply_complex64(const std::complex< float > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 32-bit floating-point values.
const std::shared_ptr< void > apply_uint64(const uint64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 64-bit integer values.
const std::shared_ptr< void > apply_int64(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 64-bit integer values.
Reducer algorithm that returns the minimum value. The identity is infinity or the largest possible va...
Definition: Reducer.h:861
const std::shared_ptr< void > apply_uint8(const uint8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 8-bit integer values.
const std::shared_ptr< void > apply_float64(const double *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 64-bit floating-point values.
const std::shared_ptr< void > apply_datetime(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of datetime values.
const std::shared_ptr< void > apply_uint16(const uint16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 16-bit integer values.
const std::shared_ptr< void > apply_int8(const int8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 8-bit integer values.
const std::shared_ptr< void > apply_timedelta(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of timedelta values.
const std::shared_ptr< void > apply_int16(const int16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 16-bit integer values.
const std::shared_ptr< void > apply_uint32(const uint32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 32-bit integer values.
const std::shared_ptr< void > apply_bool(const bool *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of boolean values.
const std::shared_ptr< void > apply_int32(const int32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 32-bit integer values.
ReducerMin(double initial_f64, uint64_t initial_u64, int64_t initial_i64)
const std::string name() const override
Name of the reducer algorithm: "min".
util::dtype preferred_dtype() const override
Data type to prefer, as a NumPy dtype, if the array has UnknownType.
const std::shared_ptr< void > apply_complex128(const std::complex< double > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 64-bit floating-point values.
const std::shared_ptr< void > apply_float32(const float *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 32-bit floating-point values.
const std::shared_ptr< void > apply_complex64(const std::complex< float > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 32-bit floating-point values.
const std::shared_ptr< void > apply_uint64(const uint64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 64-bit integer values.
const std::shared_ptr< void > apply_int64(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 64-bit integer values.
Reducer algorithm that multiplies items. The identity is 1.
Definition: Reducer.h:546
const std::shared_ptr< void > apply_uint8(const uint8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 8-bit integer values.
const std::shared_ptr< void > apply_float64(const double *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 64-bit floating-point values.
const std::shared_ptr< void > apply_datetime(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of datetime values.
const std::shared_ptr< void > apply_uint16(const uint16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 16-bit integer values.
const std::shared_ptr< void > apply_int8(const int8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 8-bit integer values.
const std::shared_ptr< void > apply_timedelta(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of timedelta values.
const std::shared_ptr< void > apply_int16(const int16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 16-bit integer values.
const std::shared_ptr< void > apply_uint32(const uint32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 32-bit integer values.
const std::shared_ptr< void > apply_bool(const bool *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of boolean values.
const std::shared_ptr< void > apply_int32(const int32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 32-bit integer values.
const std::string name() const override
Name of the reducer algorithm: "prod".
util::dtype preferred_dtype() const override
Data type to prefer, as a NumPy dtype, if the array has UnknownType.
const std::shared_ptr< void > apply_complex128(const std::complex< double > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 64-bit floating-point values.
util::dtype return_dtype(util::dtype given_dtype) const override
Return type for a given_dtype as a NumPy dtype.
const std::shared_ptr< void > apply_float32(const float *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 32-bit floating-point values.
const std::shared_ptr< void > apply_complex64(const std::complex< float > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 32-bit floating-point values.
const std::shared_ptr< void > apply_uint64(const uint64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 64-bit integer values.
const std::shared_ptr< void > apply_int64(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 64-bit integer values.
Reducer algorithm that adds up items. The identity is 0.
Definition: Reducer.h:444
const std::shared_ptr< void > apply_uint8(const uint8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 8-bit integer values.
const std::shared_ptr< void > apply_float64(const double *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 64-bit floating-point values.
const std::shared_ptr< void > apply_datetime(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of datetime values.
const std::shared_ptr< void > apply_uint16(const uint16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 16-bit integer values.
const std::shared_ptr< void > apply_int8(const int8_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 8-bit integer values.
const std::shared_ptr< void > apply_timedelta(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of timedelta values.
const std::shared_ptr< void > apply_int16(const int16_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 16-bit integer values.
const std::shared_ptr< void > apply_uint32(const uint32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 32-bit integer values.
const std::shared_ptr< void > apply_bool(const bool *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of boolean values.
const std::shared_ptr< void > apply_int32(const int32_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 32-bit integer values.
const std::string name() const override
Name of the reducer algorithm: "sum".
util::dtype preferred_dtype() const override
Data type to prefer, as a NumPy dtype, if the array has UnknownType.
const std::shared_ptr< void > apply_complex128(const std::complex< double > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 64-bit floating-point values.
util::dtype return_dtype(util::dtype given_dtype) const override
Return type for a given_dtype as a NumPy dtype.
const std::shared_ptr< void > apply_float32(const float *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of 32-bit floating-point values.
const std::shared_ptr< void > apply_complex64(const std::complex< float > *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of complex 32-bit floating-point values.
const std::shared_ptr< void > apply_uint64(const uint64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of unsigned 64-bit integer values.
const std::shared_ptr< void > apply_int64(const int64_t *data, const Index64 &parents, int64_t outlength) const override
Apply the reducer algorithm to an array of signed 64-bit integer values.
Abstract class for all reducer algorithms.
Definition: Reducer.h:20
virtual const std::shared_ptr< void > apply_complex128(const std::complex< double > *data, const Index64 &parents, int64_t outlength) const =0
Apply the reducer algorithm to an array of complex 64-bit floating-point values.
virtual const std::shared_ptr< void > apply_uint64(const uint64_t *data, const Index64 &parents, int64_t outlength) const =0
Apply the reducer algorithm to an array of unsigned 64-bit integer values.
virtual const std::shared_ptr< void > apply_complex64(const std::complex< float > *data, const Index64 &parents, int64_t outlength) const =0
Apply the reducer algorithm to an array of complex 32-bit floating-point values.
virtual const std::shared_ptr< void > apply_uint8(const uint8_t *data, const Index64 &parents, int64_t outlength) const =0
Apply the reducer algorithm to an array of unsigned 8-bit integer values.
virtual const std::string name() const =0
Name of the reducer algorithm.
virtual bool returns_positions() const
True if this reducer returns index positions; false otherwise.
virtual const std::shared_ptr< void > apply_uint32(const uint32_t *data, const Index64 &parents, int64_t outlength) const =0
Apply the reducer algorithm to an array of unsigned 32-bit integer values.
virtual const std::shared_ptr< void > apply_int64(const int64_t *data, const Index64 &parents, int64_t outlength) const =0
Apply the reducer algorithm to an array of signed 64-bit integer values.
virtual const std::shared_ptr< void > apply_datetime(const int64_t *data, const Index64 &parents, int64_t outlength) const =0
Apply the reducer algorithm to an array of datetime values.
virtual const std::shared_ptr< void > apply_float64(const double *data, const Index64 &parents, int64_t outlength) const =0
Apply the reducer algorithm to an array of 64-bit floating-point values.
virtual const std::shared_ptr< void > apply_bool(const bool *data, const Index64 &parents, int64_t outlength) const =0
Apply the reducer algorithm to an array of boolean values.
virtual const std::shared_ptr< void > apply_float32(const float *data, const Index64 &parents, int64_t outlength) const =0
Apply the reducer algorithm to an array of 32-bit floating-point values.
virtual const std::shared_ptr< void > apply_timedelta(const int64_t *data, const Index64 &parents, int64_t outlength) const =0
Apply the reducer algorithm to an array of timedelta values.
virtual util::dtype return_dtype(util::dtype given_dtype) const
Return type for a given_dtype as a NumPy dtype.
virtual const std::shared_ptr< void > apply_int8(const int8_t *data, const Index64 &parents, int64_t outlength) const =0
Apply the reducer algorithm to an array of signed 8-bit integer values.
virtual util::dtype preferred_dtype() const =0
Data type to prefer, as a NumPy dtype, if the array has UnknownType.
virtual const std::shared_ptr< void > apply_int16(const int16_t *data, const Index64 &parents, int64_t outlength) const =0
Apply the reducer algorithm to an array of signed 16-bit integer values.
virtual const std::shared_ptr< void > apply_int32(const int32_t *data, const Index64 &parents, int64_t outlength) const =0
Apply the reducer algorithm to an array of signed 32-bit integer values.
virtual const std::shared_ptr< void > apply_uint16(const uint16_t *data, const Index64 &parents, int64_t outlength) const =0
Apply the reducer algorithm to an array of unsigned 16-bit integer values.
#define LIBAWKWARD_EXPORT_SYMBOL
Definition: common.h:45
dtype
NumPy dtypes that can be interpreted within Awkward C++ (only the primitive, fixed-width types)....
Definition: util.h:26
Definition: BitMaskedArray.h:15