IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 7, 2008, 3:31:01 PM (18 years ago)
Author:
eugene
Message:

big update from eam_branch_20081124 with updates to Opihi math

File:
1 edited

Legend:

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

    r16059 r20936  
    77*/
    88
    9 static float **alpha, **talpha;
    10 static float **beta, **tbeta;
    11 static float *partry, *dyda;
    12 static float ochisq, lambda;
     9static opihi_flt **alpha, **talpha;
     10static opihi_flt **beta, **tbeta;
     11static opihi_flt *partry, *dyda;
     12static opihi_flt ochisq, lambda;
    1313
    14 float mrqcof (float *x, float *y, float *dy, int Npts,
    15               float *par, int Npar, float **ta, float **tb,
    16               float (funcs)(float, float *, int, float *)) {
     14opihi_flt mrqcof (opihi_flt *x, opihi_flt *y, opihi_flt *dy, int Npts,
     15              opihi_flt *par, int Npar, opihi_flt **ta, opihi_flt **tb,
     16              opihi_flt (funcs)(opihi_flt, opihi_flt *, int, opihi_flt *)) {
    1717
    1818  int k, j, i;
    19   float ydiff, wt, chisq;
     19  opihi_flt ydiff, wt, chisq;
    2020
    2121  for (j = 0; j < Npar; j++) {
     
    4545}
    4646
    47 float mrqmin (float *x, float *y, float *dy, int Npts,
    48               float *par, int Npar,
    49               float (funcs)(float, float *, int, float *), int VERBOSE) {
     47opihi_flt mrqmin (opihi_flt *x, opihi_flt *y, opihi_flt *dy, int Npts,
     48              opihi_flt *par, int Npar,
     49              opihi_flt (funcs)(opihi_flt, opihi_flt *, int, opihi_flt *), int VERBOSE) {
    5050
    5151  int j, k;
    52   float chisq;
    53   float rho, dX, dL;
     52  opihi_flt chisq;
     53  opihi_flt rho, dX, dL;
    5454
    5555  /* set up test matrixes for this run */
     
    6060  }
    6161
    62   fgaussjordan (talpha, tbeta, Npar, 1);
     62  dgaussjordan (talpha, tbeta, Npar, 1);
    6363
    6464  for (j = 0; j < Npar; j++) partry[j] = par[j] - tbeta[j][0];
     
    102102}
    103103
    104 float mrqinit (float *x, float *y, float *dy, int Npts,
    105               float *par, int Npar,
    106               float (funcs)(float, float *, int, float *), int VERBOSE) {
     104opihi_flt mrqinit (opihi_flt *x, opihi_flt *y, opihi_flt *dy, int Npts,
     105              opihi_flt *par, int Npar,
     106              opihi_flt (funcs)(opihi_flt, opihi_flt *, int, opihi_flt *), int VERBOSE) {
    107107
    108108  int i;
    109109
    110   ALLOCATE (dyda, float, Npar);
    111   ALLOCATE (partry, float, Npar);
    112   ALLOCATE (alpha, float *, Npar);
    113   ALLOCATE (beta, float *, Npar);
    114   ALLOCATE (talpha, float *, Npar);
    115   ALLOCATE (tbeta, float *, Npar);
     110  ALLOCATE (dyda, opihi_flt, Npar);
     111  ALLOCATE (partry, opihi_flt, Npar);
     112  ALLOCATE (alpha, opihi_flt *, Npar);
     113  ALLOCATE (beta, opihi_flt *, Npar);
     114  ALLOCATE (talpha, opihi_flt *, Npar);
     115  ALLOCATE (tbeta, opihi_flt *, Npar);
    116116  for (i = 0; i < Npar; i++) {
    117     ALLOCATE (alpha[i], float, Npar);
    118     ALLOCATE (beta[i], float, Npar);
    119     ALLOCATE (talpha[i], float, Npar);
    120     ALLOCATE (tbeta[i], float, Npar);
     117    ALLOCATE (alpha[i], opihi_flt, Npar);
     118    ALLOCATE (beta[i], opihi_flt, Npar);
     119    ALLOCATE (talpha[i], opihi_flt, Npar);
     120    ALLOCATE (tbeta[i], opihi_flt, Npar);
    121121  }
    122122 
     
    136136
    137137/* don't invoke this in the middle of a run, only near the end */
    138 float **mrqcovar (int Npar) {
    139   fgaussjordan (alpha, beta, Npar, 1);
     138opihi_flt **mrqcovar (int Npar) {
     139  dgaussjordan (alpha, beta, Npar, 1);
    140140  return (alpha);
    141141}
Note: See TracChangeset for help on using the changeset viewer.