Beispiel #1
0
 ExecStatus
 TellCache::tell(Space& home, IntView x) {
   if (_eq == -2) {
     return ES_FAILED;
   } else if (_eq >= 0) {
     GECODE_ME_CHECK(x.eq(home,_eq));
   }
   Iter::Values::Array nqi(_nq, _n_nq);
   GECODE_ME_CHECK(x.minus_v(home, nqi));
   _n_nq=0; _eq=-1;
   return ES_OK;
 }
Beispiel #2
0
 forceinline ModEvent
 SupportSet::tell(Space& home, IntView& x) const {
   switch (bs.status()) {
   case Support::BSS_NONE:
     return ME_INT_FAILED;
   case Support::BSS_ALL:
     return ME_INT_NONE;
   case Support::BSS_SOME:
     {
       ResultIter i(*this,x);
       return x.minus_v(home,i);
     }
   default:
     GECODE_NEVER;
   }
   return ME_INT_NONE;
 }