Index: trunk/Ohana/src/opihi/cmd.data/lookup.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/lookup.c	(revision 7952)
+++ trunk/Ohana/src/opihi/cmd.data/lookup.c	(revision 20936)
@@ -4,5 +4,5 @@
   
   int i, j;
-  float *ip, *op, *xp, *yp;
+  opihi_flt *ip, *op, *xp, *yp;
   Vector *in, *out, *xv, *yv;
 
@@ -17,4 +17,8 @@
   if ((yv  = SelectVector (argv[4], OLDVECTOR, TRUE)) == NULL) return (FALSE);
 
+  REQUIRE_VECTOR_FLT (in, FALSE); 
+  REQUIRE_VECTOR_FLT (xv, FALSE); 
+  REQUIRE_VECTOR_FLT (yv, FALSE); 
+
   if (xv[0].Nelements != yv[0].Nelements) {
       gprint (GP_ERR, "unmatched lookup table lengths\n");
@@ -22,14 +26,13 @@
   }
 
-  out[0].Nelements = in[0].Nelements;
-  REALLOCATE (out[0].elements, float, out[0].Nelements);
+  ResetVector (out, OPIHI_FLT, in[0].Nelements);
 
-  ip = in[0].elements;
-  op = out[0].elements;
+  ip = in[0].elements.Flt;
+  op = out[0].elements.Flt;
 
   for (i = 0; i < in[0].Nelements; i++, ip++, op++) {
     // re-write this using bisection
-    xp = xv[0].elements;
-    yp = yv[0].elements;
+    xp = xv[0].elements.Flt;
+    yp = yv[0].elements.Flt;
 
     for (j = 0; (*ip < *xp) && (j < yv[0].Nelements); j++);
