| 282 | } |
| 283 | |
| 284 | void |
| 285 | SetTestSpace::removeFromLub(int v, int i, const SetAssignment& a) { |
| 286 | using namespace Gecode; |
| 287 | SetVarUnknownRanges ur(x[i]); |
| 288 | CountableSetRanges air(a.lub, a[i]); |
| 289 | Gecode::Iter::Ranges::Diff<Gecode::SetVarUnknownRanges, |
| 290 | CountableSetRanges> diff(ur, air); |
| 291 | Gecode::Iter::Ranges::ToValues<Gecode::Iter::Ranges::Diff |
| 292 | <Gecode::SetVarUnknownRanges, CountableSetRanges> > diffV(diff); |
| 293 | for (int j=0; j<v; j++, ++diffV) {} |
| 294 | rel(i, Gecode::SRT_DISJ, Gecode::IntSet(diffV.val(), diffV.val())); |
| 295 | } |
| 296 | |
| 297 | void |
| 298 | SetTestSpace::removeFromLub(int v, int i, const SetAssignment& a, |