40 namespace Gecode {
namespace MiniModel {
83 y = result(home,ret,x);
92 y = result(home,ret,
a[0].
post(home, icl));
94 IntVar x0 =
a[0].post(home, icl);
95 IntVar x1 =
a[1].post(home, icl);
97 y = result(home,ret,x0);
98 else if (x1.
max() <= x0.
min())
99 y = result(home,ret,x1);
101 y = result(home,ret);
102 min(home, x0, x1, y, icl);
108 y = result(home,ret);
109 min(home, x, y, icl);
114 y = result(home,ret,
a[0].
post(home, icl));
116 IntVar x0 =
a[0].post(home, icl);
117 IntVar x1 =
a[1].post(home, icl);
119 y = result(home,ret,x1);
120 else if (x1.
max() <= x0.
min())
121 y = result(home,ret,x0);
123 y = result(home,ret);
124 max(home, x0, x1, y, icl);
130 y = result(home,ret);
131 max(home, x, y, icl);
137 IntVar x0 =
a[0].post(home, icl);
138 IntVar x1 =
a[1].post(home, icl);
140 y = result(home,ret,x0);
142 y = result(home,ret,x1);
144 y = result(home,ret,x1);
146 y = result(home,ret,x0);
148 y = result(home,ret);
149 mult(home, x0, x1, y, icl);
156 IntVar x0 =
a[0].post(home, icl);
157 IntVar x1 =
a[1].post(home, icl);
160 y = result(home,ret,x0);
162 y = result(home,ret,x0);
164 y = result(home,ret);
165 div(home, x0, x1, y, icl);
172 IntVar x0 =
a[0].post(home, icl);
173 IntVar x1 =
a[1].post(home, icl);
174 y = result(home,ret);
175 mod(home, x0, x1, y, icl);
185 y = result(home,ret);
186 sqr(home, x, y, icl);
195 y = result(home,ret,x);
197 y = result(home,ret);
198 sqrt(home, x, y, icl);
207 ((x.
val() == 0) || (x.
val() == 1)))
210 y = result(home,ret);
211 pow(home, x, aInt, y, icl);
220 ((x.
val() == 0) || (x.
val() == 1)))
221 y = result(home,ret,x);
223 y = result(home,ret);
224 nroot(home, x, aInt, y, icl);
232 y = result(home,ret,
a[z.
val()].post(home, icl));
236 for (
int i=
n-1;
i--;) {
237 x[
i] =
a[
i].post(home, icl);
241 y = result(home,ret);
244 for (
int i=
n-1;
i--;)
265 rel(home, x, irt, c);
267 rel(home,
post(home,NULL,icl), irt, c);
272 rel(home,
post(home,NULL,icl), irt, c, b);
279 dynamic_cast<ArithNonLinIntExpr*>(e.
nle())->t == t;
288 using namespace MiniModel;
291 ArithNonLinIntExpr* ae =
299 using namespace MiniModel;
302 n +=
static_cast<ArithNonLinIntExpr*
>(e0.
nle())->
n;
306 n += static_cast<ArithNonLinIntExpr*>(e1.
nle())->
n;
309 ArithNonLinIntExpr* ae =
313 ArithNonLinIntExpr* e0e =
static_cast<ArithNonLinIntExpr*
>(e0.
nle());
314 for (;
i<e0e->
n;
i++)
315 ae->
a[
i] = e0e->a[
i];
320 ArithNonLinIntExpr* e1e =
static_cast<ArithNonLinIntExpr*
>(e1.
nle());
322 for (;
i<curN+e1e->
n;
i++)
323 ae->
a[
i] = e1e->a[
i-curN];
332 using namespace MiniModel;
335 n +=
static_cast<ArithNonLinIntExpr*
>(e0.
nle())->
n;
339 n += static_cast<ArithNonLinIntExpr*>(e1.
nle())->
n;
342 ArithNonLinIntExpr* ae =
346 ArithNonLinIntExpr* e0e =
static_cast<ArithNonLinIntExpr*
>(e0.
nle());
347 for (;
i<e0e->
n;
i++)
348 ae->
a[
i] = e0e->a[
i];
353 ArithNonLinIntExpr* e1e =
static_cast<ArithNonLinIntExpr*
>(e1.
nle());
355 for (;
i<curN+e1e->
n;
i++)
356 ae->
a[
i] = e1e->a[
i-curN];
365 using namespace MiniModel;
366 ArithNonLinIntExpr* ae =
368 for (
int i=x.
size();
i--;)
375 using namespace MiniModel;
376 ArithNonLinIntExpr* ae =
378 for (
int i=x.
size();
i--;)
385 using namespace MiniModel;
386 ArithNonLinIntExpr* ae =
395 using namespace MiniModel;
396 ArithNonLinIntExpr* ae =
404 using namespace MiniModel;
405 ArithNonLinIntExpr* ae =
413 using namespace MiniModel;
414 ArithNonLinIntExpr* ae =
422 using namespace MiniModel;
423 ArithNonLinIntExpr* ae =
431 using namespace MiniModel;
432 ArithNonLinIntExpr* ae =
441 using namespace MiniModel;
442 ArithNonLinIntExpr* ae =
451 using namespace MiniModel;
452 ArithNonLinIntExpr* ae =
454 for (
int i=x.
size();
i--;)
462 using namespace MiniModel;
463 ArithNonLinIntExpr* ae =
465 for (
int i=x.
size();
i--;)