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/errfac.cpp $
5 $LastChangedRevision: 85 $
6 $Date: 2014-07-02 16:07:08 -0400 (Wed, 02 Jul 2014) $
8 ***********************************************************
10 THIS ROUTINE ESTIMATES THE VARIANCE IN THE PROJECTION DATA
21 REAL errfac(REAL prdta, REAL rinc, REAL rinc2)
34 // ADDITIVE NOISE ONLY
36 errfac_tmp = Err.afactr;
39 // MULTIPLICATIVE NOISE ONLY
41 errfac_tmp = Err.mfactr * prdta * prdta;
44 // ADDITIVE AND MULTIPLICATIVE NOISE
46 errfac_tmp = Err.mfactr * prdta * prdta + Err.afactr;
49 // QUANTUM NOISE (LINE)
51 errfac_tmp = Err.af + Err.bf * (REAL) exp(prdta);
54 // QUANTUM (LINE) AND ADDITIVE NOISE
56 errfac_tmp = Err.af + Err.bf * (REAL) exp(prdta) + Err.afactr;
59 // QUANTUM (LINE) AND MULTIPLICATIVE NOISE
61 errfac_tmp = Err.af + Err.bf * (REAL) exp(prdta);
62 errfac_tmp = errfac_tmp + Err.mfactr * prdta * prdta;
65 // QUANTUM (LINE) MULTIPLICATIVE AND ADDITIVE NOISE
67 errfac_tmp = Err.af + Err.bf * (REAL) exp(prdta);
68 errfac_tmp = errfac_tmp + Err.mfactr * prdta * prdta + Err.afactr;
71 // QUANTUM (STRIP) NOISE
74 errfac_tmp = (Err.af + Err.bf * (REAL) exp(prdta)) * rinc2;
77 // QUANTUM (STRIP) AND ADDITIVE NOISE
80 errfac_tmp = (Err.af + Err.bf * (REAL) exp(prdta)) * rinc2 + Err.afactr;
83 // QUANTUM (STRIP) AND MULTIPLICATIVE NOISE
86 errfac_tmp = (Err.af + Err.bf * (REAL) exp(temp)) * rinc2
87 + Err.mfactr * prdta * prdta;
90 // QUANTUM (STRIP) MULTIPLICATIVE AND ADDITIVE NOISE
93 errfac_tmp = (Err.af + Err.bf * (REAL) exp(temp)) * rinc2
94 + Err.mfactr * prdta * prdta + Err.afactr;
98 return MAX0(errfac_tmp, Err.minprd);;