algorithms more cleanup
This commit is contained in:
@@ -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",
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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_(),
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user