| 156 | |
| 157 | |
| 158 | forceinline ModEvent |
| 159 | FloatVarImp::lq(Space& home, FloatNum n) { |
| 160 | if (n < dom.min()) return fail(home); |
| 161 | if ((n >= dom.max()) || assigned()) return ME_FLOAT_NONE; |
| 162 | FloatDelta d(n,dom.max()); |
| 163 | ModEvent me = ME_FLOAT_BND; |
| 164 | dom = intersect(dom,FloatVal(dom.min(),n)); |
| 165 | if (assigned()) me = ME_FLOAT_VAL; |
| 166 | GECODE_ASSUME((me == ME_FLOAT_VAL) | |
| 167 | (me == ME_FLOAT_BND)); |
| 168 | return notify(home,me,d); |
| 169 | } |
| 170 | forceinline ModEvent |
| 171 | FloatVarImp::lq(Space& home, const FloatVal& n) { |
| 172 | if (n.max() < dom.min()) return fail(home); |