| 269 | */ |
| 270 | template<class View> |
| 271 | forceinline ExecStatus |
| 272 | prop_mult_dom(Space& home, Propagator& p, View x0, View x1, View x2) { |
| 273 | Region r; |
| 274 | SupportValues<View,Region> s0(r,x0), s1(r,x1), s2(r,x2); |
| 275 | while (s0()) { |
| 276 | while (s1()) { |
| 277 | if (s2.support(mll(s0.val(),s1.val()))) { |
| 278 | s0.support(); s1.support(); |
| 279 | } |
| 280 | ++s1; |
| 281 | } |
| 282 | s1.reset(); ++s0; |
| 283 | } |
| 284 | GECODE_ME_CHECK(s0.tell(home)); |
| 285 | GECODE_ME_CHECK(s1.tell(home)); |
| 286 | GECODE_ME_CHECK(s2.tell(home)); |
| 287 | return x0.assigned() && x1.assigned() ? home.ES_SUBSUMED(p) : ES_FIX; |
| 288 | } |
| 289 | |
| 290 | template<class VA, class VB, class VC> |
| 291 | forceinline |