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

    r7917 r20936  
    2121  if ((yout = SelectVector (argv[4],  ANYVECTOR, TRUE)) == NULL) return (FALSE);
    2222
    23   yout[0].Nelements = xout[0].Nelements;
    24   REALLOCATE (yout[0].elements, float, yout[0].Nelements);
     23  REQUIRE_VECTOR_FLT (xin, FALSE);
     24  REQUIRE_VECTOR_FLT (yin, FALSE);
     25  REQUIRE_VECTOR_FLT (xout, FALSE);
     26  ResetVector (yout, OPIHI_FLT, xout[0].Nelements);
    2527
    26   dx = xin[0].elements[1] - xin[0].elements[0];
    27   dy = yin[0].elements[1] - yin[0].elements[0];
    28   x0 = xin[0].elements[0];
    29   y0 = yin[0].elements[0];
     28  dx = xin[0].elements.Flt[1] - xin[0].elements.Flt[0];
     29  dy = yin[0].elements.Flt[1] - yin[0].elements.Flt[0];
     30  x0 = xin[0].elements.Flt[0];
     31  y0 = yin[0].elements.Flt[0];
    3032 
    3133  /* in vectors are sorted, out vectors are not */
    3234  for (j = 0; j < xin[0].Nelements - 1; j++) {
    33     dx = xin[0].elements[j+1] - xin[0].elements[j];
    34     dy = yin[0].elements[j+1] - yin[0].elements[j];
    35     x0 = xin[0].elements[j];
    36     y0 = yin[0].elements[j];
    37     x1 = xin[0].elements[j+1];
     35    dx = xin[0].elements.Flt[j+1] - xin[0].elements.Flt[j];
     36    dy = yin[0].elements.Flt[j+1] - yin[0].elements.Flt[j];
     37    x0 = xin[0].elements.Flt[j];
     38    y0 = yin[0].elements.Flt[j];
     39    x1 = xin[0].elements.Flt[j+1];
    3840    for (i = 0; i < xout[0].Nelements; i++) {
    39       if ((xout[0].elements[i] >= x0) && (xout[0].elements[i] < x1)) {
    40         yout[0].elements[i] = (dy/dx)*(xout[0].elements[i] - x0) + y0;
     41      if ((xout[0].elements.Flt[i] >= x0) && (xout[0].elements.Flt[i] < x1)) {
     42        yout[0].elements.Flt[i] = (dy/dx)*(xout[0].elements.Flt[i] - x0) + y0;
    4143      }
    42       if ((j == 0) && (xout[0].elements[i] < x0)) {
    43         yout[0].elements[i] = (dy/dx)*(xout[0].elements[i] - x0) + y0;
     44      if ((j == 0) && (xout[0].elements.Flt[i] < x0)) {
     45        yout[0].elements.Flt[i] = (dy/dx)*(xout[0].elements.Flt[i] - x0) + y0;
    4446      }
    45       if ((j == xin[0].Nelements - 2) && (xout[0].elements[i] >= x1)) {
    46         yout[0].elements[i] = (dy/dx)*(xout[0].elements[i] - x0) + y0;
     47      if ((j == xin[0].Nelements - 2) && (xout[0].elements.Flt[i] >= x1)) {
     48        yout[0].elements.Flt[i] = (dy/dx)*(xout[0].elements.Flt[i] - x0) + y0;
    4749      }
    4850    }   
Note: See TracChangeset for help on using the changeset viewer.