CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT > Class Template Reference
Inheritance diagram for CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >:

Documentation

template<typename funcT, typename returnT, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT, typename output_terminalsT, typename... input_valuesT>
class CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >

Definition at line 136 of file make_tt.h.

Public Member Functions

template<typename funcT_ >
 CallableWrapTTArgs (funcT_ &&f, const input_edges_type &inedges, const typename baseT::output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)
 
template<typename funcT_ >
 CallableWrapTTArgs (funcT_ &&f, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)
 
template<typename Key , typename ArgsTuple >
std::enable_if_t< std::is_same_v< ArgsTuple, input_refs_tuple_type > &&!ttg::meta::is_empty_tuple_v< input_refs_tuple_type > &&!ttg::meta::is_void_v< Key >, op_return_type > op (Key &&key, ArgsTuple &&args_tuple, output_terminalsT &out)
 
template<typename ArgsTuple , typename Key = keyT>
std::enable_if_t< std::is_same_v< ArgsTuple, input_refs_tuple_type > &&!ttg::meta::is_empty_tuple_v< input_refs_tuple_type > &&ttg::meta::is_void_v< Key >, op_return_type > op (ArgsTuple &&args_tuple, output_terminalsT &out)
 
template<typename Key , typename ArgsTuple = input_refs_tuple_type>
std::enable_if_t< ttg::meta::is_empty_tuple_v< ArgsTuple > &&!ttg::meta::is_void_v< Key >, op_return_type > op (Key &&key, output_terminalsT &out)
 
template<typename Key = keyT, typename ArgsTuple = input_refs_tuple_type>
std::enable_if_t< ttg::meta::is_empty_tuple_v< ArgsTuple > &&ttg::meta::is_void_v< Key >, op_return_type > op (output_terminalsT &out)
 

Static Public Attributes

static constexpr bool have_cuda_op = (space == ttg::ExecutionSpace::CUDA)
 
static constexpr bool have_hip_op = (space == ttg::ExecutionSpace::HIP)
 
static constexpr bool have_level_zero_op = (space == ttg::ExecutionSpace::L0)
 

Protected Member Functions

template<typename ReturnT >
auto process_return (ReturnT &&ret, output_terminalsT &out)
 
template<typename Key , typename Tuple , std::size_t... S>
auto call_func (Key &&key, Tuple &&args_tuple, output_terminalsT &out, std::index_sequence< S... >)
 
template<typename Tuple , std::size_t... S>
auto call_func (Tuple &&args_tuple, output_terminalsT &out, std::index_sequence< S... >)
 
template<typename Key >
auto call_func (Key &&key, output_terminalsT &out)
 
template<typename OutputTerminals >
auto call_func (OutputTerminals &out)
 

Static Protected Member Functions

template<typename Tuple , std::size_t... I>
static auto make_output_terminal_ptrs (const Tuple &output_terminals, std::index_sequence< I... >)
 

Constructor & Destructor Documentation

◆ CallableWrapTTArgs() [1/2]

template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename funcT_ >
CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::CallableWrapTTArgs ( funcT_ &&  f,
const input_edges_type &  inedges,
const typename baseT::output_edges_type &  outedges,
const std::string &  name,
const std::vector< std::string > &  innames,
const std::vector< std::string > &  outnames 
)
inline

Definition at line 336 of file make_tt.h.

◆ CallableWrapTTArgs() [2/2]

template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename funcT_ >
CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::CallableWrapTTArgs ( funcT_ &&  f,
const std::string &  name,
const std::vector< std::string > &  innames,
const std::vector< std::string > &  outnames 
)
inline

Definition at line 342 of file make_tt.h.

Member Function Documentation

◆ call_func() [1/4]

template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename Key >
auto CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::call_func ( Key &&  key,
output_terminalsT &  out 
)
inlineprotected

Definition at line 283 of file make_tt.h.

◆ call_func() [2/4]

template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename Key , typename Tuple , std::size_t... S>
auto CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::call_func ( Key &&  key,
Tuple &&  args_tuple,
output_terminalsT &  out,
std::index_sequence< S... >   
)
inlineprotected
Returns
coroutine handle<> (if funcT is a coroutine), else void

Definition at line 225 of file make_tt.h.

◆ call_func() [3/4]

template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename OutputTerminals >
auto CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::call_func ( OutputTerminals &  out)
inlineprotected

Definition at line 306 of file make_tt.h.

◆ call_func() [4/4]

template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename Tuple , std::size_t... S>
auto CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::call_func ( Tuple &&  args_tuple,
output_terminalsT &  out,
std::index_sequence< S... >   
)
inlineprotected

Definition at line 259 of file make_tt.h.

◆ make_output_terminal_ptrs()

template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename Tuple , std::size_t... I>
static auto CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::make_output_terminal_ptrs ( const Tuple &  output_terminals,
std::index_sequence< I... >   
)
inlinestaticprotected

Definition at line 329 of file make_tt.h.

◆ op() [1/4]

template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename ArgsTuple , typename Key = keyT>
std::enable_if_t<std::is_same_v<ArgsTuple, input_refs_tuple_type> && !ttg::meta::is_empty_tuple_v<input_refs_tuple_type> && ttg::meta::is_void_v<Key>, op_return_type> CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::op ( ArgsTuple &&  args_tuple,
output_terminalsT &  out 
)
inline

Definition at line 360 of file make_tt.h.

◆ op() [2/4]

template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename Key , typename ArgsTuple >
std::enable_if_t<std::is_same_v<ArgsTuple, input_refs_tuple_type> && !ttg::meta::is_empty_tuple_v<input_refs_tuple_type> && !ttg::meta::is_void_v<Key>, op_return_type> CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::op ( Key &&  key,
ArgsTuple &&  args_tuple,
output_terminalsT &  out 
)
inline

Definition at line 350 of file make_tt.h.

◆ op() [3/4]

template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename Key , typename ArgsTuple = input_refs_tuple_type>
std::enable_if_t<ttg::meta::is_empty_tuple_v<ArgsTuple> && !ttg::meta::is_void_v<Key>, op_return_type> CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::op ( Key &&  key,
output_terminalsT &  out 
)
inline

Definition at line 367 of file make_tt.h.

◆ op() [4/4]

template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename Key = keyT, typename ArgsTuple = input_refs_tuple_type>
std::enable_if_t<ttg::meta::is_empty_tuple_v<ArgsTuple> && ttg::meta::is_void_v<Key>, op_return_type> CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::op ( output_terminalsT &  out)
inline

Definition at line 374 of file make_tt.h.

◆ process_return()

template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
template<typename ReturnT >
auto CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::process_return ( ReturnT &&  ret,
output_terminalsT &  out 
)
inlineprotected

Definition at line 175 of file make_tt.h.

Member Data Documentation

◆ have_cuda_op

template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
constexpr bool CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::have_cuda_op = (space == ttg::ExecutionSpace::CUDA)
staticconstexpr

Definition at line 168 of file make_tt.h.

◆ have_hip_op

template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
constexpr bool CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::have_hip_op = (space == ttg::ExecutionSpace::HIP)
staticconstexpr

Definition at line 169 of file make_tt.h.

◆ have_level_zero_op

template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
constexpr bool CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::have_level_zero_op = (space == ttg::ExecutionSpace::L0)
staticconstexpr

Definition at line 170 of file make_tt.h.


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