This class abstracts the semantics of a k-ary tree by exposing only the necessary information in its representation. More...
Public Member Functions | |
tree (PD const &pd) | |
auto | get_op (void) const -> decltype(std::declval< base_type >().nested_skeleton().nested_skeleton().get_op()) |
std::size_t | operator() (std::size_t a) |
Public Types | |
using | skeleton_tag_type = tags::tree< Arity > |
using | base_type = decltype(skeletons::repeat< Flows >(skeletons::elem< Span >(std::declval< PD >()), log_lazysize< Arity >())) |
This class abstracts the semantics of a k-ary tree by exposing only the necessary information in its representation.
A k-ary tree reduces in size by k as the levels are increased.
This abstraction not only makes the reconstruction of a a k-ary skeleton easier, but also reduces the symbol size for a k-ary tree skeleton, hence, reducing the total compilation time.
PD | the underlying parametric dependency used in each level of the tree. |
Arity | the arity of the tree. |
Flows | the flow between the levels of the k-ary tree. |
Span | the iteration space for the elements in each level. |