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, ReifyMode rm>
204 template<
class Val,
class A,
class B,
class Ctrl, ReifyMode rm>
212 template<
class Val,
class A,
class B,
class Ctrl, ReifyMode rm>
218 template<
class Val,
class A,
class B,
class Ctrl, ReifyMode rm>
224 template<
class Val,
class A,
class B,
class Ctrl, ReifyMode rm>
237 if ((x0.min() + x1.min() >
c) || (x0.max() + x1.max() <
c)) {
242 if (x0.assigned() && x1.assigned()) {
243 assert(x0.val() + x1.val() ==
c);
258 template<
class Val,
class A,
class B>
263 template<
class Val,
class A,
class B>
271 template<
class Val,
class A,
class B>
276 template<
class Val,
class A,
class B>
282 template<
class Val,
class A,
class B>
290 template<
class Val,
class A,
class B>
296 template<
class Val,
class A,
class B>
302 assert(x1.assigned());
314 template<
class Val,
class A,
class B>
319 template<
class Val,
class A,
class B>
327 template<
class Val,
class A,
class B>
332 template<
class Val,
class A,
class B>
338 template<
class Val,
class A,
class B>
344 template<
class Val,
class A,
class B>
360 template<
class Val,
class A,
class B>
365 template<
class Val,
class A,
class B>
373 template<
class Val,
class A,
class B>
378 template<
class Val,
class A,
class B>
384 template<
class Val,
class A,
class B>
390 template<
class Val,
class A,
class B>
406 template<
class Val,
class A,
class B, ReifyMode rm>
411 template<
class Val,
class A,
class B, ReifyMode rm>
419 template<
class Val,
class A,
class B, ReifyMode rm>
424 template<
class Val,
class A,
class B, ReifyMode rm>
430 template<
class Val,
class A,
class B, ReifyMode rm>
443 if (x0.max() + x1.max() <=
c) {
448 if (x0.min() + x1.min() >
c) {