- Timestamp:
- Nov 9, 2015, 2:46:18 PM (11 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/cmd.astro/fitpm_irls.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/cmd.astro/fitpm_irls.c
r38650 r39086 19 19 int FitPMonly_IRLS (PMFit_IRLS *fit, double *X, double *dX, double *Y, double *dY, double *T, int Npts, int VERBOSE); 20 20 int IRLS_converged (PMFit_IRLS *fit); 21 int weighted_LS (double *T, double *X, double *WX, double *Y, double *WY, int Npts, 22 double **A, double **B, int VERBOSE); 23 double weight_cauchy (double x); 24 double dpsi_cauchy (double x); 25 double MAD(double *in, int N); 26 21 27 22 28 int fitpm_irls (int argc, char **argv) { … … 161 167 int FitPMonly_IRLS (PMFit_IRLS *fit, double *X, double *dX, double *Y, double *dY, double *T, int Npts, int VERBOSE) { 162 168 163 int i ;169 int i,j; 164 170 165 171 static double **A, **B; … … 171 177 double *Beta, *Beta_prev; 172 178 173 double sigma_ robust, sigma_ols, sigma_final, sigma_hat;179 double sigma_ols, sigma_hat; 174 180 double *Wx, *Wy; 175 181 double *rx, *ry; 176 double *ux, *uy; 182 // double *ux, *uy; 183 double *u; 177 184 int dof = 2 * Npts - 4; 178 185 int p = 4; 179 186 int n = 2 * Npts; 180 187 double tolerance; 181 int converge nce;188 int converged; 182 189 int iterations; 183 190 … … 324 331 by /= 1.0 * (Npts - p); 325 332 326 sigma_robust_x = lamb a * sqrt(bx) * sigma_hat * 2.385 / ax;327 sigma_robust_y = lamb a * sqrt(by) * sigma_hat * 2.385 / ay;333 sigma_robust_x = lambda * sqrt(bx) * sigma_hat * 2.385 / ax; 334 sigma_robust_y = lambda * sqrt(by) * sigma_hat * 2.385 / ay; 328 335 329 336 // This is actually sigma^2, as that's the factor in the covariance (dumouchel 4.1) 330 sigma_final_x = fmax(SQ(sigma_robust_x), (n * SQ(sigma_robust_x) + SQ(p * sigma_OLS)) / (n + SQ(p)));331 sigma_final_y = fmax(SQ(sigma_robust_y), (n * SQ(sigma_robust_y) + SQ(p * sigma_OLS)) / (n + SQ(p)));337 sigma_final_x = MAX(SQ(sigma_robust_x), (n * SQ(sigma_robust_x) + SQ(p * sigma_ols)) / (n + SQ(p))); 338 sigma_final_y = MAX(SQ(sigma_robust_y), (n * SQ(sigma_robust_y) + SQ(p * sigma_ols)) / (n + SQ(p))); 332 339 333 340 for (i = 0; i < 4; i++) { … … 337 344 Cov[i][j] *= sigma_final_x; 338 345 } 339 els if ((i > 1)&&(j > 1)) { // Lower portion346 else if ((i > 1)&&(j > 1)) { // Lower portion 340 347 Cov[i][j] *= sigma_final_y; 341 348 } … … 475 482 if (VERBOSE) fprintf (stderr, "error in fit\n"); 476 483 if (VERBOSE == 2) { 477 int j;478 484 for (i = 0; i < 4; i++) { 479 485 for (j = 0; j < 4; j++) {
Note:
See TracChangeset
for help on using the changeset viewer.
