RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
Public Types | Public Member Functions | List of all members
RAJA::detail::HoldForall< ExecutionPolicy, Segment_type, LoopBody, index_type, Args > Struct Template Reference

#include <WorkRunner.hpp>

Public Types

using resource_type = typename resources::get_resource< ExecutionPolicy >::type
 
using HoldBodyArgs = typename std::conditional< !type_traits::is_device_exec_policy< ExecutionPolicy >::value, HoldBodyArgs_host< LoopBody, index_type, Args... >, HoldBodyArgs_device< LoopBody, index_type, Args... > >::type
 

Public Member Functions

template<typename segment_in , typename body_in >
 HoldForall (segment_in &&segment, body_in &&body)
 
RAJA_INLINE void operator() (resource_type r, Args... args) const
 

Detailed Description

template<typename ExecutionPolicy, typename Segment_type, typename LoopBody, typename index_type, typename... Args>
struct RAJA::detail::HoldForall< ExecutionPolicy, Segment_type, LoopBody, index_type, Args >

A body and segment holder for storing loops that will be executed as foralls

Member Typedef Documentation

◆ resource_type

template<typename ExecutionPolicy , typename Segment_type , typename LoopBody , typename index_type , typename... Args>
using RAJA::detail::HoldForall< ExecutionPolicy, Segment_type, LoopBody, index_type, Args >::resource_type = typename resources::get_resource<ExecutionPolicy>::type

◆ HoldBodyArgs

template<typename ExecutionPolicy , typename Segment_type , typename LoopBody , typename index_type , typename... Args>
using RAJA::detail::HoldForall< ExecutionPolicy, Segment_type, LoopBody, index_type, Args >::HoldBodyArgs = typename std::conditional< !type_traits::is_device_exec_policy<ExecutionPolicy>::value, HoldBodyArgs_host<LoopBody, index_type, Args...>, HoldBodyArgs_device<LoopBody, index_type, Args...> >::type

Constructor & Destructor Documentation

◆ HoldForall()

template<typename ExecutionPolicy , typename Segment_type , typename LoopBody , typename index_type , typename... Args>
template<typename segment_in , typename body_in >
RAJA::detail::HoldForall< ExecutionPolicy, Segment_type, LoopBody, index_type, Args >::HoldForall ( segment_in &&  segment,
body_in &&  body 
)
inline

Member Function Documentation

◆ operator()()

template<typename ExecutionPolicy , typename Segment_type , typename LoopBody , typename index_type , typename... Args>
RAJA_INLINE void RAJA::detail::HoldForall< ExecutionPolicy, Segment_type, LoopBody, index_type, Args >::operator() ( resource_type  r,
Args...  args 
) const
inline

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