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_resedu.cpp $
5 $LastChangedRevision: 89 $
6 $Date: 2014-07-02 17:24:53 -0400 (Wed, 02 Jul 2014) $
8 ***********************************************************
10 X IS THE RECONSTRUCTED PICTURE
12 (A) R = SA*C**T*M#*A*(M*X-P)+(SB*C**T*B**L+SC*C**(T-1))*(X-XBAR)
14 W IS TEMPORARY STORAGE VECTOR
16 IF T IS ODD OR DELTA CONSTANT WITH AOPT=1 THEN:
21 (B) R = M#*A*(M*X-P) AND FOR CONSTANT DELTA AND AOPT=1
26 1. R=SA*M#*A*(M*X-P) SAME
46 void quad_class::resedu(REAL* x, REAL* r, REAL* w, REAL* d, INTEGER* list,
47 REAL* weight, REAL* f, REAL* s)
65 mtamxp(x, r, list, weight);
70 // IF DELTA IS NOT CONSTAT OR AOPT NOT 1 RETURN
72 if ((bopt > 2) || (aopt != 1))
78 for (i = 0; i < area; i++)
94 for (i = 0; i < area; i++)
101 for (i = 0; i < area; i++)
114 adsmos(w, l, bw1, bw2, bw3, bbcon);
118 badsmos(w, l, bw1, bw2, bbcon);
122 for (i = 0; i < area; i++)
133 adsmos(r, t, cw1, cw2, cw3, cbcon);
137 badsmos(r, t, cw1, cw2, cbcon);
141 if (sc > Consts.zero)
149 for (i = 0; i < area; i++)
157 for (i = 0; i < area; i++)
165 if ((t - 1 > 0) && (copt != 5))
169 adsmos(w, t - 1, cw1, cw2, cw3, cbcon);
173 badsmos(w, t - 1, cw1, cw2, cbcon);
179 for (i = 0; i < area; i++)
185 // FOR ONE STEP METHOD WITH DIRECT COMPUTATION OF RESIDUE
186 // WHICH DO NOT USE DELTAC OR DELTAD COMPUTE THE CORRECTING VECTOR
187 // MODIFY BY THE SPLITTING
189 if ((aopt != 1) || (bopt >= 3) || (gopt == 0))
193 for (i = 0; i < area; i++)
202 adsmos(r, t, cw1, cw2, cw3, cbcon);
206 badsmos(r, t, cw1, cw2, cbcon);