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/art_bkproj.cpp $
5 $LastChangedRevision: 85 $
6 $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
8 ***********************************************************
10 CALCULATE BACKPROJECTIONS
26 void art_class::bkproj(REAL* recon, REAL diff,REAL abdiff,REAL* ibase, INTEGER np, INTEGER nr, INTEGER* list, REAL* weight, INTEGER numb, REAL snorm)
29 REAL dual; //wei, bug 266
38 //index = indexd(np, nr); //Ran, bug 266
39 dual = ArtIn.totalRays[np * GeoPar.nrays + nr];
40 change = diff - dual; //wei, bug 266
41 snorm = (REAL) 1.0 + snorm * ArtIn.snr2;
46 // index = indexd(np, nr); //Ran, bug 266
47 dual = ArtIn.totalRays[np * GeoPar.nrays + nr]; //wei, bug 266
48 a = diff + ArtIn.toler;
49 b = diff - ArtIn.toler;
51 change = MAX0(MIN0(a, dual), b);
52 ArtIn.totalRays[np * GeoPar.nrays + nr] -= change * ArtIn.relax; //wei, bug 266
58 if (abdiff <= ArtIn.toler)
63 if (abdiff >= ArtIn.toler + ArtIn.toler)
71 change = (REAL) 2.0 * (diff + ArtIn.toler); // -2*toler < diff <-toler
73 change = (REAL) 2.0 * (diff - ArtIn.toler); // toler < diff < 2* toler by wei, 8/2005
76 // ADJUST RECONSTRUCTED PICTURE
78 factor = ArtIn.relax * change / snorm;
86 ArtIn.totalRays[np * GeoPar.nrays + nr] += factor; //wei, bug 266
90 ////////// dump recon ////////////
94 //////////////////////////////////
97 artbck(recon, factor, list, weight, numb, ArtIn.thrlo, ArtIn.thrup,
98 ArtIn.cr, ArtIn.bartf, ArtIn.halfwy, ArtIn.thtol, ArtIn.art2f);