STORMM Source Documentation
Loading...
Searching...
No Matches
reduction.h
1// -*-c++-*-
2#ifndef STORMM_REDUCTION_H
3#define STORMM_REDUCTION_H
4
5#include "copyright.h"
6#include "DataTypes/common_types.h"
7#include "Math/summation.h"
8#include "Math/vector_ops.h"
9#include "Numerics/split_fixed_precision.h"
10#include "Synthesis/atomgraph_synthesis.h"
11#include "reduction_abstracts.h"
12#include "reduction_enumerators.h"
13#include "reduction_workunit.h"
14
15namespace stormm {
16namespace stmath {
17
18using numerics::max_llint_accumulation;
19
30double gatherNormalization(const GenericRdSubstrate<llint> rsbs, const int start_pos,
31 const int end_pos);
32
33template <typename T>
34double gatherNormalization(const GenericRdSubstrate<T> rsbs, int start_pos, int end_pos);
36
47double3 gatherCenterOnZero(const GenericRdSubstrate<llint> rsbs, int start_pos, int end_pos);
48
49template <typename T>
50double3 gatherCenterOnZero(const GenericRdSubstrate<T> rsbs, int start_pos, int end_pos);
52
67void scatterNormalization(GenericRdSubstrate<llint> rsbs, double tsum, int start_pos,
68 int end_pos);
69
70template <typename T>
71void scatterNormalization(GenericRdSubstrate<T> rsbs, double tsum, int start_pos, int end_pos);
73
89void scatterCenterOnZero(GenericRdSubstrate<llint> rsbs, double tsum_x, double tsum_y,
90 double tsum_z, int natom, int start_pos, int end_pos);
91
92template <typename T>
93void scatterCenterOnZero(GenericRdSubstrate<T> rsbs, double tsum_x, double tsum_y, double tsum_z,
94 int natom, int start_pos, int end_pos);
96
107template <typename T>
108void evalReduction(GenericRdSubstrate<T> *rsbs, const ReductionKit &redk,
109 const ReductionStage process = ReductionStage::ALL_REDUCE,
110 const ReductionGoal purpose = ReductionGoal::NORMALIZE);
111
112} // namespace stmath
113} // namespace stormm
114
115#include "reduction.tpp"
116
117#endif
Collect pointers to data subject to reduction operations. Reductions can happen on up to three data s...
Definition reduction_abstracts.h:55
Collect the simple components needed to guide reductions across all systems in a topology synthesis (...
Definition reduction_abstracts.h:24