42 namespace Gecode {
namespace Int {
namespace Linear {
64 d -= t[
i].
a; t[
i]=t[--n];
65 }
else if (t[
i].x.zero()) {
95 for (
int i=n_p;
i--; )
104 for (
int i=n_p;
i--; )
107 ::
post(home,x,y,c)));
113 for (
int i=n_p;
i--; )
116 ::
post(home,x,y,c)));
122 for (
int i=n_p;
i--; )
126 ::
post(home,x,z,n_p-c)));
141 for (
int i=n_p;
i--; )
149 for (
int i=n_p;
i--; )
157 for (
int i=n_p;
i--; )
165 for (
int i=n_p;
i--; )
183 for (
int i=n_p;
i--; )
191 for (
int i=n_p;
i--; )
200 for (
int i=n_p;
i--; )
208 for (
int i=n_p;
i--; )
225 for (
int i=n_n;
i--; )
229 ::
post(home,x,z,-c)));
235 for (
int i=n_n;
i--; )
239 ::
post(home,x,z,-c)));
245 for (
int i=n_n;
i--; )
248 ::
post(home,x,y,n_n+c)));
254 for (
int i=n_n;
i--; )
258 ::
post(home,x,z,-c)));
273 for (
int i=n_n;
i--; )
281 for (
int i=n_n;
i--; )
289 for (
int i=n_n;
i--; )
297 for (
int i=n_n;
i--; )
315 for (
int i=n_n;
i--; )
323 for (
int i=n_n;
i--; )
332 for (
int i=n_n;
i--; )
340 for (
int i=n_n;
i--; )
357 for (
int i=n_p;
i--; ) {
364 for (
int i=n_n;
i--; ) {
372 ::
post(home,b_p,b_n,y,c)));
377 ::
post(home,b_p,b_n,y,c)));
382 ::
post(home,b_p,b_n,y,c)));
389 ::
post(home,b_n,b_p,m,-c)));
406 for (
int i=n_p;
i--; ) {
413 for (
int i=n_n;
i--; ) {
421 ::
post(home,b_p,b_n,y,c)));
426 ::
post(home,b_p,b_n,y,c)));
431 ::
post(home,b_p,b_n,y,c)));
436 ::
post(home,b_n,b_p,y,-c)));
457 c =
static_cast<int>(
d);
461 bool unit = normalize<BoolView>(t,n,t_p,n_p,t_n,n_n);
476 double sl = x.max()+
c;
477 double su = x.
min()+
c;
478 for (
int i=n_p;
i--; )
480 for (
int i=n_n;
i--; )
486 if (unit && (n_n == 0)) {
489 }
else if (unit && (n_p == 0)) {
522 rel(home,z,r,x,b,icl);
531 return post(home,t,n,r,c,icl);
543 c =
static_cast<int>(
d);
548 case IRT_EQ: fail = (0 !=
c);
break;
549 case IRT_NQ: fail = (0 ==
c);
break;
550 case IRT_GQ: fail = (0 <
c);
break;
551 case IRT_LQ: fail = (0 >
c);
break;
561 bool unit = normalize<BoolView>(t,n,t_p,n_p,t_n,n_n);
567 for (
int i=n_p;
i--; )
569 for (
int i=n_n;
i--; )
575 if (unit && (n_n == 0)) {
578 }
else if (unit && (n_p == 0)) {
587 for (
int i=n_n;
i--; )
588 t_n[
i].
a = -t_n[
i].
a;
595 rel(home,z,r,c,b,icl);