Changeset 20936 for trunk/Ohana/src/opihi/cmd.data/interpolate.c
- Timestamp:
- Dec 7, 2008, 3:31:01 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/cmd.data/interpolate.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/cmd.data/interpolate.c
r7917 r20936 21 21 if ((yout = SelectVector (argv[4], ANYVECTOR, TRUE)) == NULL) return (FALSE); 22 22 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); 25 27 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]; 30 32 31 33 /* in vectors are sorted, out vectors are not */ 32 34 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]; 38 40 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; 41 43 } 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; 44 46 } 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; 47 49 } 48 50 }
Note:
See TracChangeset
for help on using the changeset viewer.
