| 109 | |
| 110 | template<class View> |
| 111 | ExecStatus |
| 112 | MaxBnd<View>::propagate(Space& home, const ModEventDelta&) { |
| 113 | GECODE_ES_CHECK(prop_max_bnd(home,x0,x1,x2)); |
| 114 | if ((x0.max() <= x1.min()) || (x0.max() < x2.min())) |
| 115 | GECODE_REWRITE(*this,(Rel::EqBnd<View,View>::post(home(*this),x1,x2))); |
| 116 | if ((x1.max() <= x0.min()) || (x1.max() < x2.min())) |
| 117 | GECODE_REWRITE(*this,(Rel::EqBnd<View,View>::post(home(*this),x0,x2))); |
| 118 | return x0.assigned() && x1.assigned() && x2.assigned() ? |
| 119 | home.ES_SUBSUMED(*this) : ES_FIX; |
| 120 | } |
| 121 | |
| 122 | /* |
| 123 | * Nary bounds consistent maximum |
nothing calls this directly
no test coverage detected