This parametric dependency is used in the cases similar to the zip_pd, but whenever the reading from the first input flow is shifted by 1.
More...
|
|
| shifted_first_pd (Op op, T nvalue) |
| |
|
| shifted_first_pd (shifted_first_pd const &other) |
| |
| 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 Visitor , typename In , std::size_t... Indices> |
| void | apply_case_of (std::size_t id, Visitor &&visitor, In &&in_flow, index_sequence< Indices... > &&) const |
| |
| template<typename Size , typename Coord , typename FlowIndex > |
| std::size_t | consumer_count (Size const &skeleton_size, Coord const &producer_coord, 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 |
| |
|
T | get_init_value () const |
| |
|
template<typename Coord > |
| int | get_result_id (Coord const &, Coord const &) const |
| |
|
template<typename Coord , typename Span > |
| void | configure (Coord &&, Span &&) |
| |
|
|
static constexpr std::size_t | in_port_size = i |
| |
|
static constexpr std::size_t | op_arity = i |
| |
template<typename Op, typename T, int i>
class stapl::skeletons::skeletons_impl::shifted_first_pd< Op, T, i >
This parametric dependency is used in the cases similar to the zip_pd, but whenever the reading from the first input flow is shifted by 1.
An example of the inputs sent to a spawned element by this skeleton:
- in<0>[index - 1]
- in<1>[index]
- in<2>[index]
- ...
- Template Parameters
-
| Op | the workfunction to be applied on each element in the big shifted_first skeleton |
| T | the type of the default value |
| i | the number of input flows |
◆ case_of()
template<typename Op , typename T , int i>
template<typename Coord , typename Visitor , typename In >
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 - 1]
- in<1>[idx]
- in<2>[idx]
- ...
- Parameters
-
| coord | <i, j, k, ...> where i < n, j < m, k < p |
| visitor | the information about Op and input is passed so that later this information can be converted to a node in the dependence graph |
| in_flow | a tuple of input flows to consume from |
◆ consumer_count()
template<typename Op , typename T , int i>
template<typename Size , typename Coord , typename FlowIndex >
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
-
| skeleton_size | the size of this skeleton |
| producer_coord | the coordinate of the producer element which is providing data to this parametric dependency |
- Template Parameters
-
| FlowIndex | the flow index on which this request is sent |
The documentation for this class was generated from the following file: