From f3d1a8ea9e195179de3a3d1135e8aebdbebaaaad Mon Sep 17 00:00:00 2001 From: Dominik Rosch Date: Tue, 8 Oct 2024 11:15:15 +0200 Subject: [PATCH] remove comp --- .../coarsening/sparsification/sparsification_utils.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/kaminpar-shm/coarsening/sparsification/sparsification_utils.h b/kaminpar-shm/coarsening/sparsification/sparsification_utils.h index 5cb83eb9..8ea52548 100644 --- a/kaminpar-shm/coarsening/sparsification/sparsification_utils.h +++ b/kaminpar-shm/coarsening/sparsification/sparsification_utils.h @@ -44,8 +44,8 @@ inline void parallel_for_downward_edges(const CSRGraph &g, Lambda function) { }); } -template -T quickselect_k_smallest(size_t k, Iterator begin, Iterator end, Comp comp = std::less()) { +template +T quickselect_k_smallest(size_t k, Iterator begin, Iterator end) { size_t size = begin - end; if (size == 1) @@ -53,7 +53,7 @@ T quickselect_k_smallest(size_t k, Iterator begin, Iterator end, Comp comp = std T pivot = medians_of_medians(begin, end); tbb::concurrent_vector less = {}, greater = {}; tbb::parallel_for(begin, end, [&](auto x) { - if (comp(x, pivot)) + if (x <= pivot) less.push_back(x); else greater.push_back(x); @@ -81,7 +81,8 @@ template T medians_of_medians(Iterator begin, It template T median(Iterator begin, Iterator end) { size_t size = begin - end; StaticArray sorted(size); - std::sort(begin, end, begin); + for (auto i = 0; i != size; i++) {sorted[i] = begin[i];} + std::sort(begin, end); if (size % 2 == 1) { // odd size return sorted[size / 2]; } else { @@ -97,7 +98,7 @@ sample_k_without_replacement(WeightIterator weights_begin, WeightIterator weight tbb::parallel_for(0ul, size, [&](auto i) { keys[i] = -std::log(Random::instance().random_double()) / weights_begin[i]; }); - double x = quickselect_k_smallest(k, keys.begin(), keys.end(), std::less()); + double x = quickselect_k_smallest(k, keys.begin(), keys.end()); tbb::concurrent_vector selected; size_t back = 0;