| 91 | |
| 92 | template<class View> |
| 93 | inline ExecStatus |
| 94 | Ite<View>::post(Home home, Int::BoolView b, View x0, View x1, View x2) { |
| 95 | if (b.one()) |
| 96 | return Rel::Eq<View,View>::post(home,x2,x0); |
| 97 | if (b.zero()) |
| 98 | return Rel::Eq<View,View>::post(home,x2,x1); |
| 99 | GECODE_ME_CHECK(x2.lq(home,std::max(x0.max(),x1.max()))); |
| 100 | GECODE_ME_CHECK(x2.gq(home,std::min(x0.min(),x1.min()))); |
| 101 | (void) new (home) Ite<View>(home,b,x0,x1,x2); |
| 102 | return ES_OK; |
| 103 | } |
| 104 | |
| 105 | template<class View> |
| 106 | ExecStatus |