2 ***********************************************************
3 $SNARK_Header: S N A R K 1 4 - A PICTURE RECONSTRUCTION PROGRAM $
4 $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/unkps.cpp $
5 $LastChangedRevision: 122 $
6 $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
8 ***********************************************************
20 void unkps( INTEGER imax, INTEGER istep, REAL* xs, REAL* x, INTEGER m, INTEGER nipf, INTEGER krad, INTEGER mc, INTEGER ir, INTEGER n, INTEGER* ix, INTEGER* ipu, INTEGER nfixp, INTEGER k4m4, BOOLEAN virt)
60 dovirt = virt && (istep > 1);
62 if ((md4 == 0) && (nipf < 2))
71 for (i = 0; i < md4; i++)
73 for (j = 1; j <= jlim; j++)
78 for (jl = 0; jl < kradm; jl++)
82 ix[js] = ix[j - 1] + inc;
94 for (kp = 0; kp < k4m4; kp++)
106 for (l = 0; l < imax; l++)
109 CA(xs, 0, l)= CA(x, 0, ind);
110 CA(xs, 1, l)= CA(x, 1, ind);
122 for (l = 0; l < imax; l++)
126 CA(x, 0, ind)= CA(x, 0, ind2);
127 CA(x, 1, ind)= CA(x, 1, ind2);
134 } while (ipu[ju] != 0);
138 for (l = 0; l < imax; l++)
141 CA(x, 0, ind)= CA(xs, 0, l);
142 CA(x, 1, ind)= CA(xs, 1, l);
147 } while (ipu[ju] < n);
156 for (ku = 0; ku < kumx; ku++)
159 for (kv = kvmn; kv < k4m4; kv++)
167 for (inc = 0; inc < k4mxm1; inc += k4minc)
178 for (l = 0; l < imax; l++)
183 CA(xs, 0, l)= CA(x, 0, kp1xx);
184 CA(xs, 1, l)= CA(x, 1, kp1xx);
186 CA(x, 0, kp1xx)= CA(x, 0, kp2xx);
187 CA(x, 1, kp1xx)= CA(x, 1, kp2xx);
189 CA(x, 0, kp2xx)= CA(xs, 0, l);
190 CA(x, 1, kp2xx)= CA(xs, 1, l);
194 // code below is not tested !!! mk
195 // after some correction it seems to work - Laszlo
203 for (ju = 0; ju < nfixp; ju++)
214 for (l = 0; l < imax; l++)
219 CA(xs, 0, l)= CA(x, 0, kp1x);
220 CA(xs, 1, l)= CA(x, 1, kp1x);
223 CA(x, 0, kp1x)= CA(x, 0, kp2x);
224 CA(x, 1, kp1x)= CA(x, 1, kp2x);
226 CA(x, 0, kp2x)= CA(xs, 0, l);
227 CA(x, 1, kp2x)= CA(xs, 1, l);
244 for(l = 0; l < imax; l++)
247 CA(xs, 0, l) = CA(x, 0, ind);
248 CA(xs, 1, l) = CA(x, 1, ind);
259 if(kpl == 1) inx = kp2 + ipu[ju];
260 if(kpl == 0) inx = kp1 + ipu[ju];
268 for(l = 0; l < imax; l++)
274 CA(x, 0, ind) = CA(x, 0, ind2);
275 CA(x, 1, ind) = CA(x, 1, ind2);
282 }while(ipu[ju] != 0);
284 if(kount == 2) goto L12;
294 for(l = 0; l < imax; l++)
298 CA(x, 0, ind) = CA(xs, 0, l);
299 CA(x, 1, ind) = CA(xs, 1, l);
309 for(l = 0; l < imax; l++)
313 CA(x, 0, ind) = CA(xs, 0, l);
314 CA(x, 1, ind) = CA(xs, 1, l);