diff --git a/src/constraint_solver/alldiff_cst.cc b/src/constraint_solver/alldiff_cst.cc index 6c1331cb17..a8bb56632c 100644 --- a/src/constraint_solver/alldiff_cst.cc +++ b/src/constraint_solver/alldiff_cst.cc @@ -339,10 +339,9 @@ class RangeBipartiteMatching { }; void PathSet(int start, int end, int to, int* const tree) { - int k = start; int l = start; while (l != end) { - k = l; + int k = l; l = tree[k]; tree[k] = to; } diff --git a/src/constraint_solver/gcc.cc b/src/constraint_solver/gcc.cc index be1d745d3b..bddb8357b6 100644 --- a/src/constraint_solver/gcc.cc +++ b/src/constraint_solver/gcc.cc @@ -29,7 +29,7 @@ namespace operations_research { namespace { -DEFINE_INT_TYPE(Index, int64); +DEFINE_INT_TYPE(Index, int); /*============================================================ * User defined propagator for enforcing bounds consistency @@ -360,7 +360,7 @@ class GccConstraint : public Constraint { } } - void PropagateValue(int64 index) { + void PropagateValue(int index) { const int64 value = variables_[Index(index)]->Value(); const int64 cap = max_occurrences_.Value(value) - 1; max_occurrences_.SetValue(solver(), value, cap); @@ -379,10 +379,9 @@ class GccConstraint : public Constraint { int64 start, int64 end, int64 to) { - int64 k = start; int64 l = start; while (l != end) { - k = l; + int64 k = l; l = (*tree)[k]; (*tree)[k] = to; } @@ -510,7 +509,7 @@ class GccConstraint : public Constraint { // Get interval bounds. int64 x = sorted_by_min_[i]->max_rank; int64 y = sorted_by_min_[i]->min_rank; - int64 z = PathMin(tree_, x-1); + int64 z = PathMin(tree_, x - 1); int64 j = tree_[z]; if (--diffs_[z] == 0) { tree_[z] = z - 1; @@ -805,7 +804,7 @@ Constraint* Gcc(Solver* const solver, Constraint* Gcc(Solver* const solver, const std::vector& vars, - int64 first_domain_value, + int64 offset, const std::vector& min_occurrences, const std::vector& max_occurrences) { return solver->RevAlloc( @@ -813,8 +812,8 @@ Constraint* Gcc(Solver* const solver, solver, vars, true, - first_domain_value, - first_domain_value + min_occurrences.size(), + offset, + offset + min_occurrences.size() - 1, min_occurrences, max_occurrences)); }