| 53 | |
| 54 | template<class A, class B> |
| 55 | ExecStatus |
| 56 | Channel<A,B>::post(Home home, A x0, B x1) { |
| 57 | GECODE_ME_CHECK(x0.eq(home,FloatVal(Int::Limits::min, |
| 58 | Int::Limits::max))); |
| 59 | GECODE_ME_CHECK(x1.gq(home,static_cast<int>(std::ceil(x0.min())))); |
| 60 | GECODE_ME_CHECK(x1.lq(home,static_cast<int>(std::floor(x0.max())))); |
| 61 | GECODE_ME_CHECK(x0.eq(home,FloatVal(x1.min(),x1.max()))); |
| 62 | (void) new (home) Channel<A,B>(home,x0,x1); |
| 63 | return ES_OK; |
| 64 | } |
| 65 | |
| 66 | template<class A, class B> |
| 67 | ExecStatus |