| 336 | } |
| 337 | |
| 338 | forceinline bool |
| 339 | LUBndSet::exclude(Space& home, int mi, int ma, SetDelta& d) { |
| 340 | assert(ma >= mi); |
| 341 | if ((mi > max()) || (ma < min())) { return false; } |
| 342 | if (mi <= min() && ma >= max() ) { //the range covers the whole set |
| 343 | d._lubMin = min(); |
| 344 | d._lubMax = max(); |
| 345 | fst()->dispose(home,lst()); fst(nullptr); lst(nullptr); |
| 346 | _size=0; |
| 347 | return true; |
| 348 | } |
| 349 | bool ret = exclude_full(home, mi, ma, d); |
| 350 | assert(isConsistent()); |
| 351 | return ret; |
| 352 | } |
| 353 | |
| 354 | forceinline bool |
| 355 | LUBndSet::intersect(Space& home, int mi, int ma) { |