42 namespace Gecode {
namespace Int {
namespace Precede {
48 return x.assigned() && (x.val() ==
v);
89 int s0,
int t0,
int b,
int g)
92 for (
int i=
x.size();
i--; )
103 while ((alpha < x.
size()) && !x[alpha].in(s))
110 int beta = 0, gamma = 0;
117 }
while ((beta < x.
size()) && !x[beta].in(s));
122 if (gamma < x.
size())
124 (void)
new (home)
Single<View>(home, x, s, t, beta, gamma);
135 alpha(p.alpha), beta(p.beta), gamma(p.gamma) {
136 c.update(home, share, p.
c);
144 while ((i < alpha) && x[i].
assigned())
149 alpha -=
i; beta -=
i; gamma -=
i;
152 if (gamma < x.size()) {
154 while ((i > gamma) && x[i].
assigned())
167 x[as.advisor().i].cancel(home,as.advisor());
170 return sizeof(*this);
182 Index&
a(static_cast<Index&>(a0));
185 if ((beta <= gamma) && (i < gamma) &&
assigned(x[i],t))
191 }
else if ((i < alpha) || (i > gamma)) {
198 if ((alpha == i) || (beta ==
i)) {
199 if (x[i].
any(d) && !x[
i].in(s))
201 if ((x[i].
min(d) <= s) && (s <= x[
i].max(d)))
215 if ((alpha < n) && !x[alpha].in(s)) {
223 }
else if ((beta < n) && !x[beta].in(s)) {