| 77 | |
| 78 | template<class View> |
| 79 | ExecStatus |
| 80 | MaxBnd<View>::post(Home home, View x0, View x1, View x2) { |
| 81 | GECODE_ME_CHECK(x2.gq(home,std::max(x0.min(),x1.min()))); |
| 82 | GECODE_ME_CHECK(x2.lq(home,std::max(x0.max(),x1.max()))); |
| 83 | if (x0 == x1) |
| 84 | return Rel::EqBnd<View,View>::post(home,x0,x2); |
| 85 | if (x0 == x2) |
| 86 | return Rel::Lq<View,View>::post(home,x1,x2); |
| 87 | if (x1 == x2) |
| 88 | return Rel::Lq<View,View>::post(home,x0,x2); |
| 89 | (void) new (home) MaxBnd<View>(home,x0,x1,x2); |
| 90 | return ES_OK; |
| 91 | } |
| 92 | |
| 93 | template<class View> |
| 94 | forceinline |