Index: trunk/Ohana/src/opihi/cmd.data/vstat.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/vstat.c	(revision 7917)
+++ trunk/Ohana/src/opihi/cmd.data/vstat.c	(revision 20936)
@@ -5,5 +5,5 @@
   int i, N;
   double max, min, sum, var, dvar, mean, stdev;
-  float *X, IgnoreValue;
+  float IgnoreValue;
   int Ignore, Quiet;
 
@@ -41,16 +41,28 @@
 
   /* calculate max, min, mean, sum, npix */
-  X = vec[0].elements;
   max = -HUGE_VAL;
   min = HUGE_VAL;
   sum = N = 0;
-  for (i = 0; i < vec[0].Nelements; i++, X++) {
-    if (!finite (*X)) continue;
-    if (Ignore && (*X == IgnoreValue)) continue;
-    max = MAX (*X, max);
-    min = MIN (*X, min);
-    sum += *X;
-    N++;
-  }      
+  if (vec[0].type == OPIHI_FLT) {
+    opihi_flt *X = vec[0].elements.Flt;
+    for (i = 0; i < vec[0].Nelements; i++, X++) {
+      if (!finite (*X)) continue;
+      if (Ignore && (*X == IgnoreValue)) continue;
+      max = MAX (*X, max);
+      min = MIN (*X, min);
+      sum += *X;
+      N++;
+    }      
+  } else {
+    opihi_int *X = vec[0].elements.Int;
+    for (i = 0; i < vec[0].Nelements; i++, X++) {
+      if (!finite (*X)) continue;
+      if (Ignore && (*X == IgnoreValue)) continue;
+      max = MAX (*X, max);
+      min = MIN (*X, min);
+      sum += *X;
+      N++;
+    }      
+  }
   mean = sum / N;
 
@@ -65,14 +77,26 @@
   ALLOCATE (Nval, int, 1002);
   bzero (Nval, 1000*sizeof(int));
-  X = vec[0].elements;
   var = 0;
-  for (i = 0; i < vec[0].Nelements; i++, X++) {
-    if (!finite (*X)) continue;
-    if (Ignore && (*X == IgnoreValue)) continue;
-    bin = MAX (0, MIN (1000, (*X - min) / dx));
-    Nval[bin] ++;
-    dvar = (*X - mean);
-    var += dvar*dvar;
-  }      
+  if (vec[0].type == OPIHI_FLT) {
+    opihi_flt *X = vec[0].elements.Flt;
+    for (i = 0; i < vec[0].Nelements; i++, X++) {
+      if (!finite (*X)) continue;
+      if (Ignore && (*X == IgnoreValue)) continue;
+      bin = MAX (0, MIN (1000, (*X - min) / dx));
+      Nval[bin] ++;
+      dvar = (*X - mean);
+      var += dvar*dvar;
+    }      
+  } else {
+    opihi_int *X = vec[0].elements.Int;
+    for (i = 0; i < vec[0].Nelements; i++, X++) {
+      if (!finite (*X)) continue;
+      if (Ignore && (*X == IgnoreValue)) continue;
+      bin = MAX (0, MIN (1000, (*X - min) / dx));
+      Nval[bin] ++;
+      dvar = (*X - mean);
+      var += dvar*dvar;
+    }      
+  }
   stdev = sqrt (var / N);
 
