Index: trunk/Ohana/src/opihi/cmd.data/accum.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/accum.c	(revision 7917)
+++ trunk/Ohana/src/opihi/cmd.data/accum.c	(revision 20936)
@@ -5,5 +5,6 @@
   int i, Nbins, bin, N, Normalize;
   float start, end, delta;
-  float *V, *K, *O, *NV;
+  int *NV;
+  opihi_flt *V, *K, *O;
   Vector *val, *key, *out;
 
@@ -29,4 +30,7 @@
   if ((out = SelectVector (argv[2], ANYVECTOR, TRUE)) == NULL) return (FALSE);
 
+  REQUIRE_VECTOR_FLT (val, FALSE); 
+  REQUIRE_VECTOR_FLT (key, FALSE); 
+
   start = atof (argv[4]);
   end   = atof (argv[5]);
@@ -45,15 +49,14 @@
   Nbins = (end - start) / delta;
 
-  out[0].Nelements = Nbins;
-  REALLOCATE (out[0].elements, float, out[0].Nelements);
-  bzero (out[0].elements, sizeof(float)*out[0].Nelements);
+  ResetVector (out, OPIHI_FLT, Nbins);
+  bzero (out[0].elements.Flt, sizeof(opihi_flt)*out[0].Nelements);
   if (Normalize) {
-    ALLOCATE (NV, float, Nbins);
-    bzero (NV, sizeof(float)*Nbins);
+    ALLOCATE (NV, int, Nbins);
+    bzero (NV, sizeof(int)*Nbins);
   }
 
-  V = val[0].elements;
-  K = key[0].elements;
-  O = out[0].elements;
+  V = val[0].elements.Flt;
+  K = key[0].elements.Flt;
+  O = out[0].elements.Flt;
 
   for (i = 0; i < val[0].Nelements; i++, V++, K++) {
