Index: trunk/Ohana/src/opihi/lib.data/graphtools.c
===================================================================
--- trunk/Ohana/src/opihi/lib.data/graphtools.c	(revision 13479)
+++ trunk/Ohana/src/opihi/lib.data/graphtools.c	(revision 20936)
@@ -1,4 +1,6 @@
 # include "data.h"
 
+// XXX need to select the active vector for the range analysis
+// this function accepts either FLT or INT vectors
 void SetLimits (Vector *xvec, Vector *yvec, Graphdata *graphmode) {
 
@@ -7,9 +9,18 @@
 
   if (xvec != NULL) {
-    maxX = minX = xvec[0].elements[0];
-    for (i = 1; i < xvec[0].Nelements; i++) {
-      if (!finite(xvec[0].elements[i])) continue;
-      maxX = MAX (maxX, xvec[0].elements[i]);
-      minX = MIN (minX, xvec[0].elements[i]);
+    if (xvec->type == OPIHI_FLT) {
+      maxX = minX = xvec[0].elements.Flt[0];
+      for (i = 1; i < xvec[0].Nelements; i++) {
+	if (!finite(xvec[0].elements.Flt[i])) continue;
+	maxX = MAX (maxX, xvec[0].elements.Flt[i]);
+	minX = MIN (minX, xvec[0].elements.Flt[i]);
+      }
+    } else {
+      maxX = minX = xvec[0].elements.Int[0];
+      for (i = 1; i < xvec[0].Nelements; i++) {
+	if (!finite(xvec[0].elements.Int[i])) continue;
+	maxX = MAX (maxX, xvec[0].elements.Int[i]);
+	minX = MIN (minX, xvec[0].elements.Int[i]);
+      }
     }
     range = maxX - minX;
@@ -21,9 +32,18 @@
 
   if (yvec != NULL) {
-    maxY = minY = yvec[0].elements[0];
-    for (i = 1; i < yvec[0].Nelements; i++) {
-      if (!finite(yvec[0].elements[i])) continue;
-      maxY = MAX (maxY, yvec[0].elements[i]);
-      minY = MIN (minY, yvec[0].elements[i]);
+    if (yvec->type == OPIHI_FLT) {
+      maxY = minY = yvec[0].elements.Flt[0];
+      for (i = 1; i < yvec[0].Nelements; i++) {
+	if (!finite(yvec[0].elements.Flt[i])) continue;
+	maxY = MAX (maxY, yvec[0].elements.Flt[i]);
+	minY = MIN (minY, yvec[0].elements.Flt[i]);
+      }
+    } else {
+      maxY = minY = yvec[0].elements.Int[0];
+      for (i = 1; i < yvec[0].Nelements; i++) {
+	if (!finite(yvec[0].elements.Int[i])) continue;
+	maxY = MAX (maxY, yvec[0].elements.Int[i]);
+	minY = MIN (minY, yvec[0].elements.Int[i]);
+      }
     }
     range = maxY - minY;
