RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
Classes | Namespaces | Macros
reduce.hpp File Reference

Base types used in common for RAJA reducer objects. More...

#include "RAJA/util/Operators.hpp"
#include "RAJA/util/types.hpp"

Go to the source code of this file.

Classes

struct  RAJA::reduce::detail::op_adapter< T, Op >
 
struct  RAJA::reduce::sum< T >
 
struct  RAJA::reduce::min< T >
 
struct  RAJA::reduce::max< T >
 
struct  RAJA::reduce::or_bit< T >
 
struct  RAJA::reduce::and_bit< T >
 
struct  RAJA::reduce::detail::DefaultLoc< T, bool >
 
struct  RAJA::reduce::detail::DefaultLoc< T, false >
 
struct  RAJA::reduce::detail::DefaultLoc< T, true >
 
class  RAJA::reduce::detail::ValueLoc< T, IndexType, doing_min >
 
struct  RAJA::operators::limits<::RAJA::reduce::detail::ValueLoc< T, IndexType, B > >
 
class  RAJA::reduce::detail::BaseReduce< T, Reduce_, Combiner_ >
 
class  RAJA::reduce::detail::BaseCombinable< T, Reduce, Derived >
 
class  RAJA::reduce::detail::BaseReduceMin< T, Combiner >
 Min reducer class template. More...
 
class  RAJA::reduce::detail::BaseReduceMinLoc< T, IndexType, Combiner >
 MinLoc reducer class template. More...
 
class  RAJA::reduce::detail::BaseReduceMax< T, Combiner >
 Max reducer class template. More...
 
class  RAJA::reduce::detail::BaseReduceSum< T, Combiner >
 Sum reducer class template. More...
 
class  RAJA::reduce::detail::BaseReduceBitOr< T, Combiner >
 Bitwise OR reducer class template. More...
 
class  RAJA::reduce::detail::BaseReduceBitAnd< T, Combiner >
 Bitwise AND reducer class template. More...
 
class  RAJA::reduce::detail::BaseReduceMaxLoc< T, IndexType, Combiner >
 MaxLoc reducer class template. More...
 

Namespaces

 RAJA
 
 RAJA::reduce
 
 RAJA::reduce::detail
 
 RAJA::operators
 

Macros

#define RAJA_DECLARE_REDUCER(OP, POL, COMBINER)
 
#define RAJA_DECLARE_INDEX_REDUCER(OP, POL, COMBINER)
 
#define RAJA_DECLARE_ALL_REDUCERS(POL, COMBINER)
 

Detailed Description

Base types used in common for RAJA reducer objects.

Macro Definition Documentation

◆ RAJA_DECLARE_REDUCER

#define RAJA_DECLARE_REDUCER (   OP,
  POL,
  COMBINER 
)
Value:
template<typename T> \
class Reduce##OP<POL, T> \
: public reduce::detail::BaseReduce##OP<T, COMBINER> \
{ \
public: \
using Base = reduce::detail::BaseReduce##OP<T, COMBINER>; \
using Base::Base; \
};
constexpr auto Reduce(T *target)
Definition: reducer.hpp:231

◆ RAJA_DECLARE_INDEX_REDUCER

#define RAJA_DECLARE_INDEX_REDUCER (   OP,
  POL,
  COMBINER 
)
Value:
template<typename T, typename IndexType> \
class Reduce##OP<POL, T, IndexType> \
: public reduce::detail::BaseReduce##OP<T, IndexType, COMBINER> \
{ \
public: \
using Base = reduce::detail::BaseReduce##OP<T, IndexType, COMBINER>; \
using Base::Base; \
};

◆ RAJA_DECLARE_ALL_REDUCERS

#define RAJA_DECLARE_ALL_REDUCERS (   POL,
  COMBINER 
)
Value:
RAJA_DECLARE_REDUCER(Sum, POL, COMBINER) \
RAJA_DECLARE_REDUCER(Min, POL, COMBINER) \
RAJA_DECLARE_REDUCER(Max, POL, COMBINER) \
RAJA_DECLARE_INDEX_REDUCER(MinLoc, POL, COMBINER) \
RAJA_DECLARE_INDEX_REDUCER(MaxLoc, POL, COMBINER) \
RAJA_DECLARE_REDUCER(BitOr, POL, COMBINER) \
RAJA_DECLARE_REDUCER(BitAnd, POL, COMBINER)
#define RAJA_DECLARE_REDUCER(OP, POL, COMBINER)
Definition: reduce.hpp:26