28 template <
typename Value,
typename OutKey =
int>
30 BinaryTreeBroadcast<Value, OutKey>, ttg::typelist<Value>> {
38 {
"in|inout_l|inout_r"}, {
"inout_l",
"inout_r",
"out"}, world, [](
int key) {
return key; })
42 void op(
const int &key,
typename baseT::input_values_tuple_type &&
indata,
54 std::vector<OutKey> local_keys_;
a binary spanning tree of integers in the [0,size) interval
std::pair< int, int > child_keys(const int parent_key) const
generic binary broadcast of a value to a set of {key,value} pairs
typename BinaryTreeBroadcast::ttT baseT
void op(const int &key, typename baseT::input_values_tuple_type &&indata, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > > &outdata)
BinaryTreeBroadcast(Edge< int, Value > &in, Edge< OutKey, Value > &out, std::vector< OutKey > local_keys, int root=0, World world=ttg::default_execution_context(), int max_key=-1, Edge< int, Value > inout_l=Edge< int, Value >{}, Edge< int, Value > inout_r=Edge< int, Value >{})
Edge is used to connect In and Out terminals.
ttg::World get_world() const override final
std::tuple_element_t< i, output_terminalsT > * out()
std::tuple_element_t< i, input_terminals_type > * in()
static resultT get(InTuple &&intuple)
top-level TTG namespace contains runtime-neutral functionality
auto fuse(const Edge< keyT, valuesT > &...args)
Fuse edges into one This allows receiving one data from either of the combined edges.
World default_execution_context()
Accesses the default backend's default execution context.
int rank(World world=default_execution_context())
auto edges(inedgesT &&...args)
Make a tuple of Edges to pass to.