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/cmd.data/fit2d.c

    r16059 r20936  
    77  int k, K, i, j, n, Npt, Nmask, nx, ny, nterm, mterm, wterm, order;
    88  int N, Weight, Quiet, ClipNiter, VERBOSE;
    9   float *x, *y, *z, *dz, *zfit, *zf;
     9  opihi_flt *x, *y, *z, *dz, *zfit, *zf;
    1010  char name[64], *mask;
    1111  Vector *xvec, *yvec, *zvec, *dzvec;
     
    6464    return (FALSE);
    6565  }
    66   if (Weight && xvec[0].Nelements != dzvec[0].Nelements) {
    67     gprint (GP_ERR, "vectors must have same length\n");
    68     return (FALSE);
     66  REQUIRE_VECTOR_FLT (xvec, FALSE);
     67  REQUIRE_VECTOR_FLT (yvec, FALSE);
     68  REQUIRE_VECTOR_FLT (zvec, FALSE);
     69
     70  if (Weight) {
     71    REQUIRE_VECTOR_FLT (dzvec, FALSE);
     72    if (xvec[0].Nelements != dzvec[0].Nelements) {
     73      gprint (GP_ERR, "vectors must have same length\n");
     74      return (FALSE);
     75    }
    6976  }
    7077 
     
    7481  mterm = 2*order + 1;
    7582
    76   ALLOCATE (zfit, float, xvec[0].Nelements);
     83  ALLOCATE (zfit, opihi_flt, xvec[0].Nelements);
    7784  ALLOCATE (mask, char, xvec[0].Nelements);
    7885  memset (mask, 0, xvec[0].Nelements);
     
    102109    }
    103110
    104     x = xvec[0].elements;
    105     y = yvec[0].elements;
    106     z = zvec[0].elements;
    107     if (Weight) dz = dzvec[0].elements;
     111    x = xvec[0].elements.Flt;
     112    y = yvec[0].elements.Flt;
     113    z = zvec[0].elements.Flt;
     114    if (Weight) dz = dzvec[0].elements.Flt;
    108115
    109116    /* add up the x,y values */
     
    128135
    129136    /* add up the z values */
    130     x = xvec[0].elements;
    131     y = yvec[0].elements;
    132     z = zvec[0].elements;
     137    x = xvec[0].elements.Flt;
     138    y = yvec[0].elements.Flt;
     139    z = zvec[0].elements.Flt;
    133140    for (i = 0; i < xvec[0].Nelements; i++, x++, y++, z++) {
    134141      if (mask[i]) continue;
     
    179186    */
    180187    /* generate fitted values */
    181     x = xvec[0].elements;
    182     y = yvec[0].elements;
     188    x = xvec[0].elements.Flt;
     189    y = yvec[0].elements.Flt;
    183190    zf = zfit;
    184191    for (n = 0; n < xvec[0].Nelements; n++, x++, y++, zf++) {
     
    197204
    198205    /* measure fit residual scatter */
    199     x  = xvec[0].elements;
    200     y  = yvec[0].elements;
    201     z  = zvec[0].elements;
     206    x  = xvec[0].elements.Flt;
     207    y  = yvec[0].elements.Flt;
     208    z  = zvec[0].elements.Flt;
    202209    zf = zfit;
    203210    dZ = dZ2 = 0;
     
    216223
    217224    /* mask outlier points */
    218     x  = xvec[0].elements;
    219     y  = yvec[0].elements;
    220     z  = zvec[0].elements;
     225    x  = xvec[0].elements.Flt;
     226    y  = yvec[0].elements.Flt;
     227    z  = zvec[0].elements.Flt;
    221228    zf = zfit;
    222229    Nmask = 0;
Note: See TracChangeset for help on using the changeset viewer.