/srv/osrm/osrm-backend/include/partitioner
NameSizeModeActions
bisection_graph.hpp44810644editdlrm
bisection_graph_view.hpp23970644editdlrm
bisection_to_partition.hpp6190644editdlrm
cell_statistics.hpp18050644editdlrm
cell_storage.hpp196480644editdlrm
dinic_max_flow.hpp37450644editdlrm
edge_based_graph.hpp16050644editdlrm
edge_based_graph_reader.hpp75160644editdlrm
files.hpp35960644editdlrm
inertial_flow.hpp5840644editdlrm
multi_level_graph.hpp97620644editdlrm
multi_level_partition.hpp131650644editdlrm
partitioner.hpp3650644editdlrm
partitioner_config.hpp13150644editdlrm
partition_graph.hpp56780644editdlrm
recursive_bisection.hpp9520644editdlrm
recursive_bisection_state.hpp18700644editdlrm
remove_unconnected.hpp39740644editdlrm
renumber.hpp31080644editdlrm
reorder_first_last.hpp17830644editdlrm
serialization.hpp26720644editdlrm
tarjan_graph_wrapper.hpp6480644editdlrm
Edit: /srv/osrm/osrm-backend/include/partitioner/recursive_bisection_state.hpp (1870B)
#ifndef OSRM_PARTITIONER_RECURSIVE_BISECTION_STATE_HPP_ #define OSRM_PARTITIONER_RECURSIVE_BISECTION_STATE_HPP_ #include #include #include #include "partitioner/bisection_graph.hpp" #include "partitioner/bisection_graph_view.hpp" #include "util/typedefs.hpp" namespace osrm::partitioner { // Keeps track of the bisection ids, modifies the graph accordingly, splitting it into a left/right // section with consecutively labelled nodes. Requires a GraphView to look at. class RecursiveBisectionState { public: // The ID in the partition array using NodeIterator = BisectionGraph::ConstNodeIterator; RecursiveBisectionState(BisectionGraph &bisection_graph); ~RecursiveBisectionState(); BisectionID GetBisectionID(const NodeID node) const; // Bisects the node id array's sub-range based on the partition mask. // Returns: partition point of the bisection: iterator to the second group's first element. NodeIterator ApplyBisection(NodeIterator begin, const NodeIterator end, const std::size_t depth, const std::vector &partition); // perform an initial pre-partitioning into small components // on larger graphs, SCCs give perfect cuts (think Amerika vs Europe) // This function performs an initial pre-partitioning using these sccs. std::vector PrePartitionWithSCC(const std::size_t small_component_size); const std::vector &BisectionIDs() const; // return the depth encoded in the SCCs std::uint32_t SCCDepth() const; private: std::uint32_t scc_levels; BisectionGraph &bisection_graph; std::vector bisection_ids; }; } // namespace osrm::partitioner #endif // OSRM_PARTITIONER_RECURSIVE_BISECTION_STATE_HPP_