| 352 | } |
| 353 | |
| 354 | forceinline bool |
| 355 | LUBndSet::intersect(Space& home, int mi, int ma) { |
| 356 | assert(ma >= mi); |
| 357 | if ((mi <= min()) && (ma >= max())) { return false; } |
| 358 | if (_size == 0) return false; |
| 359 | if (ma < min() || mi > max() ) { // empty the whole set |
| 360 | fst()->dispose(home,lst()); fst(nullptr); lst(nullptr); |
| 361 | _size=0; |
| 362 | return true; |
| 363 | } |
| 364 | bool ret = intersect_full(home, mi, ma); |
| 365 | assert(isConsistent()); |
| 366 | return ret; |
| 367 | } |
| 368 | |
| 369 | template<class I> bool |
| 370 | LUBndSet::intersectI(Space& home, I& i) { |