| 177 | |
| 178 | template<class VX> |
| 179 | ExecStatus |
| 180 | GqBoolInt<VX>::propagate(Space& home, const ModEventDelta&) { |
| 181 | // Check for failure due to a disabled propagator |
| 182 | if (x.size() - n_hs + n_as < c) |
| 183 | return ES_FAILED; |
| 184 | if (c > 0) { |
| 185 | assert((n_as == c) && (x.size() == n_hs)); |
| 186 | // Signal that propagator is running |
| 187 | n_as = 0; |
| 188 | // All views must be one to satisfy inequality |
| 189 | for (int i=0; i<n_hs; i++) |
| 190 | if (x[i].none()) |
| 191 | GECODE_ME_CHECK(x[i].one_none(home)); |
| 192 | } |
| 193 | return home.ES_SUBSUMED(*this); |
| 194 | } |
| 195 | |
| 196 | template<class VX> |
| 197 | ExecStatus |