Changeset 4303
- Timestamp:
- Jun 17, 2005, 12:18:56 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/cmd.data/vgauss.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/cmd.data/vgauss.c
r2844 r4303 14 14 int vgauss (int argc, char **argv) { 15 15 16 int i, N pts, Npar;16 int i, N, Npts, Npar, Quiet; 17 17 float par[4], *v1, *v2, *dy, **covar; 18 18 float chisq, ochisq, dchisq; … … 20 20 char *c, name[16]; 21 21 22 Quiet = FALSE; 23 if ((N = get_argument (argc, argv, "-q"))) { 24 Quiet = TRUE; 25 remove_argument (N, &argc, argv); 26 } 27 if ((N = get_argument (argc, argv, "-quiet"))) { 28 Quiet = TRUE; 29 remove_argument (N, &argc, argv); 30 } 31 22 32 if (argc != 5) { 23 33 fprintf (stderr, "USAGE: vgauss <x> <y> <dy> (out)\n"); 34 fprintf (stderr, " uses guesses: C0 (mean), C1 (sigma), C2 (norm), C3 (sky)\n"); 24 35 return (FALSE); 25 36 } … … 46 57 for (i = 0; i < Npts; i++, v1++, v2++) *v2 = 1.0 / (*v1 * *v1); 47 58 48 ochisq = mrqinit (xvec[0].elements, yvec[0].elements, dy, Npts, par, Npar, fgaussOD, TRUE);49 dchisq = ochisq ;59 ochisq = mrqinit (xvec[0].elements, yvec[0].elements, dy, Npts, par, Npar, fgaussOD, !Quiet); 60 dchisq = ochisq + 2*Npts; 50 61 51 for (i = 0; (i < 20) && ((dchisq > (Npts - Npar)) || (dchisq <= 0.0)); i++) {52 chisq = mrqmin (xvec[0].elements, yvec[0].elements, dy, Npts, par, Npar, fgaussOD, TRUE);62 for (i = 0; (i < 20) && ((dchisq > 0.1*(Npts - Npar)) || (dchisq <= 0.0)); i++) { 63 chisq = mrqmin (xvec[0].elements, yvec[0].elements, dy, Npts, par, Npar, fgaussOD, !Quiet); 53 64 dchisq = ochisq - chisq; 54 65 ochisq = chisq; 55 fprintf (stderr, "dchisq: %f, Ndof: %d\n", dchisq, Npts - Npar);66 if (!Quiet) fprintf (stderr, "dchisq: %f, Ndof: %d\n", dchisq, Npts - Npar); 56 67 } 68 if (!Quiet) fprintf (stderr, "%d iterations\n", i); 57 69 58 70 for (i = 0; i < Npts; i++) { … … 67 79 sprintf (name, "C%d", i); 68 80 set_variable (name, par[i]); 69 fprintf (stderr, "%d %f %f\n", i, par[i], covar[i][i]); 81 if (!Quiet) fprintf (stderr, "%d %f %f\n", i, par[i], sqrt(covar[i][i])); 82 sprintf (name, "dC%d", i); 83 set_variable (name, sqrt(covar[i][i])); 70 84 } 71 85
Note:
See TracChangeset
for help on using the changeset viewer.
