RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
RAJA::expt::detail::Reducer< Op, T, VOp > Struct Template Reference

#include <reducer.hpp>

Inheritance diagram for RAJA::expt::detail::Reducer< Op, T, VOp >:
RAJA::expt::detail::ForallParamBase RAJA::expt::detail::ParamBase

Public Types

using op = Op
 
using value_type = T
 
using ARG_TUP_T = camp::tuple< VOp * >
 
using ARG_T = VOp
 
using ARG_LIST_T = typename ARG_TUP_T::TList
 
- Public Types inherited from RAJA::expt::detail::ParamBase
using ARG_TUP_T = camp::tuple<>
 
using ARG_T = ParamBase
 
using ARG_LIST_T = typename ARG_TUP_T::TList
 

Public Member Functions

 Reducer ()=default
 
RAJA_HOST_DEVICE Reducer (value_type *target_in)
 
 Reducer (Reducer const &)=default
 
 Reducer (Reducer &&)=default
 
Reduceroperator= (Reducer const &)=default
 
Reduceroperator= (Reducer &&)=default
 
RAJA_HOST_DEVICE void combineTarget (value_type in)
 
RAJA_HOST_DEVICE value_typegetVal ()
 
RAJA_HOST_DEVICE ARG_TUP_T get_lambda_arg_tup ()
 
RAJA_HOST_DEVICE ARG_Tget_lambda_arg ()
 
- Public Member Functions inherited from RAJA::expt::detail::ParamBase
RAJA_HOST_DEVICE ARG_TUP_T get_lambda_arg_tup ()
 
RAJA_HOST_DEVICE ARG_Tget_lambda_arg ()
 

Public Attributes

VOp m_valop = VOp {}
 
value_typetarget = nullptr
 

Static Public Attributes

static constexpr size_t num_lambda_args = camp::tuple_size<ARG_TUP_T>::value
 
- Static Public Attributes inherited from RAJA::expt::detail::ParamBase
static constexpr size_t num_lambda_args = camp::tuple_size<ARG_TUP_T>::value
 

Member Typedef Documentation

◆ op

template<typename Op , typename T , typename VOp >
using RAJA::expt::detail::Reducer< Op, T, VOp >::op = Op

◆ value_type

template<typename Op , typename T , typename VOp >
using RAJA::expt::detail::Reducer< Op, T, VOp >::value_type = T

◆ ARG_TUP_T

template<typename Op , typename T , typename VOp >
using RAJA::expt::detail::Reducer< Op, T, VOp >::ARG_TUP_T = camp::tuple<VOp*>

◆ ARG_T

template<typename Op , typename T , typename VOp >
using RAJA::expt::detail::Reducer< Op, T, VOp >::ARG_T = VOp

◆ ARG_LIST_T

template<typename Op , typename T , typename VOp >
using RAJA::expt::detail::Reducer< Op, T, VOp >::ARG_LIST_T = typename ARG_TUP_T::TList

Constructor & Destructor Documentation

◆ Reducer() [1/4]

template<typename Op , typename T , typename VOp >
RAJA::expt::detail::Reducer< Op, T, VOp >::Reducer ( )
default

◆ Reducer() [2/4]

template<typename Op , typename T , typename VOp >
RAJA_HOST_DEVICE RAJA::expt::detail::Reducer< Op, T, VOp >::Reducer ( value_type target_in)
inline

◆ Reducer() [3/4]

template<typename Op , typename T , typename VOp >
RAJA::expt::detail::Reducer< Op, T, VOp >::Reducer ( Reducer< Op, T, VOp > const &  )
default

◆ Reducer() [4/4]

template<typename Op , typename T , typename VOp >
RAJA::expt::detail::Reducer< Op, T, VOp >::Reducer ( Reducer< Op, T, VOp > &&  )
default

Member Function Documentation

◆ operator=() [1/2]

template<typename Op , typename T , typename VOp >
Reducer& RAJA::expt::detail::Reducer< Op, T, VOp >::operator= ( Reducer< Op, T, VOp > const &  )
default

◆ operator=() [2/2]

template<typename Op , typename T , typename VOp >
Reducer& RAJA::expt::detail::Reducer< Op, T, VOp >::operator= ( Reducer< Op, T, VOp > &&  )
default

◆ combineTarget()

template<typename Op , typename T , typename VOp >
RAJA_HOST_DEVICE void RAJA::expt::detail::Reducer< Op, T, VOp >::combineTarget ( value_type  in)
inline

◆ getVal()

template<typename Op , typename T , typename VOp >
RAJA_HOST_DEVICE value_type& RAJA::expt::detail::Reducer< Op, T, VOp >::getVal ( )
inline

◆ get_lambda_arg_tup()

template<typename Op , typename T , typename VOp >
RAJA_HOST_DEVICE ARG_TUP_T RAJA::expt::detail::Reducer< Op, T, VOp >::get_lambda_arg_tup ( )
inline

◆ get_lambda_arg()

template<typename Op , typename T , typename VOp >
RAJA_HOST_DEVICE ARG_T* RAJA::expt::detail::Reducer< Op, T, VOp >::get_lambda_arg ( )
inline

Member Data Documentation

◆ m_valop

template<typename Op , typename T , typename VOp >
VOp RAJA::expt::detail::Reducer< Op, T, VOp >::m_valop = VOp {}

◆ target

template<typename Op , typename T , typename VOp >
value_type* RAJA::expt::detail::Reducer< Op, T, VOp >::target = nullptr

◆ num_lambda_args

template<typename Op , typename T , typename VOp >
constexpr size_t RAJA::expt::detail::Reducer< Op, T, VOp >::num_lambda_args = camp::tuple_size<ARG_TUP_T>::value
staticconstexpr

The documentation for this struct was generated from the following files: