3#ifndef AWKWARD_REDUCER_H_
4#define AWKWARD_REDUCER_H_
23 virtual const std::string
46 virtual const std::shared_ptr<void>
59 virtual const std::shared_ptr<void>
72 virtual const std::shared_ptr<void>
85 virtual const std::shared_ptr<void>
98 virtual const std::shared_ptr<void>
111 virtual const std::shared_ptr<void>
124 virtual const std::shared_ptr<void>
137 virtual const std::shared_ptr<void>
150 virtual const std::shared_ptr<void>
163 virtual const std::shared_ptr<void>
176 virtual const std::shared_ptr<void>
189 virtual const std::shared_ptr<void>
202 virtual const std::shared_ptr<void>
215 virtual const std::shared_ptr<void>
228 virtual const std::shared_ptr<void>
260 const std::shared_ptr<void>
265 const std::shared_ptr<void>
270 const std::shared_ptr<void>
275 const std::shared_ptr<void>
280 const std::shared_ptr<void>
285 const std::shared_ptr<void>
290 const std::shared_ptr<void>
295 const std::shared_ptr<void>
300 const std::shared_ptr<void>
305 const std::shared_ptr<void>
310 const std::shared_ptr<void>
315 const std::shared_ptr<void>
320 const std::shared_ptr<void>
325 const std::shared_ptr<void>
330 const std::shared_ptr<void>
361 const std::shared_ptr<void>
366 const std::shared_ptr<void>
371 const std::shared_ptr<void>
376 const std::shared_ptr<void>
381 const std::shared_ptr<void>
386 const std::shared_ptr<void>
391 const std::shared_ptr<void>
396 const std::shared_ptr<void>
401 const std::shared_ptr<void>
406 const std::shared_ptr<void>
411 const std::shared_ptr<void>
416 const std::shared_ptr<void>
421 const std::shared_ptr<void>
426 const std::shared_ptr<void>
431 const std::shared_ptr<void>
463 const std::shared_ptr<void>
468 const std::shared_ptr<void>
473 const std::shared_ptr<void>
478 const std::shared_ptr<void>
483 const std::shared_ptr<void>
488 const std::shared_ptr<void>
493 const std::shared_ptr<void>
498 const std::shared_ptr<void>
503 const std::shared_ptr<void>
508 const std::shared_ptr<void>
513 const std::shared_ptr<void>
518 const std::shared_ptr<void>
523 const std::shared_ptr<void>
528 const std::shared_ptr<void>
533 const std::shared_ptr<void>
565 const std::shared_ptr<void>
570 const std::shared_ptr<void>
575 const std::shared_ptr<void>
580 const std::shared_ptr<void>
585 const std::shared_ptr<void>
590 const std::shared_ptr<void>
595 const std::shared_ptr<void>
600 const std::shared_ptr<void>
605 const std::shared_ptr<void>
610 const std::shared_ptr<void>
615 const std::shared_ptr<void>
620 const std::shared_ptr<void>
625 const std::shared_ptr<void>
630 const std::shared_ptr<void>
635 const std::shared_ptr<void>
667 const std::shared_ptr<void>
672 const std::shared_ptr<void>
677 const std::shared_ptr<void>
682 const std::shared_ptr<void>
687 const std::shared_ptr<void>
692 const std::shared_ptr<void>
697 const std::shared_ptr<void>
702 const std::shared_ptr<void>
707 const std::shared_ptr<void>
712 const std::shared_ptr<void>
717 const std::shared_ptr<void>
722 const std::shared_ptr<void>
727 const std::shared_ptr<void>
732 const std::shared_ptr<void>
737 const std::shared_ptr<void>
769 const std::shared_ptr<void>
774 const std::shared_ptr<void>
779 const std::shared_ptr<void>
784 const std::shared_ptr<void>
789 const std::shared_ptr<void>
794 const std::shared_ptr<void>
799 const std::shared_ptr<void>
804 const std::shared_ptr<void>
809 const std::shared_ptr<void>
814 const std::shared_ptr<void>
819 const std::shared_ptr<void>
824 const std::shared_ptr<void>
829 const std::shared_ptr<void>
834 const std::shared_ptr<void>
839 const std::shared_ptr<void>
876 const std::shared_ptr<void>
881 const std::shared_ptr<void>
886 const std::shared_ptr<void>
891 const std::shared_ptr<void>
896 const std::shared_ptr<void>
901 const std::shared_ptr<void>
906 const std::shared_ptr<void>
911 const std::shared_ptr<void>
916 const std::shared_ptr<void>
921 const std::shared_ptr<void>
926 const std::shared_ptr<void>
931 const std::shared_ptr<void>
936 const std::shared_ptr<void>
941 const std::shared_ptr<void>
946 const std::shared_ptr<void>
988 const std::shared_ptr<void>
993 const std::shared_ptr<void>
998 const std::shared_ptr<void>
1003 const std::shared_ptr<void>
1008 const std::shared_ptr<void>
1013 const std::shared_ptr<void>
1018 const std::shared_ptr<void>
1023 const std::shared_ptr<void>
1028 const std::shared_ptr<void>
1033 const std::shared_ptr<void>
1038 const std::shared_ptr<void>
1043 const std::shared_ptr<void>
1048 const std::shared_ptr<void>
1053 const std::shared_ptr<void>
1058 const std::shared_ptr<void>
1063 double initial_f64_;
1105 const std::shared_ptr<void>
1110 const std::shared_ptr<void>
1115 const std::shared_ptr<void>
1120 const std::shared_ptr<void>
1125 const std::shared_ptr<void>
1130 const std::shared_ptr<void>
1135 const std::shared_ptr<void>
1140 const std::shared_ptr<void>
1145 const std::shared_ptr<void>
1150 const std::shared_ptr<void>
1155 const std::shared_ptr<void>
1160 const std::shared_ptr<void>
1165 const std::shared_ptr<void>
1170 const std::shared_ptr<void>
1175 const std::shared_ptr<void>
1217 const std::shared_ptr<void>
1222 const std::shared_ptr<void>
1227 const std::shared_ptr<void>
1232 const std::shared_ptr<void>
1237 const std::shared_ptr<void>
1242 const std::shared_ptr<void>
1247 const std::shared_ptr<void>
1252 const std::shared_ptr<void>
1257 const std::shared_ptr<void>
1262 const std::shared_ptr<void>
1267 const std::shared_ptr<void>
1272 const std::shared_ptr<void>
1277 const std::shared_ptr<void>
1282 const std::shared_ptr<void>
1287 const std::shared_ptr<void>
A contiguous, one-dimensional array of integers used to represent data structures,...
Definition Index.h:82
Filters, rearranges, and/or duplicates items in its content through an index, which has the same effe...
Definition IndexedArray.h:204
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