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/mrq2dmin.c

    r16059 r20936  
    99# define VERY_VERBOSE 0
    1010
    11 static float **alpha, **talpha;
    12 static float **beta, **tbeta;
    13 static float *partry, *dyda;
    14 static float ochisq, lambda;
    15 
    16 static float *parmin = NULL;
    17 static float *parmax = NULL;
    18 
    19 float mrq2dcof (float *x, float *t, float *y, float *dy, int Npts,
    20               float *par, int Npar, float **ta, float **tb,
    21               float (funcs)(float, float, float *, int, float *)) {
     11static opihi_flt **alpha, **talpha;
     12static opihi_flt **beta, **tbeta;
     13static opihi_flt *partry, *dyda;
     14static opihi_flt ochisq, lambda;
     15
     16static opihi_flt *parmin = NULL;
     17static opihi_flt *parmax = NULL;
     18
     19opihi_flt mrq2dcof (opihi_flt *x, opihi_flt *t, opihi_flt *y, opihi_flt *dy, int Npts,
     20              opihi_flt *par, int Npar, opihi_flt **ta, opihi_flt **tb,
     21              opihi_flt (funcs)(opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *)) {
    2222
    2323  int k, j, i;
    24   float ydiff, wt, chisq;
     24  opihi_flt ydiff, wt, chisq;
    2525
    2626  for (j = 0; j < Npar; j++) {
     
    6060}
    6161
    62 float 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 i;
    67   float ydiff, chisq;
     62opihi_flt mrq2dchi (opihi_flt *x, opihi_flt *t, opihi_flt *y, opihi_flt *dy, int Npts,
     63                opihi_flt *par, int Npar,
     64                opihi_flt (funcs)(opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *)) {
     65
     66  int i;
     67  opihi_flt ydiff, chisq;
    6868
    6969  chisq = 0.0;
     
    7575}
    7676
    77 float mrq2dmin (float *x, float *t, float *y, float *dy, int Npts,
    78               float *par, int Npar,
    79               float (funcs)(float, float, float *, int, float *), int VERBOSE) {
     77opihi_flt mrq2dmin (opihi_flt *x, opihi_flt *t, opihi_flt *y, opihi_flt *dy, int Npts,
     78              opihi_flt *par, int Npar,
     79              opihi_flt (funcs)(opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *), int VERBOSE) {
    8080
    8181  int j, k;
    82   float chisq;
     82  opihi_flt chisq;
    8383
    8484  /* set up test matrixes for this run */
     
    9090
    9191  /* keep this test in here? */
    92   if (!fgaussjordan (talpha, tbeta, Npar, 1)) {
     92  if (!dgaussjordan (talpha, tbeta, Npar, 1)) {
    9393    lambda *= 10.0;
    9494    return (ochisq);
     
    131131}
    132132
    133 int mrq2dlimits (float *pmin, float *pmax, int Npar) {
    134 
    135   int i;
    136 
    137   ALLOCATE (parmin, float, Npar);
    138   ALLOCATE (parmax, float, Npar);
     133int mrq2dlimits (opihi_flt *pmin, opihi_flt *pmax, int Npar) {
     134
     135  int i;
     136
     137  ALLOCATE (parmin, opihi_flt, Npar);
     138  ALLOCATE (parmax, opihi_flt, Npar);
    139139  for (i = 0; i < Npar; i++) {
    140140    parmin[i] = pmin[i];
     
    144144}
    145145
    146 float mrq2dinit (float *x, float *t, float *y, float *dy, int Npts,
    147               float *par, int Npar,
    148               float (funcs)(float, float, float *, int, float *), int VERBOSE) {
    149 
    150   int i;
    151 
    152   ALLOCATE (dyda, float, Npar);
    153   ALLOCATE (partry, float, Npar);
    154   ALLOCATE (alpha, float *, Npar);
    155   ALLOCATE (beta, float *, Npar);
    156   ALLOCATE (talpha, float *, Npar);
    157   ALLOCATE (tbeta, float *, Npar);
     146opihi_flt mrq2dinit (opihi_flt *x, opihi_flt *t, opihi_flt *y, opihi_flt *dy, int Npts,
     147              opihi_flt *par, int Npar,
     148              opihi_flt (funcs)(opihi_flt, opihi_flt, opihi_flt *, int, opihi_flt *), int VERBOSE) {
     149
     150  int i;
     151
     152  ALLOCATE (dyda, opihi_flt, Npar);
     153  ALLOCATE (partry, opihi_flt, Npar);
     154  ALLOCATE (alpha, opihi_flt *, Npar);
     155  ALLOCATE (beta, opihi_flt *, Npar);
     156  ALLOCATE (talpha, opihi_flt *, Npar);
     157  ALLOCATE (tbeta, opihi_flt *, Npar);
    158158  for (i = 0; i < Npar; i++) {
    159     ALLOCATE (alpha[i], float, Npar);
    160     ALLOCATE (beta[i], float, Npar);
    161     ALLOCATE (talpha[i], float, Npar);
    162     ALLOCATE (tbeta[i], float, Npar);
     159    ALLOCATE (alpha[i], opihi_flt, Npar);
     160    ALLOCATE (beta[i], opihi_flt, Npar);
     161    ALLOCATE (talpha[i], opihi_flt, Npar);
     162    ALLOCATE (tbeta[i], opihi_flt, Npar);
    163163  }
    164164
     
    181181
    182182/* don't invoke this in the middle of a run, only near the end */
    183 float **mrq2dcovar (int Npar) {
    184 
    185   fgaussjordan (alpha, beta, Npar, 1);
     183opihi_flt **mrq2dcovar (int Npar) {
     184
     185  dgaussjordan (alpha, beta, Npar, 1);
    186186  return (alpha);
    187187
Note: See TracChangeset for help on using the changeset viewer.