Make explicit fallback to CH heaps in CoreCH algorithms

This commit is contained in:
Michael Krasnyk
2017-04-11 21:22:07 +02:00
committed by Patrick Niklaus
parent 1de031ed06
commit e498ad3ee7
10 changed files with 52 additions and 41 deletions
@@ -221,10 +221,10 @@ namespace corech
// && source_phantom.GetForwardWeightPlusOffset() > target_phantom.GetForwardWeightPlusOffset())
// requires
// a force loop, if the heaps have been initialized with positive offsets.
void search(SearchEngineData<Algorithm> &engine_working_data,
void search(SearchEngineData<ch::Algorithm> &engine_working_data,
const datafacade::ContiguousInternalMemoryDataFacade<Algorithm> &facade,
SearchEngineData<Algorithm>::QueryHeap &forward_heap,
SearchEngineData<Algorithm>::QueryHeap &reverse_heap,
SearchEngineData<ch::Algorithm>::QueryHeap &forward_heap,
SearchEngineData<ch::Algorithm>::QueryHeap &reverse_heap,
EdgeWeight &weight,
std::vector<NodeID> &packed_leg,
const bool force_loop_forward,
@@ -289,8 +289,7 @@ void search(SearchEngineData<Algorithm> &engine_working_data,
}
}
const auto insertInCoreHeap = [](const CoreEntryPoint &p,
SearchEngineData<Algorithm>::QueryHeap &core_heap) {
const auto insertInCoreHeap = [](const CoreEntryPoint &p, auto &core_heap) {
NodeID id;
EdgeWeight weight;
NodeID parent;
@@ -402,7 +401,7 @@ void search(SearchEngineData<Algorithm> &engine_working_data,
// Requires the heaps for be empty
// If heaps should be adjusted to be initialized outside of this function,
// the addition of force_loop parameters might be required
double getNetworkDistance(SearchEngineData<Algorithm> &engine_working_data,
double getNetworkDistance(SearchEngineData<ch::Algorithm> &engine_working_data,
const datafacade::ContiguousInternalMemoryDataFacade<Algorithm> &facade,
SearchEngineData<ch::Algorithm>::QueryHeap &forward_heap,
SearchEngineData<ch::Algorithm>::QueryHeap &reverse_heap,