Sequoia
Loading...
Searching...
No Matches
Functions
GraphTraversalFunctions.hpp File Reference

Breadth first, depth first and priority searches. More...

#include "sequoia/Maths/Graph/GraphTraversalDetails.hpp"
#include "sequoia/Maths/Graph/DynamicGraphTraversalDetails.hpp"
#include "sequoia/Maths/Graph/StaticGraphTraversalDetails.hpp"
#include "sequoia/Core/Concurrency/ConcurrencyModels.hpp"

Go to the source code of this file.

Functions

template<class TaskProcessingModel = concurrency::serial<void>, traversal_flavour F, network G, disconnected_discovery_mode Mode, class NBEF = null_func_obj, class NAEF = null_func_obj, class EFTF = null_func_obj, class ESTF = null_func_obj>
requires (!is_directed(G::flavour)) && (std::invocable<NBEF, typename G::edge_index_type>) && (std::invocable<NAEF, typename G::edge_index_type>) && (std::invocable<EFTF, typename G::const_edge_iterator>) && (std::invocable<ESTF, typename G::const_edge_iterator>)
constexpr auto sequoia::maths::traverse (traversal_constant< F > tc, const G &graph, const traversal_conditions< Mode > conditions, NBEF &&nodeBeforeEdgesFn={}, NAEF &&nodeAfterEdgesFn={}, EFTF &&edgeFirstTraversalFn={}, ESTF &&edgeSecondTraversalFn={}, TaskProcessingModel &&taskProcessingModel={})
 
template<class TaskProcessingModel = concurrency::serial<void>, traversal_flavour F, network G, disconnected_discovery_mode Mode, class NBEF = null_func_obj, class NAEF = null_func_obj, class EFTF = null_func_obj>
requires (is_directed(G::flavour)) && (std::invocable<NBEF, typename G::edge_index_type>) && (std::invocable<NAEF, typename G::edge_index_type>) && (std::invocable<EFTF, typename G::const_edge_iterator>)
constexpr auto sequoia::maths::traverse (traversal_constant< F > tc, const G &graph, const traversal_conditions< Mode > conditions, NBEF &&nodeBeforeEdgesFn={}, NAEF &&nodeAfterEdgesFn={}, EFTF &&edgeFirstTraversalFn={}, TaskProcessingModel &&taskProcessingModel={})
 
template<class TaskProcessingModel = concurrency::serial<void>, network G, disconnected_discovery_mode Mode, class NBEF = null_func_obj, class NAEF = null_func_obj, class ETUN = null_func_obj>
requires (std::invocable<NBEF, typename G::edge_index_type>) && (std::invocable<NAEF, typename G::edge_index_type>) && (std::invocable<ETUN, typename G::const_edge_iterator>)
constexpr auto sequoia::maths::traverse (depth_first_search_type, const G &graph, const traversal_conditions< Mode > conditions, NBEF &&nodeBeforeEdgesFn={}, NAEF &&nodeAfterEdgesFn={}, ETUN &&edgeToUndiscoveredNodeFn={}, TaskProcessingModel &&taskProcessingModel={})
 
template<class TaskProcessingModel = concurrency::serial<void>, network G, disconnected_discovery_mode Mode, class NBEF = null_func_obj, class NAEF = null_func_obj, class EFTF = null_func_obj, class ESTF = null_func_obj, class QCompare = graph_impl::node_comparer<G, std::ranges::less>>
requires (!is_directed(G::flavour)) && (std::invocable<NBEF, typename G::edge_index_type>) && (std::invocable<NAEF, typename G::edge_index_type>) && (std::invocable<EFTF, typename G::const_edge_iterator>) && (std::invocable<ESTF, typename G::const_edge_iterator>)
constexpr auto sequoia::maths::traverse (priority_first_search_type, const G &graph, const traversal_conditions< Mode > conditions, NBEF &&nodeBeforeEdgesFn={}, NAEF &&nodeAfterEdgesFn={}, EFTF &&edgeFirstTraversalFn={}, ESTF &&edgeSecondTraversalFn={}, TaskProcessingModel &&taskProcessingModel={})
 
template<class TaskProcessingModel = concurrency::serial<void>, network G, disconnected_discovery_mode Mode, class NBEF = null_func_obj, class NAEF = null_func_obj, class EFTF = null_func_obj, class QCompare = graph_impl::node_comparer<G, std::ranges::less>>
requires (is_directed(G::flavour)) && (std::invocable<NBEF, typename G::edge_index_type>) && (std::invocable<NAEF, typename G::edge_index_type>) && (std::invocable<EFTF, typename G::const_edge_iterator>)
constexpr auto sequoia::maths::traverse (priority_first_search_type, const G &graph, const traversal_conditions< Mode > conditions, NBEF &&nodeBeforeEdgesFn={}, NAEF &&nodeAfterEdgesFn={}, EFTF &&edgeFirstTraversalFn={}, TaskProcessingModel &&taskProcessingModel={})
 

Detailed Description

Breadth first, depth first and priority searches.