STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Public Types | Static Public Attributes
stapl::skeletons::skeletons_impl::set_result_pd< Arity, Op, Span, SetResult > Class Template Reference

Creates a set_result parametric dependency given a op. Basically this parametric dependency is only used for sinking values of skeletons which couldn't currently set their results directly without using sink_value skeleton. More...

Public Member Functions

 set_result_pd (Op op)
 
template<typename Coord , typename Visitor , typename In >
void case_of (Coord const &, Coord const &coord, Visitor &visitor, In &&in_flow) const
 If coord is <idx, ...> it wraps the Op with the following inputs and sends it to the visitor along with the m_op. More...
 
template<typename Size , typename Coord , typename FlowIndex >
std::size_t consumer_count (Size const &skeleton_size, Coord const &producer_coord, FlowIndex const &) const
 determines how many of the instances of this parametric dependency will be consuming from a producer with a given coordinate. This is a reverse query as compared to case_of More...
 
template<typename Coord >
int get_result_id (Coord const &, Coord const &) const
 
Op get_op () const
 
template<typename Coord , typename SpanType >
void configure (Coord &&, SpanType &&)
 

Public Types

using op_type = Op
 

Static Public Attributes

static constexpr std::size_t in_port_size = Arity
 
static constexpr std::size_t op_arity = Arity
 

Detailed Description

template<std::size_t Arity, typename Op, typename Span, bool SetResult>
class stapl::skeletons::skeletons_impl::set_result_pd< Arity, Op, Span, SetResult >

Creates a set_result parametric dependency given a op. Basically this parametric dependency is only used for sinking values of skeletons which couldn't currently set their results directly without using sink_value skeleton.

Template Parameters
Aritythe number of inputs are passed to the skeleton
SetResultwhether the skeleton should set the task results on the pg edge container or not
Spanthe span for the previous skeleton that is passed to set result_pd for detecting if the corresponding corresponding task is spanned or not
Opthe workfunction to be used in each set_result parametric dependency

Member Function Documentation

◆ case_of()

template<std::size_t Arity, typename Op , typename Span , bool SetResult>
template<typename Coord , typename Visitor , typename In >
void stapl::skeletons::skeletons_impl::set_result_pd< Arity, Op, Span, SetResult >::case_of ( Coord const &  ,
Coord const &  coord,
Visitor &  visitor,
In &&  in_flow 
) const

If coord is <idx, ...> it wraps the Op with the following inputs and sends it to the visitor along with the m_op.

  • in<0>[idx]
  • in<1>[idx]
  • ...
Parameters
coord<i, j, k, ...> where i < n, j < m, k < p
visitorthe information about Op and input is passed so that later this information can be converted to a node in the dependence graph
in_flowa tuple of input flows to consume from

◆ consumer_count()

template<std::size_t Arity, typename Op , typename Span , bool SetResult>
template<typename Size , typename Coord , typename FlowIndex >
std::size_t stapl::skeletons::skeletons_impl::set_result_pd< Arity, Op, Span, SetResult >::consumer_count ( Size const &  skeleton_size,
Coord const &  producer_coord,
FlowIndex const &   
) const

determines how many of the instances of this parametric dependency will be consuming from a producer with a given coordinate. This is a reverse query as compared to case_of

Parameters
producer_coordthe producer coordination
skeleton_sizethe size of skeleton dimension
Template Parameters
FlowIndexthe flow index to which this request is sent

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