algorithms more cleanup

This commit is contained in:
Corentin Le Molgat
2024-02-15 11:43:44 +01:00
parent 9889686c9e
commit c64aba84f3
7 changed files with 13 additions and 12 deletions

View File

@@ -85,6 +85,7 @@ cc_test(
srcs = ["radix_sort_test.cc"],
deps = [
":radix_sort",
"//ortools/base:dump_vars",
"//ortools/base:mathutil",
"@com_google_absl//absl/algorithm:container",
"@com_google_absl//absl/log",
@@ -94,7 +95,6 @@ cc_test(
"@com_google_absl//absl/types:span",
"@com_google_benchmark//:benchmark",
"@com_google_googletest//:gtest_main",
"//ortools/base:dump_vars",
],
)

View File

@@ -146,8 +146,8 @@ void BM_AppendAndLazilyRemoveDuplicates(benchmark::State& state) {
}
}
if (!use_flat_hash_set) deduper.RemoveDuplicates(&v);
testing::DoNotOptimize(v);
testing::DoNotOptimize(set);
benchmark::DoNotOptimize(v);
benchmark::DoNotOptimize(set);
}
state.SetItemsProcessed(state.iterations() * num_inserts);
}

View File

@@ -18,6 +18,7 @@
#include <string>
#include <vector>
#include "absl/types/span.h"
#include "ortools/algorithms/sparse_permutation.h"
namespace operations_research {
@@ -27,8 +28,8 @@ DynamicPermutation::DynamicPermutation(int n)
for (int i = 0; i < Size(); ++i) image_[i] = ancestor_[i] = i;
}
void DynamicPermutation::AddMappings(const std::vector<int>& src,
const std::vector<int>& dst) {
void DynamicPermutation::AddMappings(absl::Span<const int> src,
absl::Span<const int> dst) {
DCHECK_EQ(src.size(), dst.size());
mapping_src_size_stack_.push_back(mapping_src_stack_.size());
mapping_src_stack_.reserve(mapping_src_stack_.size() + src.size());

View File

@@ -19,6 +19,7 @@
#include <string>
#include <vector>
#include "absl/types/span.h"
#include "ortools/base/logging.h"
namespace operations_research {
@@ -45,7 +46,7 @@ class DynamicPermutation {
// - For all i, dst[i] must not already be the image of something.
//
// Complexity: amortized O(src.size()).
void AddMappings(const std::vector<int>& src, const std::vector<int>& dst);
void AddMappings(absl::Span<const int> src, absl::Span<const int> dst);
// Undoes the last AddMappings() operation, and fills the "undone_mapping_src"
// vector with the src of that last operation. This works like an undo stack.

View File

@@ -640,7 +640,7 @@ void HungarianOptimizer::AugmentPath() {
state_ = &HungarianOptimizer::PrimeZeroes;
}
bool InputContainsNan(const std::vector<std::vector<double>>& input) {
bool InputContainsNan(absl::Span<const std::vector<double>> input) {
for (const auto& subvector : input) {
for (const auto& num : subvector) {
if (std::isnan(num)) {

View File

@@ -552,7 +552,7 @@ void KnapsackGenericSolver::UpdateBestSolution() {
// number of items is less than 15.
class KnapsackBruteForceSolver : public BaseKnapsackSolver {
public:
explicit KnapsackBruteForceSolver(const std::string& solver_name);
explicit KnapsackBruteForceSolver(absl::string_view solver_name);
// This type is neither copyable nor movable.
KnapsackBruteForceSolver(const KnapsackBruteForceSolver&) = delete;
@@ -581,7 +581,7 @@ class KnapsackBruteForceSolver : public BaseKnapsackSolver {
};
KnapsackBruteForceSolver::KnapsackBruteForceSolver(
const std::string& solver_name)
absl::string_view solver_name)
: BaseKnapsackSolver(solver_name),
num_items_(0),
capacity_(0LL),
@@ -1183,7 +1183,7 @@ int64_t KnapsackDivideAndConquerSolver::Solve(TimeLimit* /*time_limit*/,
class KnapsackMIPSolver : public BaseKnapsackSolver {
public:
KnapsackMIPSolver(MPSolver::OptimizationProblemType problem_type,
const std::string& solver_name);
absl::string_view solver_name);
// Initializes the solver and enters the problem to be solved.
void Init(const std::vector<int64_t>& profits,
@@ -1209,7 +1209,7 @@ class KnapsackMIPSolver : public BaseKnapsackSolver {
KnapsackMIPSolver::KnapsackMIPSolver(
MPSolver::OptimizationProblemType problem_type,
const std::string& solver_name)
absl::string_view solver_name)
: BaseKnapsackSolver(solver_name),
problem_type_(problem_type),
profits_(),

View File

@@ -28,7 +28,6 @@
#include "ortools/base/logging.h"
#include "ortools/base/path.h"
#include "ortools/base/timer.h"
#include "testing/base/public/googletest.h"
namespace operations_research {