42 namespace Gecode {
namespace Int {
namespace Channel {
48 template<
class View,
class Offset>
60 void init(View x,
int n);
64 bool doval(
void)
const;
66 bool dodom(
void)
const;
75 template<
class View,
class Offset>
79 size =
static_cast<unsigned int>(n);
84 template<
class View,
class Offset>
88 view.update(home,share,di.
view);
94 template<
class View,
class Offset>
97 return (
size != 1) && view.assigned();
100 template<
class View,
class Offset>
103 return size != view.size();
106 template<
class View,
class Offset>
112 template<
class View,
class Offset>
122 template<
class View,
class Offset>
131 template<
class View,
class Offset>
135 for (
int i = n;
i--; )
172 template<
class View,
class Offset,
bool shared>
178 template<
class View,
class Offset,
bool shared>
184 template<
class View,
class Offset,
bool shared>
190 template<
class View,
class Offset,
bool shared>
200 template<
class View,
class Offset,
bool shared>
212 for (
int i = n;
i--; ) {
213 if (x[
i].doval()) xa.
push(
i);
214 if (y[
i].doval()) ya.
push(
i);
221 (home,n,x,ox,y,oy,n_na,xa,ya)));
224 (home,n,y,oy,x,ox,n_na,ya,xa)));
232 (home,n,x,ox,y,oy,n_na,xa,ya)));
235 (home,n,y,oy,x,ox,n_na,ya,xa)));
237 }
while (!xa.
empty());
249 (home,n,x,ox,y,oy,n_na,xa,ya)));
252 if (dc.available()) {
269 int j = ox(x[
i].view).val();
293 (home,n,x,ox,y,oy,n_na,xa,ya)));
296 (home,n,y,oy,x,ox,n_na,ya,xa)));
300 for (
int i=2*n;
i--; )
301 if (!xy[
i].view.assigned())
309 template<
class View,
class Offset,
bool shared>
319 for (
int i=n;
i--; ) {