This class abstracts the semantics of a scatter skeleton by exposing only the necessary information in its representation. A scatter skeleton is simply a reverse binary tree with an operation which splits the input into two halves. More...
Public Member Functions | |
| scatter_impl::scatter_op< T > | get_op (void) const |
| scatter_impl::scatter_filter< T > | get_filter (void) const |
| void | set_position (std::size_t, bool is_downedge) |
| template<typename V > | |
| result_type | operator() (V &&v) const |
| bool | operator== (scatter_filter const &other) const |
Public Types | |
| using | skeleton_tag_type = tags::scatter< Tag > |
| using | base_type = decltype(skeletons::reverse_binary_tree< false, Tag, stapl::use_default, Span, false, true >(scatter_impl::scatter_op< T >(), scatter_impl::scatter_filter< T >())) |
| using | result_type = std::vector< T > |
This class abstracts the semantics of a scatter skeleton by exposing only the necessary information in its representation. A scatter skeleton is simply a reverse binary tree with an operation which splits the input into two halves.
This abstraction not only makes the reconstruction of a scatter skeleton easier, but also provides access to the underlying operation of a broadcast skeleton. Furthermore, it reduces the symbol size for a scatter skeleton, hence, reducing the total compilation time.
| T | the type of elements to be scattered |
| Span | the iteration space for elements to be scattered |
| Tag | determines the type of scatter |
1.8.13