IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 28, 2004, 8:40:04 PM (22 years ago)
Author:
eugene
Message:

fixes for -Wall -Werror (mostly get_argument lines)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/lib.data/mrq2dmin.c

    r2598 r2843  
    22
    33/* need to pass in a function of the form:
    4 
    5    funcs (x, t, a, Npar, dyda)
    6 
    7    returns f (x, t) for Npar parameters a, also df/da at x,t
    8 
     4   funcs (x, t, a, Npar, dy/da)
     5   returns y (x,t) for Npar parameters a along with dy/da at (x,t)
    96   dy carries 1/sig^2
    10 
    117*/
    128
     
    2117
    2218  int k, j, i;
    23   float ydiff, wt, chisq, value;
     19  float ydiff, wt, chisq;
    2420
    2521  for (j = 0; j < Npar; j++) {
     
    3228
    3329    ydiff = funcs (x[i], t[i], par, Npar, dyda) - y[i];
    34     value = SQ(ydiff) * fabs(dy[i]);
    35     if (value < 0.0) fprintf (stderr, "neg chi: %f %f\n", value, chisq);
    36     chisq += value;
     30    chisq += SQ(ydiff) * dy[i];
    3731   
    38     if (!finite (dyda[i])) { dyda[i] = 1e10; }
    39     if (!finite (dy[i])) { dyda[i] = 1e10; }
    40 
    4132    for (j = 0; j < Npar; j++) {
    4233      wt = dyda[j] * dy[i];
     
    5647float mrq2dmin (float *x, float *t, float *y, float *dy, int Npts,
    5748              float *par, int Npar,
    58               float (funcs)(float, float, float *, int, float *)) {
     49              float (funcs)(float, float, float *, int, float *), int VERBOSE) {
    5950
    6051  int j, k;
     
    6859  }
    6960
     61  /* keep this test in here? */
    7062  if (!fgaussj (talpha, Npar, tbeta, 1)) {
    7163    lambda *= 10.0;
     
    7365  }
    7466
    75   /* if we keep some fixed, set partry to just them
    76      for (j = 0; j < Npar; j++) partry[j] = par[j]; */
    77 
    7867  for (j = 0; j < Npar; j++) partry[j] = par[j] - tbeta[j][0];
    7968
    8069  chisq = mrq2dcof (x, t, y, dy, Npts, partry, Npar, talpha, tbeta, funcs);
     70  if (VERBOSE) {
     71    fprintf (stderr, "chisq: %f  ", chisq);
     72    fprintf (stderr, "lambda: %f  ", lambda);
     73    for (j = 0; j < Npar; j++) {
     74      fprintf (stderr, "%f ", partry[j]);
     75    }
     76    fprintf (stderr, "\n");
     77  }
    8178
    8279  /* if good, save temp values */
     
    10097float mrq2dinit (float *x, float *t, float *y, float *dy, int Npts,
    10198              float *par, int Npar,
    102               float (funcs)(float, float, float *, int, float *)) {
     99              float (funcs)(float, float, float *, int, float *), int VERBOSE) {
    103100
    104101  int i;
     
    121118 
    122119  ochisq = mrq2dcof (x, t, y, dy, Npts, par, Npar, alpha, beta, funcs);
     120  if (VERBOSE) {
     121    fprintf (stderr, "chisq: %f  ", ochisq);
     122    fprintf (stderr, "lambda: %f  ", lambda);
     123    for (i = 0; i < Npar; i++) {
     124      fprintf (stderr, "%f ", par[i]);
     125    }
     126    fprintf (stderr, "\n");
     127  }
    123128
    124129  return (ochisq);
Note: See TracChangeset for help on using the changeset viewer.