44 namespace Gecode {
namespace Set {
namespace RelOp {
51 template<
class View0,
class View1,
class View2>
ExecStatus
53 View0 x0,View1 x1,View2 x2) {
58 template<
class View0,
class View1,
class View2>
64 template<
class View0,
class View1,
class View2>
70 bool x0ass = x0.assigned();
71 bool x1ass = x1.assigned();
72 bool x2ass = x2.assigned();
80 bool modified =
false;
104 bool modified2=
false;
107 x1lbmod |= modified2;
108 modified |= modified2;
115 bool modifiedOld = modified;
119 || x0lbmod || modifiedOld)
130 || x1lbmod || modifiedOld)
176 if (x0ass && x1ass && x2ass)
178 if (x0ass != x0.assigned() ||
179 x1ass != x1.assigned() ||
180 x2ass != x2.assigned()) {
188 template<
class View0,
class View1,
class View2>
191 View0 y0,View1 y1,View2 y2)
195 template<
class View0,
class View1,
class View2>
207 template<
class View0,
class View1>
216 template<
class View0,
class View1>
227 template<
class View0,
class View1>
237 template<
class View0,
class View1>
255 template<
class View0,
class View1>
258 const IntSet& z, View1 y) {
263 template<
class View0,
class View1>
269 template<
class View0,
class View1>
275 template<
class View0,
class View1>
281 int xsize = x.size();
284 for (
int i = xsize;
i--; ) {
287 if (x[
i].cardMax()==0) {
289 intOfDets.dispose(home);
297 for (
int i = xsize;
i--; ) {
317 for (
int i = xsize;
i--; ) {
327 new (&rightSet[xsize-1])
GLBndSet(home);
328 rightSet[xsize-1].
update(home,intOfDets);
329 for (
int i=xsize-1;
i--;) {
340 for (
int i=0;
i<xsize;
i++) {
344 BndSetRanges>
inter(left, right);
348 forbidden(inter, yub);
353 for (
int i=xsize;
i--;)
354 rightSet[
i].dispose(home);
361 while (
i<x.
size() && x[
i].assigned()) {
363 if (intOfDets.intersectI(home,det)) {repeat =
true;}
365 if (intOfDets.size()==0) {
367 intOfDets.dispose(home);
378 intOfDets.dispose(home);