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/quad_mtamx.cpp $
5 $LastChangedRevision: 80 $
6 $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
8 ***********************************************************
12 X AND Y MUST BE DISTINCT
30 void quad_class::mtamx(REAL* x, REAL* y, INTEGER* list, REAL* weight)
63 hex_voronoi = Consts.sqrt3 / (REAL) 2.0 * Blob.delta * Blob.delta;
67 for (i = 0; i < area; i++)
72 // FOR BETTER PERFORMANCE LINE AND STRIP MODES ARE SEPERATED
79 for (np = 0; np < GeoPar.prjnum; np++)
81 for (nr = 0; nr < GeoPar.nrays; nr++)
85 wray(np, nr, list, weight, &numb, &snorm);
89 Blob.bwray(np, nr, list, weight, &numb, &snorm);
96 for (nb = 0; nb < numb; nb++)
99 val += x[k] * weight[nb];
107 truval = Anglst.prdta(np, nr);
108 error_1 = uerror(np, nr, truval, &alg);
112 truval = Anglst.prdta(np, nr);
113 error_1 = errfac(truval, 0.0, 0.0);
119 for (nb = 0; nb < numb; nb++)
122 y[k] += val * weight[nb];
138 pix4 = sa * GeoPar.pixsiz * GeoPar.pixsiz * GeoPar.pixsiz
143 pix4 = sa * hex_voronoi * hex_voronoi;
146 for (np = 0; np < GeoPar.prjnum; np++)
148 Anglst.getang(np, &theta, &sinth, &costh);
149 if ((NoisePar.quanin > 0) && GeoPar.vri)
151 rinc = GeoPar.pinc * MAX0((REAL) fabs(costh), (REAL) fabs(sinth));
156 for (nr = 0; nr < GeoPar.nrays; nr++)
160 ray(np, nr, list, weight, &numb, &snorm);
164 Blob.bray(np, nr, list, weight, &numb, &snorm);
171 for (nb = 0; nb < numb; nb++)
182 truval = Anglst.prdta(np, nr);
183 error_1 = uerror(np, nr, truval, &alg);
188 truval = Anglst.prdta(np, nr);
189 error_1 = errfac(truval, rinc, rinc2);
193 L16: val *= pix4 / error_1;
196 for (nb = 0; nb < numb; nb++)