Index: trunk/Ohana/src/opihi/cmd.data/periodogram.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/periodogram.c	(revision 7917)
+++ trunk/Ohana/src/opihi/cmd.data/periodogram.c	(revision 20936)
@@ -4,5 +4,5 @@
   
   int i, N, Npt, Np, NP, VERBOSE;
-  float *tv, *fv;
+  opihi_flt *tv, *fv;
   float minP, maxP, minT, maxT, dTime;
   float mean, var, w, tau, P, Pc, Ps, Po;
@@ -28,9 +28,12 @@
   if ((power = SelectVector (argv[6], ANYVECTOR, TRUE)) == NULL) return (FALSE);
 
+  REQUIRE_VECTOR_FLT (time, FALSE); 
+  REQUIRE_VECTOR_FLT (flux, FALSE); 
+
   /* find the max baseline, mean, and variance */
-  minT = maxT = time[0].elements[0];
+  minT = maxT = time[0].elements.Flt[0];
   Npt = time[0].Nelements;
-  tv = time[0].elements;
-  fv = flux[0].elements;
+  tv = time[0].elements.Flt;
+  fv = flux[0].elements.Flt;
   mean = var = 0;
   for (i = 0; i < Npt; i++, tv++, fv++) {
@@ -40,5 +43,5 @@
   }
   mean = mean / Npt;
-  fv = flux[0].elements;
+  fv = flux[0].elements.Flt;
   for (i = 0; i < Npt; i++, fv++) {
     var += SQ(*fv - mean);
@@ -56,6 +59,6 @@
   Np = 0;
   NP = 100;
-  REALLOCATE (power[0].elements, float, NP);
-  REALLOCATE (period[0].elements, float, NP);
+  ResetVector (power,  OPIHI_FLT, NP);
+  ResetVector (period, OPIHI_FLT, NP);
 
   P = minP;
@@ -64,5 +67,5 @@
     
     /* find the period offset tau  */
-    tv = time[0].elements;
+    tv = time[0].elements.Flt;
     cs = sn = 0;
     for (i = 0; i < Npt; i++, tv++) {
@@ -73,6 +76,6 @@
       
     /* find the power at this period */
-    tv = time[0].elements;
-    fv = flux[0].elements;
+    tv = time[0].elements.Flt;
+    fv = flux[0].elements.Flt;
     cs = sn = cs2 = sn2 = 0;
     for (i = 0; i < Npt; i++, tv++, fv++) {
@@ -90,11 +93,11 @@
     Po = (Pc + Ps) / (2*var);
 
-    power[0].elements[Np] = Po;
-    period[0].elements[Np] = P;
+    power[0].elements.Flt[Np] = Po;
+    period[0].elements.Flt[Np] = P;
     Np ++;
     if (Np >= NP) {
       NP += 100;
-      REALLOCATE (power[0].elements, float, NP);
-      REALLOCATE (period[0].elements, float, NP);
+      REALLOCATE (power[0].elements.Flt, opihi_flt, NP);
+      REALLOCATE (period[0].elements.Flt, opihi_flt, NP);
     }
 
@@ -106,8 +109,6 @@
   }
 
-  power[0].Nelements = Np;
-  period[0].Nelements = Np;
-  REALLOCATE (power[0].elements, float, Np);
-  REALLOCATE (period[0].elements, float, Np);
+  ResetVector (power,  OPIHI_FLT, Np);
+  ResetVector (period, OPIHI_FLT, Np);
  
   return (TRUE);
