RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
multi_reduce.hpp
Go to the documentation of this file.
1 
11 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
12 // Copyright (c) Lawrence Livermore National Security, LLC and other
13 // RAJA Project Developers. See top-level LICENSE and COPYRIGHT
14 // files for dates and other details. No copyright assignment is required
15 // to contribute to RAJA.
16 //
17 // SPDX-License-Identifier: (BSD-3-Clause)
18 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
19 
20 #ifndef RAJA_multi_reduce_HPP
21 #define RAJA_multi_reduce_HPP
22 
23 #include "RAJA/config.hpp"
24 
25 #include "RAJA/util/Operators.hpp"
26 #include "RAJA/util/macros.hpp"
27 
28 namespace RAJA
29 {
30 
31 //
32 // Forward declarations for multi reduction templates.
33 // Actual classes appear in forall_*.hxx header files.
34 //
35 // IMPORTANT: multi reduction policy parameter must be consistent with loop
36 // execution policy type.
37 //
38 // Also, multiple multi reductions using different reduction operations may be
39 // combined in a single RAJA forall() construct.
40 //
41 
69 template<typename MULTI_REDUCE_POLICY_T, typename T>
71 
99 template<typename MULTI_REDUCE_POLICY_T, typename T>
101 
129 template<typename MULTI_REDUCE_POLICY_T, typename T>
131 
159 template<typename MULTI_REDUCE_POLICY_T, typename T>
161 
162 
191 template<typename MULTI_REDUCE_POLICY_T, typename T>
193 
194 } // namespace RAJA
195 
196 
197 #endif // closing endif for header file include guard
Header file for RAJA operator definitions.
Header file for common RAJA internal macro definitions.
Definition: AlignedRangeIndexSetBuilders.cpp:35
Bitwise AND multi reducer class template.
Definition: multi_reduce.hpp:192
Bitwise OR multi reducer class template.
Definition: multi_reduce.hpp:160
Max multi reducer class template.
Definition: multi_reduce.hpp:100
Min multi reducer class template.
Definition: multi_reduce.hpp:70
Sum multi reducer class template.
Definition: multi_reduce.hpp:130