|
YOrch 1.0.0
|
Static plan compiled from a task_tree_builder.
More...
#include <compiled_plan.hpp>
Public Types | |
| using | tuple_type = std::tuple< Nodes... > |
| template<std::size_t I> | |
| using | node_type = std::tuple_element_t< I, tuple_type > |
| template<std::size_t I> | |
| using | task_type = typename node_type< I >::task_type |
| template<std::size_t I> | |
| using | fanout_policy_type = typename node_type< I >::fanout_policy_type |
| template<std::size_t I> | |
| using | raw_result_type = detail::task_raw_result_t< task_type< I > > |
| template<std::size_t I> | |
| using | output_type = detail::task_output_for_t< task_type< I > > |
Public Member Functions | |
| template<std::size_t I> | |
| constexpr auto & | entry () &noexcept |
| template<std::size_t I> | |
| constexpr const auto & | entry () const &noexcept |
| template<std::size_t I> | |
| constexpr auto && | entry () &&noexcept |
Public Attributes | |
| tuple_type | nodes {} |
| Stored plan nodes in insertion order. | |
Static Public Attributes | |
| static constexpr std::size_t | node_count = sizeof...(Nodes) |
| static constexpr std::size_t | max_level = detail::max_level_v<Nodes...> |
| static constexpr std::size_t | no_parent = node_count |
| static constexpr std::size_t | slot_count = node_count |
| static constexpr auto | levels = detail::compiled_levels_v<Nodes...> |
| Node levels in insertion order. | |
| static constexpr auto | parent_indices = detail::compiled_parent_indices_v<Nodes...> |
Direct parent index for each node; the root stores no_parent. | |
| static constexpr auto | child_counts = detail::compiled_child_layout_v<Nodes...>.counts |
| Number of direct children for each node. | |
| static constexpr auto | child_offsets = detail::compiled_child_layout_v<Nodes...>.offsets |
Start offset of each node's child list inside child_indices. | |
| static constexpr auto | child_indices = detail::compiled_child_layout_v<Nodes...>.indices |
| Flattened direct-child adjacency storage. | |
| static constexpr auto | slot_indices = detail::compiled_slot_indices_v<Nodes...> |
| Logical output slot assigned to each node by now. | |
| template<std::size_t I> | |
| static constexpr detail::output_storage_mode | output_storage_mode_for |
| template<std::size_t I> | |
| static constexpr detail::slot_logical_policy | slot_logical_policy_for |
| template<std::size_t I> | |
| static constexpr std::size_t | level = levels[I] |
| template<std::size_t I> | |
| static constexpr std::size_t | parent_index = parent_indices[I] |
| template<std::size_t I> | |
| static constexpr std::size_t | child_count = child_counts[I] |
| template<std::size_t I> | |
| static constexpr std::size_t | child_offset = child_offsets[I] |
| template<std::size_t I> | |
| static constexpr std::size_t | slot_index = slot_indices[I] |
| template<std::size_t I, std::size_t ChildOrdinal> | |
| static constexpr std::size_t | child_index |
Static plan compiled from a task_tree_builder.
The compiled plan keeps the original node tuple while materializing the tree's structural metadata into constexpr arrays that later executors can consume directly.
| Nodes | Recorded task-tree node types in insertion order. |
Definition at line 25 of file compiled_plan.hpp.
| using yorch::compiled_plan< Nodes >::fanout_policy_type = typename node_type<I>::fanout_policy_type |
Definition at line 56 of file compiled_plan.hpp.
| using yorch::compiled_plan< Nodes >::node_type = std::tuple_element_t<I, tuple_type> |
Definition at line 50 of file compiled_plan.hpp.
| using yorch::compiled_plan< Nodes >::output_type = detail::task_output_for_t<task_type<I> > |
Definition at line 62 of file compiled_plan.hpp.
| using yorch::compiled_plan< Nodes >::raw_result_type = detail::task_raw_result_t<task_type<I> > |
Definition at line 59 of file compiled_plan.hpp.
| using yorch::compiled_plan< Nodes >::task_type = typename node_type<I>::task_type |
Definition at line 53 of file compiled_plan.hpp.
| using yorch::compiled_plan< Nodes >::tuple_type = std::tuple<Nodes...> |
Definition at line 26 of file compiled_plan.hpp.
|
inlineconstexprnoexcept |
Definition at line 102 of file compiled_plan.hpp.
|
inlineconstexprnoexcept |
Definition at line 92 of file compiled_plan.hpp.
|
inlineconstexprnoexcept |
Definition at line 97 of file compiled_plan.hpp.
|
staticconstexpr |
Definition at line 79 of file compiled_plan.hpp.
|
staticconstexpr |
Number of direct children for each node.
Definition at line 41 of file compiled_plan.hpp.
|
staticconstexpr |
Definition at line 88 of file compiled_plan.hpp.
|
staticconstexpr |
Flattened direct-child adjacency storage.
Definition at line 45 of file compiled_plan.hpp.
|
staticconstexpr |
Definition at line 82 of file compiled_plan.hpp.
|
staticconstexpr |
Start offset of each node's child list inside child_indices.
Definition at line 43 of file compiled_plan.hpp.
|
staticconstexpr |
Definition at line 73 of file compiled_plan.hpp.
|
staticconstexpr |
Node levels in insertion order.
Definition at line 37 of file compiled_plan.hpp.
|
staticconstexpr |
Definition at line 29 of file compiled_plan.hpp.
|
staticconstexpr |
Definition at line 30 of file compiled_plan.hpp.
|
staticconstexpr |
Definition at line 28 of file compiled_plan.hpp.
| tuple_type yorch::compiled_plan< Nodes >::nodes {} |
Stored plan nodes in insertion order.
Definition at line 34 of file compiled_plan.hpp.
|
staticconstexpr |
Definition at line 65 of file compiled_plan.hpp.
|
staticconstexpr |
Definition at line 76 of file compiled_plan.hpp.
|
staticconstexpr |
Direct parent index for each node; the root stores no_parent.
Definition at line 39 of file compiled_plan.hpp.
|
staticconstexpr |
Definition at line 31 of file compiled_plan.hpp.
|
staticconstexpr |
Definition at line 85 of file compiled_plan.hpp.
|
staticconstexpr |
Logical output slot assigned to each node by now.
Definition at line 47 of file compiled_plan.hpp.
|
staticconstexpr |
Definition at line 69 of file compiled_plan.hpp.