38 namespace Gecode {
namespace Int {
namespace Linear {
44 template<
class Val,
class A,
class B, PropCond pc>
48 x0.subscribe(home,*
this,pc);
49 x1.subscribe(home,*
this,pc);
52 template<
class Val,
class A,
class B, PropCond pc>
56 x0.update(home,share,p.
x0);
57 x1.update(home,share,p.
x1);
60 template<
class Val,
class A,
class B, PropCond pc>
65 x0.update(home,share,y0);
66 x1.update(home,share,y1);
69 template<
class Val,
class A,
class B, PropCond pc>
75 template<
class Val,
class A,
class B, PropCond pc>
78 x0.cancel(home,*
this,pc);
79 x1.cancel(home,*
this,pc);
89 template<
class Val,
class A,
class B, PropCond pc,
class Ctrl>
93 x0.subscribe(home,*
this,pc);
94 x1.subscribe(home,*
this,pc);
98 template<
class Val,
class A,
class B, PropCond pc,
class Ctrl>
103 x0.update(home,share,p.
x0);
104 x1.update(home,share,p.
x1);
105 b.update(home,share,p.
b);
108 template<
class Val,
class A,
class B, PropCond pc,
class Ctrl>
114 template<
class Val,
class A,
class B, PropCond pc,
class Ctrl>
117 x0.cancel(home,*
this,pc);
118 x1.cancel(home,*
this,pc);
121 return sizeof(*this);
129 template<
class Val,
class A,
class B>
134 template<
class Val,
class A,
class B>
142 template<
class Val,
class A,
class B>
147 template<
class Val,
class A,
class B>
153 template<
class Val,
class A,
class B>
168 #define GECODE_INT_PV(CASE,TELL,UPDATE) \
170 bm -= (CASE); ModEvent me = (TELL); \
171 if (me_failed(me)) return ES_FAILED; \
172 if (me_modified(me)) bm |= (UPDATE); \
175 template<
class Val,
class A,
class B>
199 template<
class Val,
class A,
class B,
class Ctrl>
204 template<
class Val,
class A,
class B,
class Ctrl>
212 template<
class Val,
class A,
class B,
class Ctrl>
218 template<
class Val,
class A,
class B,
class Ctrl>
224 template<
class Val,
class A,
class B,
class Ctrl>
231 if ((x0.min() + x1.min() >
c) || (x0.max() + x1.max() <
c)) {
234 if (x0.assigned() && x1.assigned()) {
235 assert(x0.val() + x1.val() ==
c);
248 template<
class Val,
class A,
class B>
253 template<
class Val,
class A,
class B>
261 template<
class Val,
class A,
class B>
266 template<
class Val,
class A,
class B>
272 template<
class Val,
class A,
class B>
280 template<
class Val,
class A,
class B>
286 template<
class Val,
class A,
class B>
292 assert(x1.assigned());
304 template<
class Val,
class A,
class B>
309 template<
class Val,
class A,
class B>
317 template<
class Val,
class A,
class B>
322 template<
class Val,
class A,
class B>
328 template<
class Val,
class A,
class B>
334 template<
class Val,
class A,
class B>
350 template<
class Val,
class A,
class B>
355 template<
class Val,
class A,
class B>
363 template<
class Val,
class A,
class B>
368 template<
class Val,
class A,
class B>
374 template<
class Val,
class A,
class B>
380 template<
class Val,
class A,
class B>
396 template<
class Val,
class A,
class B>
401 template<
class Val,
class A,
class B>
409 template<
class Val,
class A,
class B>
414 template<
class Val,
class A,
class B>
420 template<
class Val,
class A,
class B>
427 if (x0.max() + x1.max() <=
c) {
430 if (x0.min() + x1.min() >
c) {