43 namespace Gecode {
namespace Int {
namespace Linear {
65 d -= t[
i].
a; t[
i]=t[--
n];
66 }
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--; )
205 for (
int i=n_p;
i--; )
228 for (
int i=n_p;
i--; )
250 for (
int i=n_p;
i--; )
281 for (
int i=n_n;
i--; )
285 ::
post(home,x,z,-c)));
291 for (
int i=n_n;
i--; )
295 ::
post(home,x,z,-c)));
301 for (
int i=n_n;
i--; )
304 ::
post(home,x,y,n_n+c)));
310 for (
int i=n_n;
i--; )
314 ::
post(home,x,z,-c)));
329 for (
int i=n_n;
i--; )
337 for (
int i=n_n;
i--; )
345 for (
int i=n_n;
i--; )
353 for (
int i=n_n;
i--; )
371 for (
int i=n_n;
i--; )
393 for (
int i=n_n;
i--; )
399 post(home,x,-c,nb)));
403 post(home,x,-c,nb)));
407 post(home,x,-c,nb)));
416 for (
int i=n_n;
i--; )
438 for (
int i=n_n;
i--; )
469 for (
int i=n_p;
i--; ) {
476 for (
int i=n_n;
i--; ) {
483 ::
post(home,b_p,b_n,y,c)));
487 ::
post(home,b_p,b_n,y,c)));
491 ::
post(home,b_p,b_n,y,c)));
497 ::
post(home,b_n,b_p,m,-c)));
514 for (
int i=n_p;
i--; ) {
521 for (
int i=n_n;
i--; ) {
529 ::
post(home,b_p,b_n,y,c)));
534 ::
post(home,b_p,b_n,y,c)));
539 ::
post(home,b_p,b_n,y,c)));
544 ::
post(home,b_n,b_p,y,-c)));
565 bool unit = normalize<BoolView>(
t,
n,t_p,n_p,t_n,n_n,
gcd);
569 c =
static_cast<int>(
d);
584 long long int sl =
static_cast<long long int>(x.max())+c;
585 long long int su =
static_cast<long long int>(x.min())+c;
586 for (
int i=n_p;
i--; )
588 for (
int i=n_n;
i--; )
594 if (unit && (n_n == 0)) {
597 }
else if (unit && (n_p == 0)) {
630 rel(home,z,irt,x,r,icl);
640 post(home,t,n,irt,c,icl);
657 bool unit = normalize<BoolView>(
t,
n,t_p,n_p,t_n,n_n,
gcd);
665 if ((d % gcd) != 0) {
673 if ((d % gcd) == 0) {
684 d =
ceil_div_xp(d,static_cast<long long int>(gcd));
690 c =
static_cast<int>(
d);
695 case IRT_EQ: fail = (0 !=
c);
break;
696 case IRT_NQ: fail = (0 ==
c);
break;
697 case IRT_GQ: fail = (0 <
c);
break;
698 case IRT_LQ: fail = (0 >
c);
break;
713 long long int sl =
c;
714 long long int su =
c;
715 for (
int i=n_p;
i--; )
717 for (
int i=n_n;
i--; )
723 if (unit && (n_n == 0)) {
726 }
else if (unit && (n_p == 0)) {
735 for (
int i=n_n;
i--; )
736 t_n[
i].
a = -t_n[
i].
a;
743 rel(home,z,irt,c,r,icl);