| 185 | |
| 186 | template<class Val, class A, class B> |
| 187 | ExecStatus |
| 188 | EqBin<Val,A,B>::propagate(Space& home, const ModEventDelta&) { |
| 189 | int bm = BM_ALL; |
| 190 | do { |
| 191 | GECODE_INT_PV(BM_X0_MIN, x0.gq(home,c-x1.max()), BM_X1_MAX); |
| 192 | GECODE_INT_PV(BM_X1_MIN, x1.gq(home,c-x0.max()), BM_X0_MAX); |
| 193 | GECODE_INT_PV(BM_X0_MAX, x0.lq(home,c-x1.min()), BM_X1_MIN); |
| 194 | GECODE_INT_PV(BM_X1_MAX, x1.lq(home,c-x0.min()), BM_X0_MIN); |
| 195 | } while (bm); |
| 196 | return x0.assigned() ? home.ES_SUBSUMED(*this) : ES_FIX; |
| 197 | } |
| 198 | |
| 199 | #undef GECODE_INT_PV |
| 200 | |