24 #ifndef ACLREDUCTIONALGGENERATUR_H
25 #define ACLREDUCTIONALGGENERATUR_H
28 #include <math/aslVectors.h>
29 #include <utilities/aslUValue.h>
41 template <
typename ResType, enum ReductionOperatorType Op>
class ReductionAlgGenerator
50 std::vector<std::vector<ResType>> groupRes;
51 VectorOfElementsData groupResACL;
53 shared_ptr<Kernel> kernel;
62 template <
typename ResType> std::shared_ptr<ReductionAlgGenerator<ResType, ROT_SUM>>
65 template <
typename ResType> std::shared_ptr<ReductionAlgGenerator<ResType, ROT_MINIMUM>>
68 template <
typename ResType> std::shared_ptr<ReductionAlgGenerator<ResType, ROT_MAXIMUM>>
71 template <
typename ResType> std::shared_ptr<ReductionAlgGenerator<ResType, ROT_PRODUCT>>
ReductionAlgGenerator(VectorOfElements v)
void generateAlg(Kernel &k)
asl::UValue< asl::AVec< ResType > > res
The class represents several Element.
Updatable value. This class stores value and its TimeStamp.
Advanced Computational Language.
std::shared_ptr< ReductionAlgGenerator< ResType, ROT_SUM > > generateSumAlg(VectorOfElements v)
std::shared_ptr< ReductionAlgGenerator< ResType, ROT_PRODUCT > > generateProductAlg(VectorOfElements v)
std::shared_ptr< ReductionAlgGenerator< ResType, ROT_MAXIMUM > > generateMaxAlg(VectorOfElements v)
std::shared_ptr< ReductionAlgGenerator< ResType, ROT_MINIMUM > > generateMinAlg(VectorOfElements v)