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::notify_map_pd< Op, NotifCount, F > Class Template Reference

A notify_map parametric dependency is similar to a map_pd, however, it waits for NotifCount notifications from the first NotifCount flows. More...

Public Member Functions

 notify_map_pd (Op op, F f)
 
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 &, Coord const &, FlowIndex) 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...
 
Op get_op () const
 
get_filter () const
 
template<typename Coord >
int get_result_id (Coord const &, Coord const &) const
 
template<typename Coord , typename Span >
void configure (Coord &&, Span &&)
 

Public Types

using op_type = Op
 

Static Public Attributes

static constexpr std::size_t in_port_size = NotifCount + 1
 
static constexpr std::size_t op_arity = 1
 

Detailed Description

template<typename Op, int NotifCount, typename F>
class stapl::skeletons::skeletons_impl::notify_map_pd< Op, NotifCount, F >

A notify_map parametric dependency is similar to a map_pd, however, it waits for NotifCount notifications from the first NotifCount flows.

Example - the inputs to a spawned element created by this skeleton would be:

Template Parameters
Opthe workfunction to be applied on each element
NotifCountthe number of notification-only flows
See also
map_pd
notify_map

Member Function Documentation

◆ case_of()

template<typename Op , int NotifCount, typename F >
template<typename Coord , typename Visitor , typename In >
void stapl::skeletons::skeletons_impl::notify_map_pd< Op, NotifCount, F >::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<NotifCount, j, k, ...> where NotifCount < 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<typename Op , int NotifCount, typename F >
template<typename Size , typename Coord , typename FlowIndex >
std::size_t stapl::skeletons::skeletons_impl::notify_map_pd< Op, NotifCount, F >::consumer_count ( Size const &  ,
Coord const &  ,
FlowIndex   
) 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

Template Parameters
FlowIndexthe flow index to which this request is sent

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