| 48 | |
| 49 | template<class VA, class VB> |
| 50 | forceinline ExecStatus |
| 51 | SqrPlus<VA,VB>::post(Home home, VA x0, VB x1) { |
| 52 | if (x0 == x1) { |
| 53 | if (x0.assigned()) |
| 54 | return ((x0.val() == 0) || (x0.val() == 1))? ES_OK : ES_FAILED; |
| 55 | } else { |
| 56 | GECODE_ME_CHECK(x0.eq(home,sqrt(x1.val()))); |
| 57 | GECODE_ME_CHECK(x1.eq(home,sqr(x0.val()))); |
| 58 | } |
| 59 | |
| 60 | (void) new (home) SqrPlus<VA,VB>(home,x0,x1); |
| 61 | return ES_OK; |
| 62 | } |
| 63 | |
| 64 | template<class VA, class VB> |
| 65 | forceinline |