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 |