44 namespace Gecode {
namespace Set {
60 unsigned int cardMin,
unsigned int cardMax)
62 lub(home,ubMin,ubMax), glb(home,lbMin,lbMax) {
69 const IntSet& theGlb,
int ubMin,
int ubMax,
70 unsigned int cardMin,
unsigned int cardMax)
72 lub(home,ubMin,ubMax), glb(home,theGlb) {
79 int lbMin,
int lbMax,
const IntSet& theLub,
80 unsigned int cardMin,
unsigned int cardMax)
82 lub(home,theLub), glb(home,lbMin,lbMax) {
90 unsigned int cardMin,
unsigned int cardMax)
171 return cardMin_full(home);
181 return cardMax_full(home);
193 int oldMin = lub.
min();
194 int oldMax = lub.
max();
198 d._lubMin = lub.
max()+1;
200 }
else if (j == oldMax) {
202 d._lubMax = lub.
min()-1;
204 return processLubChange(home, d);
232 int mi=iterator.min();
233 int ma=iterator.max();
236 return intersectI_full(home, mi, ma, iterator);
243 SetVarImp::intersectI_full(
Space& home,
int mi,
int ma, I& iterator) {
270 return notify(home, me, d);
285 if (glb.
include(home, i, j, d))
286 return processGlbChange(home, d);
306 int mi=iterator.min();
307 int ma=iterator.max();
310 return includeI_full(home, mi, ma, iterator);
317 SetVarImp::includeI_full(
Space& home,
int mi,
int ma, I& iterator) {
344 return notify(home, me, d);
359 if (lub.
exclude(home, i, j, d))
360 return processLubChange(home, d);
379 int mi=iterator.min();
380 int ma=iterator.max();
383 return excludeI_full(home, mi, ma, iterator);
390 SetVarImp::excludeI_full(
Space& home,
int mi,
int ma, I& iterator) {
417 return notify(home, me, d);
431 perform_copy(home,share);