49 using namespace Channel;
57 if ((xoff < 0) || (yoff < 0))
63 if ((xoff < 2) && (yoff < 2) && (xoff == yoff)) {
65 DomInfo<IntView,NoOffset<IntView> >* di =
66 static_cast<Space&
>(home).
68 for (
int i=n;
i--; ) {
69 di[xoff+
i ].init(x[
i],n+xoff);
70 di[2*xoff+i+n].init(y[i],n+xoff);
74 di[0].init(x0, n+xoff);
76 di[n+xoff].init(y0, n+xoff);
81 ::
post(home,n+xoff,di,noff,noff)));
84 ::
post(home,n+xoff,di,noff,noff)));
87 ValInfo<IntView>* vi =
88 static_cast<Space&
>(home).alloc<ValInfo<IntView> >(2*(n+xoff));
89 for (
int i=n;
i--; ) {
90 vi[xoff+
i ].init(x[
i],n+xoff);
91 vi[2*xoff+i+n].init(y[i],n+xoff);
95 vi[0].init(x0, n+xoff);
97 vi[n+xoff].init(y0, n+xoff);
100 if (x.
same(home,y)) {
102 ::
post(home,n+xoff,vi,noff,noff)));
105 ::
post(home,n+xoff,vi,noff,noff)));
110 DomInfo<IntView,Offset>* di =
111 static_cast<Space&
>(home).alloc<DomInfo<IntView,Offset> >(2*n);
112 for (
int i=n;
i--; ) {
114 di[i+n].init(y[i],n);
118 if (x.
same(home,y)) {
120 ::
post(home,n,di,ox,oy)));
123 ::
post(home,n,di,ox,oy)));
126 ValInfo<IntView>* vi =
127 static_cast<Space&
>(home).alloc<ValInfo<IntView> >(2*n);
128 for (
int i=n;
i--; ) {
130 vi[i+n].init(y[i],n);
134 if (x.
same(home,y)) {
136 ::
post(home,n,vi,ox,oy)));
139 ::
post(home,n,vi,ox,oy)));
149 channel(home, x, 0, y, 0, icl);
154 if (home.
failed())
return;
165 if (home.
failed())
return;