From fcb7dd2a214367dee74fac80f0327dbd31eba372 Mon Sep 17 00:00:00 2001 From: xlaussel Date: Wed, 25 Nov 2020 12:42:01 +0100 Subject: [PATCH] format code --- .../routing_algorithms/routing_base_ch.hpp | 8 +- .../routing_algorithms/routing_base_mld.hpp | 19 ++-- include/util/query_heap.hpp | 31 ++++--- src/contractor/contractor_search.cpp | 10 +-- .../alternative_path_ch.cpp | 15 ++-- .../routing_algorithms/many_to_many_ch.cpp | 37 ++++---- .../routing_algorithms/many_to_many_mld.cpp | 88 ++++++++++--------- 7 files changed, 110 insertions(+), 98 deletions(-) diff --git a/include/engine/routing_algorithms/routing_base_ch.hpp b/include/engine/routing_algorithms/routing_base_ch.hpp index b9f131671..863d29cf3 100644 --- a/include/engine/routing_algorithms/routing_base_ch.hpp +++ b/include/engine/routing_algorithms/routing_base_ch.hpp @@ -24,7 +24,7 @@ namespace ch // Stalling template bool stallAtNode(const DataFacade &facade, - const typename HeapT::HeapNode& heapNode, + const typename HeapT::HeapNode &heapNode, const HeapT &query_heap) { for (auto edge : facade.GetAdjacentEdgeRange(heapNode.node)) @@ -35,7 +35,7 @@ bool stallAtNode(const DataFacade &facade, const NodeID to = facade.GetTarget(edge); const EdgeWeight edge_weight = data.weight; BOOST_ASSERT_MSG(edge_weight > 0, "edge_weight invalid"); - const auto toHeapNode= query_heap.GetHeapNodeIfWasInserted(to); + const auto toHeapNode = query_heap.GetHeapNodeIfWasInserted(to); if (toHeapNode) { if (toHeapNode->weight + edge_weight < heapNode.weight) @@ -50,7 +50,7 @@ bool stallAtNode(const DataFacade &facade, template void relaxOutgoingEdges(const DataFacade &facade, - const SearchEngineData::QueryHeap::HeapNode& heapNode, + const SearchEngineData::QueryHeap::HeapNode &heapNode, SearchEngineData::QueryHeap &heap) { for (const auto edge : facade.GetAdjacentEdgeRange(heapNode.node)) @@ -75,7 +75,7 @@ void relaxOutgoingEdges(const DataFacade &facade, { // new parent toHeapNode->data.parent = heapNode.node; - toHeapNode->weight=to_weight; + toHeapNode->weight = to_weight; heap.DecreaseKey(*toHeapNode); } } diff --git a/include/engine/routing_algorithms/routing_base_mld.hpp b/include/engine/routing_algorithms/routing_base_mld.hpp index d4d8f3d0c..55f366574 100644 --- a/include/engine/routing_algorithms/routing_base_mld.hpp +++ b/include/engine/routing_algorithms/routing_base_mld.hpp @@ -97,7 +97,6 @@ inline LevelID getNodeQueryLevel(const MultiLevelPartition &partition, const std::vector &phantom_indices) { auto min_level = [&partition, node](const PhantomNode &phantom_node) { - const auto &forward_segment = phantom_node.forward_segment_id; const auto forward_level = forward_segment.enabled ? partition.GetHighestDifferentLevel(node, forward_segment.id) @@ -120,7 +119,7 @@ inline LevelID getNodeQueryLevel(const MultiLevelPartition &partition, } return result; } -} +} // namespace // Heaps only record for each node its predecessor ("parent") on the shortest path. // For re-constructing the actual path we need to trace back all parent "pointers". @@ -229,7 +228,7 @@ retrievePackedPathFromHeap(const SearchEngineData::QueryHeap &forward template void relaxOutgoingEdges(const DataFacade &facade, typename SearchEngineData::QueryHeap &forward_heap, - const typename SearchEngineData::QueryHeap::HeapNode& heapNode, + const typename SearchEngineData::QueryHeap::HeapNode &heapNode, Args... args) { const auto &partition = facade.GetMultiLevelPartition(); @@ -243,7 +242,8 @@ void relaxOutgoingEdges(const DataFacade &facade, if (DIRECTION == FORWARD_DIRECTION) { // Shortcuts in forward direction - const auto &cell = cells.GetCell(metric, level, partition.GetCell(level, heapNode.node)); + const auto &cell = + cells.GetCell(metric, level, partition.GetCell(level, heapNode.node)); auto destination = cell.GetDestinationNodes().begin(); for (auto shortcut_weight : cell.GetOutWeight(heapNode.node)) { @@ -262,7 +262,7 @@ void relaxOutgoingEdges(const DataFacade &facade, else if (to_weight < toHeapNode->weight) { toHeapNode->data = {heapNode.node, true}; - toHeapNode->weight=to_weight; + toHeapNode->weight = to_weight; forward_heap.DecreaseKey(*toHeapNode); } } @@ -272,7 +272,8 @@ void relaxOutgoingEdges(const DataFacade &facade, else { // Shortcuts in backward direction - const auto &cell = cells.GetCell(metric, level, partition.GetCell(level, heapNode.node)); + const auto &cell = + cells.GetCell(metric, level, partition.GetCell(level, heapNode.node)); auto source = cell.GetSourceNodes().begin(); for (auto shortcut_weight : cell.GetInWeight(heapNode.node)) { @@ -291,7 +292,7 @@ void relaxOutgoingEdges(const DataFacade &facade, else if (to_weight < toHeapNode->weight) { toHeapNode->data = {heapNode.node, true}; - toHeapNode->weight=to_weight; + toHeapNode->weight = to_weight; forward_heap.DecreaseKey(*toHeapNode); } } @@ -328,8 +329,8 @@ void relaxOutgoingEdges(const DataFacade &facade, } else if (to_weight < toHeapNode->weight) { - toHeapNode->data = {heapNode.node, false}; - toHeapNode->weight=to_weight; + toHeapNode->data = {heapNode.node, false}; + toHeapNode->weight = to_weight; forward_heap.DecreaseKey(*toHeapNode); } } diff --git a/include/util/query_heap.hpp b/include/util/query_heap.hpp index 33e12f3da..dc8a2ee53 100644 --- a/include/util/query_heap.hpp +++ b/include/util/query_heap.hpp @@ -2,8 +2,8 @@ #define OSRM_UTIL_QUERY_HEAP_HPP #include -#include #include +#include #include #include @@ -196,12 +196,11 @@ template ; using HeapContainer = boost::heap::d_ary_heap, - boost::heap::mutable_, - boost::heap::compare>>; + boost::heap::arity<4>, + boost::heap::mutable_, + boost::heap::compare>>; using HeapHandle = typename HeapContainer::handle_type; public: @@ -248,7 +247,7 @@ class QueryHeap return inserted_nodes[index].data; } - HeapNode& getHeapNode(NodeID node) + HeapNode &getHeapNode(NodeID node) { const auto index = node_index.peek_index(node); BOOST_ASSERT((int)index >= 0 && (int)index < (int)inserted_nodes.size()); @@ -294,28 +293,28 @@ class QueryHeap return inserted_nodes[index].node == node; } - boost::optional GetHeapNodeIfWasInserted(const NodeID node) + boost::optional GetHeapNodeIfWasInserted(const NodeID node) { const auto index = node_index.peek_index(node); - if (index >= static_cast(inserted_nodes.size()) || inserted_nodes[index].node!=node) + if (index >= static_cast(inserted_nodes.size()) || + inserted_nodes[index].node != node) { return {}; } return inserted_nodes[index]; } - boost::optional GetHeapNodeIfWasInserted(const NodeID node) const + boost::optional GetHeapNodeIfWasInserted(const NodeID node) const { const auto index = node_index.peek_index(node); - if (index >= static_cast(inserted_nodes.size()) || inserted_nodes[index].node!=node) + if (index >= static_cast(inserted_nodes.size()) || + inserted_nodes[index].node != node) { return {}; } return inserted_nodes[index]; } - - NodeID Min() const { BOOST_ASSERT(!heap.empty()); @@ -337,7 +336,7 @@ class QueryHeap return inserted_nodes[removedIndex].node; } - HeapNode& DeleteMinGetHeapNode() + HeapNode &DeleteMinGetHeapNode() { BOOST_ASSERT(!heap.empty()); const Key removedIndex = heap.top().second; @@ -364,7 +363,7 @@ class QueryHeap heap.increase(reference.handle, std::make_pair(weight, index)); } - void DecreaseKey(const HeapNode& heapNode) + void DecreaseKey(const HeapNode &heapNode) { BOOST_ASSERT(!WasRemoved(heapNode.node)); heap.increase(heapNode.handle, std::make_pair(heapNode.weight, (*heapNode.handle).second)); @@ -375,7 +374,7 @@ class QueryHeap HeapContainer heap; IndexStorage node_index; }; -} -} +} // namespace util +} // namespace osrm #endif // OSRM_UTIL_QUERY_HEAP_HPP diff --git a/src/contractor/contractor_search.cpp b/src/contractor/contractor_search.cpp index a5441f806..f9e336c8e 100644 --- a/src/contractor/contractor_search.cpp +++ b/src/contractor/contractor_search.cpp @@ -32,7 +32,7 @@ void relaxNode(ContractorHeap &heap, } const EdgeWeight to_weight = node_weight + data.weight; - const auto toHeapNode= heap.GetHeapNodeIfWasInserted(to); + const auto toHeapNode = heap.GetHeapNodeIfWasInserted(to); // New Node discovered -> Add to Heap + Node Info Storage if (!toHeapNode) { @@ -41,13 +41,13 @@ void relaxNode(ContractorHeap &heap, // Found a shorter Path -> Update weight else if (to_weight < toHeapNode->weight) { - toHeapNode->weight=to_weight; + toHeapNode->weight = to_weight; heap.DecreaseKey(*toHeapNode); toHeapNode->data.hop = current_hop; } } } -} +} // namespace void search(ContractorHeap &heap, const ContractorGraph &graph, @@ -85,5 +85,5 @@ void search(ContractorHeap &heap, relaxNode(heap, graph, node, node_weight, forbidden_node); } } -} -} +} // namespace contractor +} // namespace osrm diff --git a/src/engine/routing_algorithms/alternative_path_ch.cpp b/src/engine/routing_algorithms/alternative_path_ch.cpp index f71d68e04..00be0794d 100644 --- a/src/engine/routing_algorithms/alternative_path_ch.cpp +++ b/src/engine/routing_algorithms/alternative_path_ch.cpp @@ -62,8 +62,9 @@ void alternativeRoutingStep(const DataFacade &facade, QueryHeap &forward_heap = DIRECTION == FORWARD_DIRECTION ? heap1 : heap2; QueryHeap &reverse_heap = DIRECTION == FORWARD_DIRECTION ? heap2 : heap1; - // Take a copy (no ref &) of the extracted node because otherwise could be modified later if toHeapNode is the same - const auto heapNode=forward_heap.DeleteMinGetHeapNode(); + // Take a copy (no ref &) of the extracted node because otherwise could be modified later if + // toHeapNode is the same + const auto heapNode = forward_heap.DeleteMinGetHeapNode(); const auto scaled_weight = static_cast((heapNode.weight + min_edge_offset) / (1. + VIAPATH_EPSILON)); @@ -76,7 +77,7 @@ void alternativeRoutingStep(const DataFacade &facade, search_space.emplace_back(heapNode.data.parent, heapNode.node); - const auto reverseHeapNode= reverse_heap.GetHeapNodeIfWasInserted(heapNode.node); + const auto reverseHeapNode = reverse_heap.GetHeapNodeIfWasInserted(heapNode.node); if (reverseHeapNode) { search_space_intersection.emplace_back(heapNode.node); @@ -114,7 +115,7 @@ void alternativeRoutingStep(const DataFacade &facade, BOOST_ASSERT(edge_weight > 0); const EdgeWeight to_weight = heapNode.weight + edge_weight; - const auto toHeapNode= forward_heap.GetHeapNodeIfWasInserted(to); + const auto toHeapNode = forward_heap.GetHeapNodeIfWasInserted(to); // New Node discovered -> Add to Heap + Node Info Storage if (!toHeapNode) { @@ -126,7 +127,7 @@ void alternativeRoutingStep(const DataFacade &facade, // new parent toHeapNode->data.parent = heapNode.node; // decreased weight - toHeapNode->weight=to_weight; + toHeapNode->weight = to_weight; forward_heap.DecreaseKey(*toHeapNode); } } @@ -561,7 +562,7 @@ bool viaNodeCandidatePassesTTest(SearchEngineData &engine_working_dat } return (upper_bound <= t_test_path_weight); } -} // anon. namespace +} // namespace InternalManyRoutesResult alternativePathSearch(SearchEngineData &engine_working_data, const DataFacade &facade, @@ -856,4 +857,4 @@ InternalManyRoutesResult alternativePathSearch(SearchEngineData &engi } // namespace routing_algorithms } // namespace engine -} // namespace osrm} +} // namespace osrm diff --git a/src/engine/routing_algorithms/many_to_many_ch.cpp b/src/engine/routing_algorithms/many_to_many_ch.cpp index fba34981c..03ef4dc0a 100644 --- a/src/engine/routing_algorithms/many_to_many_ch.cpp +++ b/src/engine/routing_algorithms/many_to_many_ch.cpp @@ -45,10 +45,11 @@ inline bool addLoopWeight(const DataFacade &facade, } template -void relaxOutgoingEdges(const DataFacade &facade, - const typename SearchEngineData::ManyToManyQueryHeap::HeapNode& heapNode, - typename SearchEngineData::ManyToManyQueryHeap &query_heap, - const PhantomNode &) +void relaxOutgoingEdges( + const DataFacade &facade, + const typename SearchEngineData::ManyToManyQueryHeap::HeapNode &heapNode, + typename SearchEngineData::ManyToManyQueryHeap &query_heap, + const PhantomNode &) { if (stallAtNode(facade, heapNode, query_heap)) { @@ -71,7 +72,7 @@ void relaxOutgoingEdges(const DataFacade &facade, const auto to_duration = heapNode.data.duration + edge_duration; const auto to_distance = heapNode.data.distance + edge_distance; - const auto toHeapNode= query_heap.GetHeapNodeIfWasInserted(to); + const auto toHeapNode = query_heap.GetHeapNodeIfWasInserted(to); // New Node discovered -> Add to Heap + Node Info Storage if (!toHeapNode) { @@ -82,7 +83,7 @@ void relaxOutgoingEdges(const DataFacade &facade, std::tie(toHeapNode->weight, toHeapNode->data.duration)) { toHeapNode->data = {heapNode.node, to_duration, to_distance}; - toHeapNode->weight=to_weight; + toHeapNode->weight = to_weight; query_heap.DecreaseKey(*toHeapNode); } } @@ -100,8 +101,9 @@ void forwardRoutingStep(const DataFacade &facade, std::vector &middle_nodes_table, const PhantomNode &phantom_node) { - // Take a copy of the extracted node because otherwise could be modified later if toHeapNode is the same - const auto heapNode=query_heap.DeleteMinGetHeapNode(); + // Take a copy of the extracted node because otherwise could be modified later if toHeapNode is + // the same + const auto heapNode = query_heap.DeleteMinGetHeapNode(); // Check if each encountered node has an entry const auto &bucket_list = std::equal_range(search_space_with_buckets.begin(), @@ -149,8 +151,7 @@ void forwardRoutingStep(const DataFacade &facade, } } - relaxOutgoingEdges( - facade, heapNode, query_heap, phantom_node); + relaxOutgoingEdges(facade, heapNode, query_heap, phantom_node); } void backwardRoutingStep(const DataFacade &facade, @@ -159,15 +160,19 @@ void backwardRoutingStep(const DataFacade &facade, std::vector &search_space_with_buckets, const PhantomNode &phantom_node) { - // Take a copy (no ref &) of the extracted node because otherwise could be modified later if toHeapNode is the same - const auto heapNode=query_heap.DeleteMinGetHeapNode(); + // Take a copy (no ref &) of the extracted node because otherwise could be modified later if + // toHeapNode is the same + const auto heapNode = query_heap.DeleteMinGetHeapNode(); // Store settled nodes in search space bucket - search_space_with_buckets.emplace_back( - heapNode.node, heapNode.data.parent, column_index, heapNode.weight, heapNode.data.duration, heapNode.data.distance); + search_space_with_buckets.emplace_back(heapNode.node, + heapNode.data.parent, + column_index, + heapNode.weight, + heapNode.data.duration, + heapNode.data.distance); - relaxOutgoingEdges( - facade, heapNode, query_heap, phantom_node); + relaxOutgoingEdges(facade, heapNode, query_heap, phantom_node); } } // namespace ch diff --git a/src/engine/routing_algorithms/many_to_many_mld.cpp b/src/engine/routing_algorithms/many_to_many_mld.cpp index 292bc3d4b..5cc17fe70 100644 --- a/src/engine/routing_algorithms/many_to_many_mld.cpp +++ b/src/engine/routing_algorithms/many_to_many_mld.cpp @@ -71,7 +71,7 @@ void relaxBorderEdges(const DataFacade &facade, const auto to_distance = distance + node_distance; // New Node discovered -> Add to Heap + Node Info Storage - const auto toHeapNode= query_heap.GetHeapNodeIfWasInserted(to); + const auto toHeapNode = query_heap.GetHeapNodeIfWasInserted(to); if (!toHeapNode) { query_heap.Insert(to, to_weight, {node, false, to_duration, to_distance}); @@ -84,7 +84,7 @@ void relaxBorderEdges(const DataFacade &facade, toHeapNode->data.parent)) { toHeapNode->data = {node, false, to_duration, to_distance}; - toHeapNode->weight=to_weight; + toHeapNode->weight = to_weight; query_heap.DecreaseKey(*toHeapNode); } } @@ -92,10 +92,11 @@ void relaxBorderEdges(const DataFacade &facade, } template -void relaxOutgoingEdges(const DataFacade &facade, - const typename SearchEngineData::ManyToManyQueryHeap::HeapNode& heapNode, - typename SearchEngineData::ManyToManyQueryHeap &query_heap, - Args... args) +void relaxOutgoingEdges( + const DataFacade &facade, + const typename SearchEngineData::ManyToManyQueryHeap::HeapNode &heapNode, + typename SearchEngineData::ManyToManyQueryHeap &query_heap, + Args... args) { BOOST_ASSERT(!facade.ExcludeNode(node)); @@ -110,7 +111,6 @@ void relaxOutgoingEdges(const DataFacade &facade, const auto &cells = facade.GetCellStorage(); const auto &metric = facade.GetCellMetric(); - if (level >= 1 && !heapNode.data.from_clique_arc) { const auto &cell = cells.GetCell(metric, level, partition.GetCell(level, heapNode.node)); @@ -130,11 +130,12 @@ void relaxOutgoingEdges(const DataFacade &facade, { const auto to_weight = heapNode.weight + shortcut_weight; const auto to_duration = heapNode.data.duration + shortcut_durations.front(); - const auto to_distance = heapNode.data.distance + shortcut_distances.front(); - const auto toHeapNode= query_heap.GetHeapNodeIfWasInserted(to); + const auto to_distance = heapNode.data.distance + shortcut_distances.front(); + const auto toHeapNode = query_heap.GetHeapNodeIfWasInserted(to); if (!toHeapNode) { - query_heap.Insert(to, to_weight, {heapNode.node, true, to_duration, to_distance}); + query_heap.Insert( + to, to_weight, {heapNode.node, true, to_duration, to_distance}); } else if (std::tie(to_weight, to_duration, to_distance, heapNode.node) < std::tie(toHeapNode->weight, @@ -143,7 +144,7 @@ void relaxOutgoingEdges(const DataFacade &facade, toHeapNode->data.parent)) { toHeapNode->data = {heapNode.node, true, to_duration, to_distance}; - toHeapNode->weight=to_weight; + toHeapNode->weight = to_weight; query_heap.DecreaseKey(*toHeapNode); } } @@ -169,12 +170,13 @@ void relaxOutgoingEdges(const DataFacade &facade, if (shortcut_weight != INVALID_EDGE_WEIGHT && heapNode.node != to) { const auto to_weight = heapNode.weight + shortcut_weight; - const auto to_duration = heapNode.data.duration + shortcut_durations.front(); - const auto to_distance = heapNode.data.distance + shortcut_distances.front(); - const auto toHeapNode= query_heap.GetHeapNodeIfWasInserted(to); + const auto to_duration = heapNode.data.duration + shortcut_durations.front(); + const auto to_distance = heapNode.data.distance + shortcut_distances.front(); + const auto toHeapNode = query_heap.GetHeapNodeIfWasInserted(to); if (!toHeapNode) { - query_heap.Insert(to, to_weight, {heapNode.node, true, to_duration, to_distance}); + query_heap.Insert( + to, to_weight, {heapNode.node, true, to_duration, to_distance}); } else if (std::tie(to_weight, to_duration, to_distance, heapNode.node) < std::tie(toHeapNode->weight, @@ -183,7 +185,7 @@ void relaxOutgoingEdges(const DataFacade &facade, toHeapNode->data.parent)) { toHeapNode->data = {heapNode.node, true, to_duration, to_distance}; - toHeapNode->weight=to_weight; + toHeapNode->weight = to_weight; query_heap.DecreaseKey(*toHeapNode); } } @@ -196,7 +198,13 @@ void relaxOutgoingEdges(const DataFacade &facade, } } - relaxBorderEdges(facade, heapNode.node, heapNode.weight, heapNode.data.duration, heapNode.data.distance, query_heap, level); + relaxBorderEdges(facade, + heapNode.node, + heapNode.weight, + heapNode.data.duration, + heapNode.data.distance, + query_heap, + level); } // @@ -373,18 +381,15 @@ oneToManySearch(SearchEngineData &engine_working_data, { // Extract node from the heap. Take a copy (no ref) because otherwise can be modified later // if toHeapNode is the same - const auto heapNode=query_heap.DeleteMinGetHeapNode(); + const auto heapNode = query_heap.DeleteMinGetHeapNode(); // Update values - update_values(heapNode.node, heapNode.weight, heapNode.data.duration, heapNode.data.distance); + update_values( + heapNode.node, heapNode.weight, heapNode.data.duration, heapNode.data.distance); // Relax outgoing edges - relaxOutgoingEdges(facade, - heapNode, - query_heap, - phantom_nodes, - phantom_index, - phantom_indices); + relaxOutgoingEdges( + facade, heapNode, query_heap, phantom_nodes, phantom_index, phantom_indices); } return std::make_pair(durations, distances_table); @@ -406,8 +411,9 @@ void forwardRoutingStep(const DataFacade &facade, std::vector &middle_nodes_table, const PhantomNode &phantom_node) { - // Take a copy of the extracted node because otherwise could be modified later if toHeapNode is the same - const auto heapNode=query_heap.DeleteMinGetHeapNode(); + // Take a copy of the extracted node because otherwise could be modified later if toHeapNode is + // the same + const auto heapNode = query_heap.DeleteMinGetHeapNode(); // Check if each encountered node has an entry const auto &bucket_list = std::equal_range(search_space_with_buckets.begin(), @@ -439,9 +445,8 @@ void forwardRoutingStep(const DataFacade &facade, auto new_duration = heapNode.data.duration + target_duration; auto new_distance = heapNode.data.distance + target_distance; - if (new_weight >= 0 && - std::tie(new_weight, new_duration, new_distance) < - std::tie(current_weight, current_duration, current_distance)) + if (new_weight >= 0 && std::tie(new_weight, new_duration, new_distance) < + std::tie(current_weight, current_duration, current_distance)) { current_weight = new_weight; current_duration = new_duration; @@ -450,8 +455,7 @@ void forwardRoutingStep(const DataFacade &facade, } } - relaxOutgoingEdges( - facade, heapNode, query_heap, phantom_node); + relaxOutgoingEdges(facade, heapNode, query_heap, phantom_node); } template @@ -461,21 +465,23 @@ void backwardRoutingStep(const DataFacade &facade, std::vector &search_space_with_buckets, const PhantomNode &phantom_node) { - // Take a copy of the extracted node because otherwise could be modified later if toHeapNode is the same - const auto heapNode=query_heap.DeleteMinGetHeapNode(); + // Take a copy of the extracted node because otherwise could be modified later if toHeapNode is + // the same + const auto heapNode = query_heap.DeleteMinGetHeapNode(); // Store settled nodes in search space bucket - search_space_with_buckets.emplace_back( - heapNode.node, heapNode.data.parent, heapNode.data.from_clique_arc, column_idx, heapNode.weight, heapNode.data.duration, heapNode.data.distance); + search_space_with_buckets.emplace_back(heapNode.node, + heapNode.data.parent, + heapNode.data.from_clique_arc, + column_idx, + heapNode.weight, + heapNode.data.duration, + heapNode.data.distance); const auto &partition = facade.GetMultiLevelPartition(); const auto maximal_level = partition.GetNumberOfLevels() - 1; - relaxOutgoingEdges(facade, - heapNode, - query_heap, - phantom_node, - maximal_level); + relaxOutgoingEdges(facade, heapNode, query_heap, phantom_node, maximal_level); } template