IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jan 8, 2005, 2:45:18 PM (22 years ago)
Author:
eugene
Message:

minor changes

File:
1 edited

Legend:

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

    r2843 r2938  
    77*/
    88
     9# define VERY_VERBOSE 0
     10
    911static float **alpha, **talpha;
    1012static float **beta, **tbeta;
    1113static float *partry, *dyda;
    1214static float ochisq, lambda;
     15
     16static float *parmin = NULL;
     17static float *parmax = NULL;
    1318
    1419float mrq2dcof (float *x, float *t, float *y, float *dy, int Npts,
     
    4146      ta[k][j] = ta[j][k];
    4247     
     48# if (VERY_VERBOSE)
     49  for (j = 0; j < Npar; j++) {
     50    for (k = 0; k < Npar; k++) {
     51      fprintf (stderr, "%9.3e  ", ta[j][k]);
     52    }
     53    fprintf (stderr, "    :   %9.3e  ", tb[j][0]);
     54    fprintf (stderr, "\n");
     55  }
     56# endif
     57
    4358  return (chisq);
    4459
     60}
     61
     62float mrq2dchi (float *x, float *t, float *y, float *dy, int Npts,
     63                float *par, int Npar,
     64                float (funcs)(float, float, float *, int, float *)) {
     65
     66  int k, j, i;
     67  float ydiff, wt, chisq;
     68
     69  chisq = 0.0;
     70  for (i = 0; i < Npts; i++) {
     71    ydiff = funcs (x[i], t[i], par, Npar, dyda) - y[i];
     72    chisq += SQ(ydiff) * dy[i];
     73  }
     74  return (chisq);
    4575}
    4676
     
    6595  }
    6696
    67   for (j = 0; j < Npar; j++) partry[j] = par[j] - tbeta[j][0];
     97  for (j = 0; j < Npar; j++) {
     98    partry[j] = par[j] - tbeta[j][0];
     99    /*
     100    if (parmin != NULL) partry[j] = MAX (parmin[j], partry[j]);
     101    if (parmax != NULL) partry[j] = MIN (parmax[j], partry[j]);
     102    */
     103  }
    68104
    69105  chisq = mrq2dcof (x, t, y, dy, Npts, partry, Npar, talpha, tbeta, funcs);
     
    93129  return (chisq);
    94130
     131}
     132
     133int mrq2dlimits (float *pmin, float *pmax, int Npar) {
     134
     135  int i;
     136
     137  ALLOCATE (parmin, float, Npar);
     138  ALLOCATE (parmax, float, Npar);
     139  for (i = 0; i < Npar; i++) {
     140    parmin[i] = pmin[i];
     141    parmax[i] = pmax[i];
     142  }
     143  return (TRUE);
    95144}
    96145
     
    156205  free (dyda);
    157206
    158 }
     207  if (parmin != NULL) free (parmin);
     208  if (parmax != NULL) free (parmax);
     209
     210}
Note: See TracChangeset for help on using the changeset viewer.