This class abstracts the semantics of an expansion skeleton by exposing only the necessary information in its representation. More...
Public Member Functions | |
expand_from_pow_two (Op const &op, Filter const &filter) | |
Op | get_op (void) const |
Filter | get_filter (void) const |
Public Types | |
using | skeleton_tag_type = tags::expand_from_pow_two |
using | base_type = decltype(skeletons::elem< Span >(skeletons::expand_from_pow_two_pd< pos_aware, SetResult >(std::declval< Op >(), std::declval< Filter >()))) |
This class abstracts the semantics of an expansion skeleton by exposing only the necessary information in its representation.
An expansion skeleton is usually used along with a skeleton (S) that only handle inputs of power-of-two sizes and converts the produced output by skeleton to arbitrary sizes.
This abstraction not only makes the reconstruction of an expansion skeleton easier, but also provides access to the underlying operation and filter used in expanding the output. Furthermore, it reduces the symbol size for an expansion skeleton, hence, reducing the total compilation time.
Op | the operation to be used while expanding the input. |
Span | the iteration space for elements of the expansion skeleton |
pos_aware | whether the computation needs spatial information for its computation or not. |
Filter | the filter to be applied to expand the input. |