77 long long int m,
long long int&
d)
const;
87 static void*
operator new(
size_t size);
89 static void operator delete(
void*
p,
size_t size);
119 LinIntExpr::Node::operator
new(
size_t size) {
124 LinIntExpr::Node::operator
delete(
void*
p, size_t) {
130 if ((
l != NULL) &&
l->decrement())
132 if ((
r != NULL) &&
r->decrement())
154 fill(home,icl,ti,tb,1,d);
156 return static_cast<int>(
d);
161 if (home.
failed())
return;
189 int c = n->
fill(home,icl,its,NULL);
192 }
else if (n->
n_int == 0) {
196 int c = n->
fill(home,icl,NULL,bts);
198 }
else if (n->
n_bool == 1) {
204 int c = n->
fill(home,icl,its,bts);
216 int c = n->
fill(home,icl,its,bts);
229 if (home.
failed())
return;
247 int c = n->
fill(home,icl,its,NULL);
250 }
else if (n->
n_int == 0) {
254 int c = n->
fill(home,icl,NULL,bts);
256 }
else if (n->
n_bool == 1) {
262 int c = n->
fill(home,icl,its,bts);
274 int c = n->
fill(home,icl,its,bts);
292 int c = n->
fill(home,icl,its,NULL);
293 if ((n->
n_int == 1) && (c == 0) && (its[0].
a == 1))
301 }
else if (n->
n_int == 0) {
305 int c = n->
fill(home,icl,NULL,bts);
311 }
else if (n->
n_bool == 1) {
317 int c = n->
fill(home,icl,its,bts);
323 IntVar y(home, y_min, y_max);
333 int c = n->
fill(home,icl,its,bts);
341 IntVar y(home, y_min, y_max);
399 for (
int i=x.
size();
i--; ) {
416 for (
int i=x.
size();
i--; ) {
431 for (
int i=x.
size();
i--; ) {
448 for (
int i=x.
size();
i--; ) {
460 n->
l = e0.n; n->
l->
use++;
461 n->
r = e1.n; n->
r->
use++;
470 n->
r = e.n; n->
r->
use++;
479 n->
l = e.n; n->
l->
use++;
514 long long int m,
long long int&
d)
const {
522 ti->
a=
static_cast<int>(m*
a); ti->
x=
x_int; ti++;
525 ti->
a=
static_cast<int>(m); ti->
x=
sum.ne->post(home, NULL, icl); ti++;
529 tb->
a=
static_cast<int>(m*
a); tb->
x=
x_bool; tb++;
534 ti[
i].
x =
sum.ti[
i].x; ti[
i].
a =
static_cast<int>(m*
sum.ti[
i].a);
541 tb[
i].
x =
sum.tb[
i].x; tb[
i].
a =
static_cast<int>(m*
sum.tb[
i].a);
550 l->
fill(home,icl,ti,tb,m,d);
552 r->
fill(home,icl,ti,tb,m,d);
559 l->
fill(home,icl,ti,tb,m,d);
561 r->
fill(home,icl,ti,tb,-m,d);
565 l->
fill(home,icl,ti,tb,m*a,d);
900 for (i = 0 ; i <
size ; ++
i)
912 return e.
post(home,icl);