| 294 | } |
| 295 | template<class I> |
| 296 | forceinline ModEvent |
| 297 | BoolVarImp::inter_r(Space& home, I& i, bool) { |
| 298 | // Skip all ranges that are too small |
| 299 | while (i() && (i.max() < 0)) |
| 300 | ++i; |
| 301 | // Is new domain empty? |
| 302 | if (!i() || (i.min() > 1)) |
| 303 | return fail(home); |
| 304 | assert(i.min() <= 1); |
| 305 | if (i.min() == 1) |
| 306 | return one(home); |
| 307 | if (i.max() == 0) |
| 308 | return zero(home); |
| 309 | assert((i.min() <= 0) && (i.max() >= 1)); |
| 310 | return ME_INT_NONE; |
| 311 | } |
| 312 | template<class I> |
| 313 | forceinline ModEvent |
| 314 | BoolVarImp::minus_r(Space& home, I& i, bool) { |