|
Sequoia
|
Public Types | |
| using | node_weight_type = NodeWeight |
Public Types inherited from sequoia::maths::graph_primitive< Connectivity, Nodes > | |
| using | connectivity_type = Connectivity |
| using | nodes_type = Nodes |
| using | edge_init_type = typename Connectivity::edge_init_type |
| using | edge_index_type = typename Connectivity::edge_index_type |
| using | size_type = std::common_type_t< typename Connectivity::size_type, typename Nodes::size_type > |
| using | pseudo_iterator = graph_impl::pseudo_iterator< Connectivity, Nodes > |
| using | edges_initializer = std::initializer_list< std::initializer_list< edge_init_type > > |
Public Member Functions | |
| constexpr void | swap_nodes (edge_index_type i, edge_index_type j) |
Public Member Functions inherited from sequoia::maths::graph_primitive< Connectivity, Nodes > | |
| constexpr | graph_primitive (edges_initializer edges) |
| constexpr | graph_primitive (edges_initializer edges) |
| constexpr | graph_primitive (edges_initializer edges, std::initializer_list< node_weight_type > nodeWeights) |
|
template<class... NodeWeights> requires heterogeneous_nodes<graph_primitive> | |
| constexpr | graph_primitive (edges_initializer edges, NodeWeights &&... nodeWeights) |
|
template<tree_link_direction dir> requires ( !heterogeneous_nodes<graph_primitive> && ((dir == tree_link_direction::symmetric) || is_directed(Connectivity::flavour))) | |
| constexpr | graph_primitive (std::initializer_list< tree_initializer< node_weight_type > > forest, tree_link_direction_constant< dir > tdc) |
|
template<tree_link_direction dir> requires ( !heterogeneous_nodes<graph_primitive> && ((dir == tree_link_direction::symmetric) || is_directed(Connectivity::flavour))) | |
| constexpr | graph_primitive (tree_initializer< node_weight_type > tree, tree_link_direction_constant< dir > tdc) |
| constexpr | graph_primitive (const graph_primitive &)=default |
| constexpr size_type | size () const noexcept |
| constexpr void | swap_nodes (edge_index_type i, edge_index_type j) |
| template<class Compare > | |
| constexpr void | sort_nodes (Compare c) |
| template<class Compare > | |
| constexpr void | sort_nodes (const edge_index_type first, const edge_index_type last, Compare c) |
Static Public Member Functions | |
| static constexpr std::size_t | order () noexcept |
| static constexpr std::size_t | size () noexcept |
Static Public Attributes | |
| static constexpr graph_flavour | flavour {graph_flavour::directed} |
Additional Inherited Members | |
Protected Member Functions inherited from sequoia::maths::graph_primitive< Connectivity, Nodes > | |
|
template<alloc EdgeAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
| constexpr | graph_primitive (const EdgeAllocator &edgeAlloc, const NodeAllocator &nodeAlloc) |
|
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator, alloc NodeAllocator> requires (enableNodeAllocation<node_weight_type>) | |
| constexpr | graph_primitive (const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc, const NodeAllocator &nodeAlloc) |
|
template<alloc EdgeAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
| constexpr | graph_primitive (const EdgeAllocator &edgeAlloc) |
|
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
| constexpr | graph_primitive (const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc) |
|
template<alloc EdgeAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
| constexpr | graph_primitive (edges_initializer edges, const EdgeAllocator &edgeAlloc, std::initializer_list< node_weight_type > nodeWeights, const NodeAllocator &nodeAlloc) |
|
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
| constexpr | graph_primitive (edges_initializer edges, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc, std::initializer_list< node_weight_type > nodeWeights, const NodeAllocator &nodeAlloc) |
|
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator, class... NodeWeights> requires heterogeneous_nodes<graph_primitive> | |
| constexpr | graph_primitive (edges_initializer edges, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc, NodeWeights &&... nodeWeights) |
|
template<alloc EdgeAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
| constexpr | graph_primitive (edges_initializer edges, const EdgeAllocator &edgeAlloc, const NodeAllocator &nodeAlloc) |
|
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
| constexpr | graph_primitive (edges_initializer edges, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc, const NodeAllocator &nodeAlloc) |
|
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
| constexpr | graph_primitive (edges_initializer edges, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc) |
|
template<alloc EdgeAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
| constexpr | graph_primitive (edges_initializer edges, const EdgeAllocator &edgeAlloc) |
|
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
| constexpr | graph_primitive (const graph_primitive &in, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc, const NodeAllocator &nodeAlloc) |
|
template<alloc EdgeAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
| constexpr | graph_primitive (const graph_primitive &in, const EdgeAllocator &edgeAlloc, const NodeAllocator &nodeAlloc) |
|
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
| constexpr | graph_primitive (const graph_primitive &in, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc) |
|
template<alloc EdgeAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
| constexpr | graph_primitive (const graph_primitive &in, const EdgeAllocator &edgeAlloc) |
| constexpr | graph_primitive (graph_primitive &&) noexcept=default |
|
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
| constexpr | graph_primitive (graph_primitive &&in, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc, const NodeAllocator &nodeAlloc) |
|
template<alloc EdgeAllocator, alloc NodeAllocator> requires enableNodeAllocation<node_weight_type> | |
| constexpr | graph_primitive (graph_primitive &&in, const EdgeAllocator &edgeAlloc, const NodeAllocator &nodeAlloc) |
|
template<alloc EdgeAllocator, alloc EdgePartitionsAllocator, alloc NodeAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
| constexpr | graph_primitive (graph_primitive &&in, const EdgeAllocator &edgeAlloc, const EdgePartitionsAllocator &edgeParitionsAlloc) |
|
template<alloc EdgeAllocator, alloc NodeAllocator> requires (!enableNodeAllocation<node_weight_type>) | |
| constexpr | graph_primitive (graph_primitive &&in, const EdgeAllocator &edgeAlloc) |
| constexpr graph_primitive & | operator= (graph_primitive &&) noexcept=default |
| constexpr graph_primitive & | operator= (const graph_primitive &)=default |
| void | swap (graph_primitive &rhs) noexcept(noexcept(this->Connectivity::swap(rhs)) &&noexcept(this->Nodes::swap(rhs))) |
| void | reserve_nodes (const size_type size) |
| size_type | node_capacity () const noexcept |
| void | shrink_to_fit () |
| template<class... Args> | |
| size_type | add_node (Args &&... args) |
| template<class... Args> | |
| size_type | insert_node (const size_type pos, Args &&... args) |
| void | erase_node (const size_type node) |
| void | clear () noexcept |
| template<tree_link_direction dir, class... Args> | |
| size_type | insert_node_to_tree (tree_link_direction_constant< dir >, size_type pos, size_type parent, Args &&... args) |
| template<tree_link_direction dir, class... Args> | |
| size_type | add_node_to_tree (tree_link_direction_constant< dir > tldc, size_type parent, Args &&... args) |
Static Protected Attributes inherited from sequoia::maths::graph_primitive< Connectivity, Nodes > | |
| template<class N > | |
| static constexpr bool | enableNodeAllocation {!heterogeneous_nodes<graph_primitive> && !std::is_empty_v<N>} |