Changeset 41387 for branches/eam_branches/relphot.20200519/src/liststats.c
- Timestamp:
- Jul 7, 2020, 9:30:05 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/relphot.20200519/src/liststats.c
r40291 r41387 172 172 for (i = ks; i < ke; i++) { 173 173 M = SQ (value[i] - Mo); 174 dM = SQ (dvalue[i]); 175 X2 += M / dM; 174 if (dvalue) { 175 dM = SQ (dvalue[i]); 176 X2 += M / dM; 177 } 176 178 dS += M; 177 179 } 178 X2 = X2 / (Nm - 1);180 X2 = dvalue ? X2 / (Nm - 1) : NAN; 179 181 dS = sqrt (dS / (Nm - 1)); 180 182 … … 187 189 return (TRUE); 188 190 } 191 192 int liststats_fit1d (double *value, double *err, double *x, int Npts, StatType *stats, double *dk) { 193 194 double M = 0.0, MZ = 0.0, Z1 = 0.0, Z2 = 0.0, R = 0.0; 195 196 for (int i = 0; i < Npts; i++) { 197 double wt = 1.0 / (err[i]*err[i]); 198 double V = value[i]; 199 double Z = x[i]; 200 M += V * wt; 201 MZ += V*Z * wt; 202 Z1 += Z * wt; 203 Z2 += Z*Z * wt; 204 R += 1.0 * wt; 205 } 206 207 double DetInv = (R*Z2 - Z1*Z1); 208 double Det = (fabs(DetInv) < -1e6) ? 0.0 : 1.0 / DetInv; // do not allow unstable solutions 209 210 double zp = (M*Z2 - Z1*MZ)*Det; 211 *dk = (MZ*R - M*Z1)*Det; 212 213 stats->mean = zp; 214 stats->chisq = NAN; 215 return TRUE; 216 } 217 189 218 190 219 // These should probably be tunable:
Note:
See TracChangeset
for help on using the changeset viewer.
