From 0cbdbb78f13b4431b09fea3c2dcbe8666a71da73 Mon Sep 17 00:00:00 2001 From: Laurent Perron Date: Mon, 29 Sep 2025 11:33:03 +0200 Subject: [PATCH] [CP-SAT] little cleanups --- ortools/sat/cp_constraints.h | 6 ++++-- ortools/sat/cp_model_expand.cc | 2 +- ortools/sat/cp_model_utils.cc | 2 +- ortools/sat/python/cp_model_helper.cc | 2 +- ortools/sat/sat_parameters.proto | 2 +- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ortools/sat/cp_constraints.h b/ortools/sat/cp_constraints.h index 34f4ab1300..3d2165392f 100644 --- a/ortools/sat/cp_constraints.h +++ b/ortools/sat/cp_constraints.h @@ -125,9 +125,11 @@ inline std::vector ToIntegerValueVector( // Enforces the XOR of a set of literals to be equal to the given value. inline std::function LiteralXorIs( - const std::vector& enforcement_literals, + absl::Span enforcement_literals, const std::vector& literals, bool value) { - return [=](Model* model) { + return [=, enforcement_literals = std::vector( + enforcement_literals.begin(), enforcement_literals.end())]( + Model* model) { model->TakeOwnership( new BooleanXorPropagator(enforcement_literals, literals, value, model)); }; diff --git a/ortools/sat/cp_model_expand.cc b/ortools/sat/cp_model_expand.cc index e4014a2aab..20c3669e77 100644 --- a/ortools/sat/cp_model_expand.cc +++ b/ortools/sat/cp_model_expand.cc @@ -2390,7 +2390,7 @@ void ExpandSomeLinearOfSizeTwo(ConstraintProto* ct, PresolveContext* context) { reachable_rhs_superset.IntersectionWith(rhs.Complement()); // Let's check we will not create encoding literals for variables that are too - // large, or have little encoding literals. + // large, or have few encoding literals. const bool small_enough = context->DomainSize(var1) <= max_domain_size && context->DomainSize(var2) <= max_domain_size && context->IsMostlyFullyEncoded(var1) && diff --git a/ortools/sat/cp_model_utils.cc b/ortools/sat/cp_model_utils.cc index f7c9e7ea0d..02286f0eb6 100644 --- a/ortools/sat/cp_model_utils.cc +++ b/ortools/sat/cp_model_utils.cc @@ -1091,7 +1091,7 @@ bool ConvertCpModelProtoToCnf(const CpModelProto& cp_model, std::string* out) { absl::StrAppend(out, "p cnf ", num_vars, " ", num_clauses, "\n"); ConvertSatCpModelProtoToClauses( - cp_model, [&out](const std::vector& clause) { + cp_model, [&out](absl::Span clause) { for (const Literal lit : clause) { absl::StrAppend(out, lit.SignedValue(), " "); } diff --git a/ortools/sat/python/cp_model_helper.cc b/ortools/sat/python/cp_model_helper.cc index 1734bd4008..854b187f95 100644 --- a/ortools/sat/python/cp_model_helper.cc +++ b/ortools/sat/python/cp_model_helper.cc @@ -1682,7 +1682,7 @@ PYBIND11_MODULE(cp_model_helper, m) { .def("__bool__", [](std::shared_ptr /*self*/) { ThrowError(PyExc_NotImplementedError, - "Evaluating a Literal as a Boolean valueis " + "Evaluating a Literal as a Boolean value is " "not supported."); }) .def("__hash__", &Literal::Hash) diff --git a/ortools/sat/sat_parameters.proto b/ortools/sat/sat_parameters.proto index e0e2fea93a..80f8b4f2a5 100644 --- a/ortools/sat/sat_parameters.proto +++ b/ortools/sat/sat_parameters.proto @@ -515,7 +515,7 @@ message SatParameters { optional bool expand_reservoir_constraints = 182 [default = true]; // Max domain size for expanding linear2 constraints (ax + by ==/!= c). - optional int32 max_domain_size_for_linear2_expansion = 336 [default = 32]; + optional int32 max_domain_size_for_linear2_expansion = 336 [default = 8]; // Mainly useful for testing. //