Compositional operators allow new skeletons to be defined from existing skeletons.
More...
|
template<typename Flows , typename ... S> |
result_of::compose< Flows, stapl::tuple< typename std::decay< S >::type... > > | stapl::skeletons::compose (S &&... skeleton) |
| A compose operator is similar to the functional composition used in functional programming. However, it allows the customization of composition through the given Flows parameter. More...
|
|
template<typename ... S> |
result_of::compose< stapl::use_default, stapl::tuple< typename std::decay< S >::type... > > | stapl::skeletons::compose (S &&... skeleton) |
| A specialization for the functional composition style compose operator. More...
|
|
template<typename Flows = stapl::use_default, typename Body , typename Reduce , typename ContCond > |
result_of::do_while< Flows, Body, Reduce, ContCond > | stapl::skeletons::do_while (Body &&body_skeleton, Reduce &&reduce_skeleton, ContCond &&cont_cond) |
| A do while skeleton is used when a loop with dynamically determined condition is required. After each iteration the loop condition provided by cont_cond is evaluated and loop will continue or stop based on the input to the cont_cond. More...
|
|
template<typename Span = stapl::use_default, typename Flows = stapl::use_default, typename PD > |
result_of::elem< Span, Flows, PD > | stapl::skeletons::elem (PD &&pd, Span &&span) |
| An elementary is an operator that converts parametric dependencies to skeletons. It wraps a parametric dependency with Flows and Span information. More...
|
|
template<typename Span = stapl::use_default, typename Flows = stapl::use_default, typename PD > |
result_of::elem< Span, Flows, PD > | stapl::skeletons::elem (PD &&pd) |
| An overload when the span instance is not passed. More...
|
|
template<typename Flows = stapl::use_default, typename S , typename SizeF > |
result_of::repeat< Flows, S, SizeF > | stapl::skeletons::repeat (S &&skeleton, SizeF &&size_functor) |
| Repeat skeleton repeats an enclosed skeleton for the lazy size provided by size_functor . You can see examples of its usage in tree , reverse_tree , butterfly , etc. More...
|
|
Compositional operators allow new skeletons to be defined from existing skeletons.
template<typename Flows , typename ... S>
result_of::compose< Flows, stapl::tuple<typename std::decay<S>::type...> > stapl::skeletons::compose |
( |
S &&... |
skeleton | ) |
|
A compose operator is similar to the functional composition used in functional programming. However, it allows the customization of composition through the given Flows
parameter.
The Flows
parameter defines the input/output dependencies between the underlying skeletons without the knowledge of the computation. The default Flows
is called piped
in which the input/output dependencies are the same as the function composition compose(S1, S2, ... Sn) input = Sn(...(S1(input))).
- Template Parameters
-
Flows | the flows to be used for this compose operator. Some skeletons require customized flows for their computation. However, most of the compositions can use the default method of composition called piped . If tags::inline_flow is passed, then the flow type will be created based on annotations added to the skeleton parameters. |
- Parameters
-
skeleton | skeletons to be composed. |
- Returns
- a composition of the given skeletons with the given customized flows.
- See also
- flows::compose_flows::piped
-
flows::inline_flows::inline_flow