IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 25, 2008, 4:51:39 PM (18 years ago)
Author:
eugene
Message:

convert opihi vectors to double type, add option for int type as well

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branch_20081124/Ohana/src/opihi/cmd.data/interpolate.c

    r7917 r20839  
    2222
    2323  yout[0].Nelements = xout[0].Nelements;
    24   REALLOCATE (yout[0].elements, float, yout[0].Nelements);
     24  REALLOCATE (yout[0].elements.Flt, opihi_flt, yout[0].Nelements);
    2525
    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];
     26  dx = xin[0].elements.Flt[1] - xin[0].elements.Flt[0];
     27  dy = yin[0].elements.Flt[1] - yin[0].elements.Flt[0];
     28  x0 = xin[0].elements.Flt[0];
     29  y0 = yin[0].elements.Flt[0];
    3030 
    3131  /* in vectors are sorted, out vectors are not */
    3232  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];
     33    dx = xin[0].elements.Flt[j+1] - xin[0].elements.Flt[j];
     34    dy = yin[0].elements.Flt[j+1] - yin[0].elements.Flt[j];
     35    x0 = xin[0].elements.Flt[j];
     36    y0 = yin[0].elements.Flt[j];
     37    x1 = xin[0].elements.Flt[j+1];
    3838    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;
     39      if ((xout[0].elements.Flt[i] >= x0) && (xout[0].elements.Flt[i] < x1)) {
     40        yout[0].elements.Flt[i] = (dy/dx)*(xout[0].elements.Flt[i] - x0) + y0;
    4141      }
    42       if ((j == 0) && (xout[0].elements[i] < x0)) {
    43         yout[0].elements[i] = (dy/dx)*(xout[0].elements[i] - x0) + y0;
     42      if ((j == 0) && (xout[0].elements.Flt[i] < x0)) {
     43        yout[0].elements.Flt[i] = (dy/dx)*(xout[0].elements.Flt[i] - x0) + y0;
    4444      }
    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;
     45      if ((j == xin[0].Nelements - 2) && (xout[0].elements.Flt[i] >= x1)) {
     46        yout[0].elements.Flt[i] = (dy/dx)*(xout[0].elements.Flt[i] - x0) + y0;
    4747      }
    4848    }   
Note: See TracChangeset for help on using the changeset viewer.