38 namespace Gecode {
namespace Int {
namespace Rel {
56 x.update(home,share,p.
x);
57 y.update(home,share,p.
y);
93 while ((i < n) && (x[i].
min() == y[i].
max())) {
107 if (x[i].
max() < y[i].
min())
112 x[i].val() == y[i].val()));
114 x.drop_fst(i); y.drop_fst(i);
128 (x[i].
min() == y[i].
max()) &&
129 (x[i].
max() == y[i].
min())) {
131 (x[i].val() == y[i].val()));
142 if (x[i].
max() < y[i].
min())
145 if (x[i].
min() > y[i].
max())
150 x[i-1]=x[0]; x.drop_fst(i-1);
151 y[i-1]=y[0]; y.drop_fst(i-1);
155 if (x[1].
max() <= y[1].
min()) {
165 while ((i < n) && (x[i].
max() == y[i].
min()))
175 if (x[i].
max() < y[i].
min())
178 if (x[i].
min() > y[i].
max()) {
180 for (
int j=i; j<n; j++) {
184 x.size(i); y.size(i);
191 if (x[1].
min() >= y[1].
max()) {
201 while ((i < n) && (x[i].
min() == y[i].
max()))
212 if (x[i].
min() > y[i].
max())
215 if (x[i].
max() < y[i].
min()) {
217 for (
int j=i; j<n; j++) {
221 x.size(i); y.size(i);
265 x0(xv[xv.
size()-2]), y0(yv[xv.
size()-2]),
266 x1(xv[xv.
size()-1]), y1(yv[xv.
size()-1]),
270 assert(n ==
y.size());
271 x.size(n-2);
y.size(n-2);
286 x0.update(home,share,p.
x0);
y0.update(home,share,p.
y0);
287 x1.update(home,share,p.
x1);
y1.update(home,share,p.
y1);
288 x.update(home,share,p.
x);
y.update(home,share,p.
y);
332 n--; x[
i]=x[n]; y[
i]=y[n];
337 if (
same(x[i],y[i])) {
339 n--; x[
i]=x[n]; y[
i]=y[n];
351 (void)
new (home)
LexNq(home,x,y);
361 return sizeof(*this);
367 RelTest rt, View& x0, View& y0, View x1, View y1) {
369 assert(x0.assigned() && y0.assigned());
370 assert(x0.val() == y0.val());
376 n--; x[
i]=x[n]; y[
i]=y[n];
383 n--; x[
i]=x[n]; y[
i]=y[n];
384 x.size(n); y.size(n);