Changeset 8886 for trunk/psModules/src/detrend/pmShutterCorrection.c
- Timestamp:
- Sep 22, 2006, 11:35:34 AM (20 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/detrend/pmShutterCorrection.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/detrend/pmShutterCorrection.c
r8884 r8886 61 61 62 62 #include "pmShutterCorrection.h" 63 #include "psVectorBracket.h" 63 64 64 65 static void pmShutterCorrParsFree (pmShutterCorrPars *pars) … … 89 90 90 91 pmShutterCorrPars *pars = pmShutterCorrParsAlloc (); 91 92 N = exptime->n; 92 psPolynomial1D *line = psPolynomial1DAlloc (PS_POLYNOMIAL_ORD, 1); 93 94 int N = exptime->n; 93 95 // ASSERT (N >> 5) 94 96 … … 111 113 112 114 // fit a line and extrapolate the fit to 0.0 113 psPolynomial1D *line = psPolynomial1DAlloc (PS_POLYNOMIAL_ORD, 1); 114 line = psVectorFitPolynomial1D (line, NULL, 0, tmpY, NULL, tmpX); 115 ratio = psPolynomial1DEval (line, 0.0) / pars->scale; 115 psVectorFitPolynomial1D (line, NULL, 0, tmpY, NULL, tmpX); 116 float ratio = psPolynomial1DEval (line, 0.0) / pars->scale; 116 117 117 118 // XXX we need a sanity check: … … 122 123 123 124 // find two points bracketing the value counts = A (1 + dTk/dTo) / 2 = pars->scale (1 + ratio) / 2 124 value = pars->scale * (1 + ratio) / 2.0;125 126 Nm = psVectorBracket (exptime, value, (ratio < 1.0));127 Np = (Nm == N - 1) ? Nm - 1 : Nm + 1;125 float value = pars->scale * (1 + ratio) / 2.0; 126 127 int Nm = psVectorBracket (exptime, value, (ratio < 1.0)); 128 int Np = (Nm == N - 1) ? Nm - 1 : Nm + 1; 128 129 129 130 tmpX->data.F64[0] = counts->data.F64[Nm]; … … 133 134 134 135 // fit a line and extrapolate the fit to counts = A (1 + dTk/dTo) : exptime = dTo 135 psPolynomial1D *line = psPolynomial1DAlloc (PS_POLYNOMIAL_ORD, 1);136 136 line = psVectorFitPolynomial1D (line, NULL, 0, tmpY, NULL, tmpX); 137 137 pars->offref = psPolynomial1DEval (line, value); … … 154 154 155 155 for (int i = 0; i < exptime->n; i++) { 156 value = 1.0 / (exptime->data.F32[i] + offref);156 float value = 1.0 / (exptime->data.F32[i] + offref); 157 157 x->data.F32[i] = exptime->data.F32[i] * value; 158 158 y->data.F32[i] = value; … … 171 171 pmShutterCorrPars *pars = pmShutterCorrParsAlloc (); 172 172 173 pars->offref = guess->offref;173 pars->offref = offref; 174 174 pars->scale = line->coeff[1][0]; 175 175 pars->offset = line->coeff[0][1] / line->coeff[1][0]; … … 235 235 } 236 236 237 fitStatus =psMinimizeLMChi2(myMin, covar, params, constrain, x, y, yErr, pmShutterCorrectionModel);237 psMinimizeLMChi2(myMin, covar, params, constrain, x, y, yErr, pmShutterCorrectionModel); 238 238 239 239 pmShutterCorrPars *pars = pmShutterCorrParsAlloc ();
Note:
See TracChangeset
for help on using the changeset viewer.
