MakeIsBetweenVar
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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) -----
|
||||
|
||||
Reference in New Issue
Block a user