Index: trunk/Ohana/src/opihi/cmd.data/applyfit.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/applyfit.c	(revision 16428)
+++ trunk/Ohana/src/opihi/cmd.data/applyfit.c	(revision 20936)
@@ -1,5 +1,3 @@
 # include "data.h"
-
-char *get_variable (char *);
 
 int applyfit (int argc, char **argv) {
@@ -8,5 +6,5 @@
   char *c, name[64];
   double *C, X;
-  float *x, *y;
+  opihi_flt *y;
   Vector *xvec, *yvec;
 
@@ -38,15 +36,26 @@
     free (c);
   }
-  yvec[0].Nelements = xvec[0].Nelements;
-  REALLOCATE (yvec[0].elements, float, yvec[0].Nelements);
-  bzero (yvec[0].elements, sizeof(float)*yvec[0].Nelements);
-  x = xvec[0].elements;
-  y = yvec[0].elements;
 
-  for (j = 0; j < xvec[0].Nelements; j++, x++, y++) {
-    X = 1;
-    for (i = 0; i < order + 1; i++) {
-      *y += C[i]*X;
-      X = X * (*x);
+  ResetVector (yvec, OPIHI_FLT, xvec[0].Nelements);
+  bzero (yvec[0].elements.Flt, sizeof(opihi_flt)*yvec[0].Nelements);
+  y = yvec[0].elements.Flt;
+
+  if (xvec[0].type == OPIHI_FLT) {
+    opihi_flt *x = xvec[0].elements.Flt;
+    for (j = 0; j < xvec[0].Nelements; j++, x++, y++) {
+      X = 1;
+      for (i = 0; i < order + 1; i++) {
+	*y += C[i]*X;
+	X = X * (*x);
+      }
+    }
+  } else {
+    opihi_int *x = xvec[0].elements.Int;
+    for (j = 0; j < xvec[0].Nelements; j++, x++, y++) {
+      X = 1;
+      for (i = 0; i < order + 1; i++) {
+	*y += C[i]*X;
+	X = X * (*x);
+      }
     }
   }
