20 #ifndef RAJA_pattern_kernel_InitLocalMem_HPP
21 #define RAJA_pattern_kernel_InitLocalMem_HPP
23 #include "RAJA/config.hpp"
26 #include <type_traits>
48 template<
typename Pol,
typename Indices,
typename... EnclosedStmts>
53 template<camp::idx_t... Indices,
typename... EnclosedStmts>
55 camp::idx_seq<Indices...>,
66 template<camp::idx_t... Indices,
typename... EnclosedStmts,
typename Types>
68 camp::idx_seq<Indices...>,
82 template<camp::idx_t Pos, camp::idx_t... others,
class Data>
85 using varType =
typename camp::tuple_element_t<
86 Pos,
typename camp::decay<Data>::param_tuple_t>::value_type;
90 std::make_unique<varType[]>(camp::get<Pos>(data.param_tuple).size());
91 camp::get<Pos>(data.param_tuple).set_data(local_mem.get());
94 exec_expanded<others...>(data);
97 camp::get<Pos>(data.param_tuple).set_data(
nullptr);
100 template<
typename Data>
101 static RAJA_INLINE
void exec(Data&& data)
104 exec_expanded<Indices...>(data);
RAJA_INLINE void execute_statement_list(Data &&data)
Definition: StatementList.hpp:84
Definition: AlignedRangeIndexSetBuilders.cpp:35
static RAJA_INLINE void exec(Data &&data)
Definition: InitLocalMem.hpp:101
static void RAJA_INLINE exec_expanded(Data &&data)
Definition: InitLocalMem.hpp:75
static void RAJA_INLINE exec_expanded(Data &&data)
Definition: InitLocalMem.hpp:83
Definition: Statement.hpp:48
Definition: Statement.hpp:35
Definition: InitLocalMem.hpp:50