Index: trunk/Ohana/src/opihi/cmd.data/interpolate.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/interpolate.c	(revision 7917)
+++ trunk/Ohana/src/opihi/cmd.data/interpolate.c	(revision 20936)
@@ -21,28 +21,30 @@
   if ((yout = SelectVector (argv[4],  ANYVECTOR, TRUE)) == NULL) return (FALSE);
 
-  yout[0].Nelements = xout[0].Nelements;
-  REALLOCATE (yout[0].elements, float, yout[0].Nelements);
+  REQUIRE_VECTOR_FLT (xin, FALSE); 
+  REQUIRE_VECTOR_FLT (yin, FALSE); 
+  REQUIRE_VECTOR_FLT (xout, FALSE); 
+  ResetVector (yout, OPIHI_FLT, xout[0].Nelements);
 
-  dx = xin[0].elements[1] - xin[0].elements[0];
-  dy = yin[0].elements[1] - yin[0].elements[0];
-  x0 = xin[0].elements[0];
-  y0 = yin[0].elements[0];
+  dx = xin[0].elements.Flt[1] - xin[0].elements.Flt[0];
+  dy = yin[0].elements.Flt[1] - yin[0].elements.Flt[0];
+  x0 = xin[0].elements.Flt[0];
+  y0 = yin[0].elements.Flt[0];
   
   /* in vectors are sorted, out vectors are not */
   for (j = 0; j < xin[0].Nelements - 1; j++) {
-    dx = xin[0].elements[j+1] - xin[0].elements[j];
-    dy = yin[0].elements[j+1] - yin[0].elements[j];
-    x0 = xin[0].elements[j];
-    y0 = yin[0].elements[j];
-    x1 = xin[0].elements[j+1];
+    dx = xin[0].elements.Flt[j+1] - xin[0].elements.Flt[j];
+    dy = yin[0].elements.Flt[j+1] - yin[0].elements.Flt[j];
+    x0 = xin[0].elements.Flt[j];
+    y0 = yin[0].elements.Flt[j];
+    x1 = xin[0].elements.Flt[j+1];
     for (i = 0; i < xout[0].Nelements; i++) {
-      if ((xout[0].elements[i] >= x0) && (xout[0].elements[i] < x1)) {
-	yout[0].elements[i] = (dy/dx)*(xout[0].elements[i] - x0) + y0;
+      if ((xout[0].elements.Flt[i] >= x0) && (xout[0].elements.Flt[i] < x1)) {
+	yout[0].elements.Flt[i] = (dy/dx)*(xout[0].elements.Flt[i] - x0) + y0;
       }
-      if ((j == 0) && (xout[0].elements[i] < x0)) {
-	yout[0].elements[i] = (dy/dx)*(xout[0].elements[i] - x0) + y0;
+      if ((j == 0) && (xout[0].elements.Flt[i] < x0)) {
+	yout[0].elements.Flt[i] = (dy/dx)*(xout[0].elements.Flt[i] - x0) + y0;
       }
-      if ((j == xin[0].Nelements - 2) && (xout[0].elements[i] >= x1)) {
-	yout[0].elements[i] = (dy/dx)*(xout[0].elements[i] - x0) + y0;
+      if ((j == xin[0].Nelements - 2) && (xout[0].elements.Flt[i] >= x1)) {
+	yout[0].elements.Flt[i] = (dy/dx)*(xout[0].elements.Flt[i] - x0) + y0;
       }
     }    
