| 60 | } |
| 61 | |
| 62 | bool |
| 63 | IntVarImp::in_full(int m) const { |
| 64 | if (closer_min(m)) { |
| 65 | const RangeList* p = nullptr; |
| 66 | const RangeList* c = fst(); |
| 67 | while (m > c->max()) { |
| 68 | const RangeList* n=c->next(p); p=c; c=n; |
| 69 | } |
| 70 | return (m >= c->min()); |
| 71 | } else { |
| 72 | const RangeList* n = nullptr; |
| 73 | const RangeList* c = lst(); |
| 74 | while (m < c->min()) { |
| 75 | const RangeList* p=c->prev(n); n=c; c=p; |
| 76 | } |
| 77 | return (m <= c->max()); |
| 78 | } |
| 79 | } |
| 80 | |
| 81 | /* |
| 82 | * "Standard" tell operations |