RAJA
RAJA provides a collection of platform portability abstractions for C++ HPC applications.
Functions
RAJA::wrap Namespace Reference

The RAJA::wrap layer unwraps dynamic policies before dispatch. More...

Functions

template<typename Res , typename ExecutionPolicy , typename Container , typename LoopBody , typename ForallParams >
RAJA_INLINE concepts::enable_if_t< RAJA::resources::EventProxy< Res >, concepts::negate< type_traits::is_indexset_policy< ExecutionPolicy > >, type_traits::is_range< Container > > forall (Res r, ExecutionPolicy &&p, Container &&c, LoopBody &&loop_body, ForallParams &&f_params)
 Generic dispatch over containers with a value-based policy. More...
 
template<typename Res , typename ExecutionPolicy , typename Container , typename LoopBody >
RAJA_INLINE concepts::enable_if_t< RAJA::resources::EventProxy< Res >, concepts::negate< type_traits::is_indexset_policy< ExecutionPolicy > >, type_traits::is_range< Container > > forall (Res r, ExecutionPolicy &&p, Container &&c, LoopBody &&loop_body)
 
template<typename Res , typename ExecutionPolicy , typename Container , typename IndexType , typename LoopBody , typename ForallParams >
RAJA_INLINE resources::EventProxy< Res > forall_Icount (Res r, ExecutionPolicy &&p, Container &&c, IndexType &&icount, LoopBody &&loop_body, ForallParams &&f_params)
 Generic dispatch over containers with a value-based policy with icount. More...
 
template<typename Res , typename SegmentIterPolicy , typename SegmentExecPolicy , typename... SegmentTypes, typename LoopBody , typename ForallParams >
RAJA_INLINE resources::EventProxy< Res > forall_Icount (Res r, ExecPolicy< SegmentIterPolicy, SegmentExecPolicy >, const TypedIndexSet< SegmentTypes... > &iset, LoopBody loop_body, ForallParams f_params)
 Execute segments from forall_Icount traversal method. More...
 
template<typename Res , typename SegmentIterPolicy , typename SegmentExecPolicy , typename LoopBody , typename... SegmentTypes, typename ForallParams >
RAJA_INLINE resources::EventProxy< Res > forall (Res r, ExecPolicy< SegmentIterPolicy, SegmentExecPolicy >, const TypedIndexSet< SegmentTypes... > &iset, LoopBody loop_body, ForallParams f_params)
 

Detailed Description

The RAJA::wrap layer unwraps dynamic policies before dispatch.

Function Documentation

◆ forall() [1/3]

template<typename Res , typename ExecutionPolicy , typename Container , typename LoopBody , typename ForallParams >
RAJA_INLINE concepts::enable_if_t< RAJA::resources::EventProxy<Res>, concepts::negate<type_traits::is_indexset_policy<ExecutionPolicy> >, type_traits::is_range<Container> > RAJA::wrap::forall ( Res  r,
ExecutionPolicy &&  p,
Container &&  c,
LoopBody &&  loop_body,
ForallParams &&  f_params 
)

Generic dispatch over containers with a value-based policy.

◆ forall() [2/3]

template<typename Res , typename ExecutionPolicy , typename Container , typename LoopBody >
RAJA_INLINE concepts::enable_if_t< RAJA::resources::EventProxy<Res>, concepts::negate<type_traits::is_indexset_policy<ExecutionPolicy> >, type_traits::is_range<Container> > RAJA::wrap::forall ( Res  r,
ExecutionPolicy &&  p,
Container &&  c,
LoopBody &&  loop_body 
)

◆ forall_Icount() [1/2]

template<typename Res , typename ExecutionPolicy , typename Container , typename IndexType , typename LoopBody , typename ForallParams >
RAJA_INLINE resources::EventProxy<Res> RAJA::wrap::forall_Icount ( Res  r,
ExecutionPolicy &&  p,
Container &&  c,
IndexType &&  icount,
LoopBody &&  loop_body,
ForallParams &&  f_params 
)

Generic dispatch over containers with a value-based policy with icount.

◆ forall_Icount() [2/2]

template<typename Res , typename SegmentIterPolicy , typename SegmentExecPolicy , typename... SegmentTypes, typename LoopBody , typename ForallParams >
RAJA_INLINE resources::EventProxy<Res> RAJA::wrap::forall_Icount ( Res  r,
ExecPolicy< SegmentIterPolicy, SegmentExecPolicy >  ,
const TypedIndexSet< SegmentTypes... > &  iset,
LoopBody  loop_body,
ForallParams  f_params 
)

Execute segments from forall_Icount traversal method.

    For usage example, see reducers.hxx.

◆ forall() [3/3]

template<typename Res , typename SegmentIterPolicy , typename SegmentExecPolicy , typename LoopBody , typename... SegmentTypes, typename ForallParams >
RAJA_INLINE resources::EventProxy<Res> RAJA::wrap::forall ( Res  r,
ExecPolicy< SegmentIterPolicy, SegmentExecPolicy >  ,
const TypedIndexSet< SegmentTypes... > &  iset,
LoopBody  loop_body,
ForallParams  f_params 
)