MakeIsBetweenVar

This commit is contained in:
lperron@google.com
2013-03-19 18:29:15 +00:00
parent cf334e630e
commit 77b651ac6f
2 changed files with 8 additions and 0 deletions

View File

@@ -1524,6 +1524,7 @@ class Solver {
// b == (l <= v <= u)
Constraint* MakeIsBetweenCt(IntVar* const v, int64 l, int64 u,
IntVar* const b);
IntVar* MakeIsBetweenVar(IntVar* const v, int64 l, int64 u);
// b == (v in set)
Constraint* MakeIsMemberCt(IntVar* const v, const std::vector<int64>& values,

View File

@@ -879,6 +879,13 @@ Constraint* Solver::MakeIsBetweenCt(IntVar* const v,
return RevAlloc(new IsBetweenCt(this, v, l, u, b));
}
IntVar* Solver::MakeIsBetweenVar(IntVar* const v, int64 l, int64 u) {
CHECK_EQ(this, v->solver());
IntVar* const b = MakeBoolVar();
AddConstraint(MakeIsBetweenCt(v, l, u, b));
return b;
}
// ---------- Member ----------
// ----- Member(IntVar, IntSet) -----