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; }
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; }