Index: /trunk/psModules/src/pmSubtractBias.c
===================================================================
--- /trunk/psModules/src/pmSubtractBias.c	(revision 2855)
+++ /trunk/psModules/src/pmSubtractBias.c	(revision 2856)
@@ -6,6 +6,6 @@
  *  @author George Gusciora, MHPCC
  *
- *  @version $Revision: 1.26 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-12-30 01:41:51 $
+ *  @version $Revision: 1.27 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-12-30 21:35:03 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -29,6 +29,6 @@
                            const psReadout *bias)
 {
-    int i;
-    int j;
+    psS32 i;
+    psS32 j;
 
     if (bias == NULL) {
@@ -38,5 +38,4 @@
     }
 
-    // XXX: What should be returned here?
     if (((in->image)->numRows + in->row0 - bias->row0) > (bias->image)->numRows) {
         psError(PS_ERR_UNKNOWN,true, "bias image does not have enough rows\n");
@@ -48,5 +47,4 @@
     }
 
-    // XXX: Verify that this is the correct way to use offsets.
     for (i=0;i<(in->image)->numRows;i++) {
         for (j=0;j<(in->image)->numCols;j++) {
@@ -65,15 +63,10 @@
 /******************************************************************************
 p_psImageSubtractScalar(): subtract a scalar from the input image.
- 
-// XXX: Is there already a function which does this?
  *****************************************************************************/
 psImage *p_psImageSubtractScalar(psImage *image,
-                                 float scalar)
+                                 psF32 scalar)
 {
-    int i;
-    int j;
-
-    for (i=0;i<image->numRows;i++) {
-        for (j=0;j<image->numCols;j++) {
+    for (psS32 i=0;i<image->numRows;i++) {
+        for (psS32 j=0;j<image->numCols;j++) {
             (image->data.F32[i][j])-= scalar;
         }
@@ -83,13 +76,49 @@
 
 /******************************************************************************
-GenNewStatOptions(): this routine will take as input the options member of
-the stat data structure, determine if multiple options have been specified,
-issue a warning message if so, and return the highest priority option
-(according to the order of the if-statements in this code).
+GenNewStatOptions(): this routine will take as input the options member of the
+stat data structure, determine if multiple options have been specified, issue
+a warning message if so, and return the highest priority option (according to
+the order of the if-statements in this code).  The higher priority options are
+listed lower in the code.
  *****************************************************************************/
 psStatsOptions GenNewStatOptions(const psStats *stat)
 {
-    int numOptions = 0;
+    psS32 numOptions = 0;
     psStatsOptions opt = 0;
+
+    if (stat->options & PS_STAT_ROBUST_MODE) {
+        if (numOptions == 0) {
+            opt = PS_STAT_ROBUST_MODE;
+        }
+        numOptions++;
+    }
+
+    if (stat->options & PS_STAT_ROBUST_MEDIAN) {
+        if (numOptions == 0) {
+            opt = PS_STAT_ROBUST_MEDIAN;
+        }
+        numOptions++;
+    }
+
+    if (stat->options & PS_STAT_ROBUST_MEAN) {
+        if (numOptions == 0) {
+            opt = PS_STAT_ROBUST_MEAN;
+        }
+        numOptions++;
+    }
+
+    if (stat->options & PS_STAT_CLIPPED_MEAN) {
+        if (numOptions == 0) {
+            opt = PS_STAT_CLIPPED_MEAN;
+        }
+        numOptions++;
+    }
+
+    if (stat->options & PS_STAT_SAMPLE_MEDIAN) {
+        if (numOptions == 0) {
+            opt = PS_STAT_SAMPLE_MEDIAN;
+        }
+        numOptions++;
+    }
 
     if (stat->options & PS_STAT_SAMPLE_MEAN) {
@@ -98,38 +127,4 @@
     }
 
-    if (stat->options & PS_STAT_SAMPLE_MEDIAN) {
-        if (numOptions == 0) {
-            opt = PS_STAT_SAMPLE_MEDIAN;
-        }
-        numOptions++;
-    }
-
-    if (stat->options & PS_STAT_CLIPPED_MEAN) {
-        if (numOptions == 0) {
-            opt = PS_STAT_CLIPPED_MEAN;
-        }
-        numOptions++;
-    }
-
-    if (stat->options & PS_STAT_ROBUST_MEAN) {
-        if (numOptions == 0) {
-            opt = PS_STAT_ROBUST_MEAN;
-        }
-        numOptions++;
-    }
-
-    if (stat->options & PS_STAT_ROBUST_MEDIAN) {
-        if (numOptions == 0) {
-            opt = PS_STAT_ROBUST_MEDIAN;
-        }
-        numOptions++;
-    }
-
-    if (stat->options & PS_STAT_ROBUST_MODE) {
-        if (numOptions == 0) {
-            opt = PS_STAT_ROBUST_MODE;
-        }
-        numOptions++;
-    }
 
     if (numOptions == 0) {
@@ -154,5 +149,5 @@
  *****************************************************************************/
 psVector *ScaleOverscanVector(psVector *overscanVector,
-                              int n,
+                              psS32 n,
                               void *fitSpec,
                               pmFit fit)
@@ -178,11 +173,16 @@
     psPolynomial1D *myPoly;
     psSpline1D *mySpline;
-    float x;
-    int i;
+    psF32 x;
+    psS32 i;
 
     if (fit == PM_FIT_POLYNOMIAL) {
         // Fit a polynomial to the old overscan vector.
         myPoly = (psPolynomial1D *) fitSpec;
+        PS_POLY_CHECK_NULL(myPoly, NULL);
         myPoly = psVectorFitPolynomial1D(myPoly, NULL, overscanVector, NULL);
+        if (myPoly == NULL) {
+            psError(PS_ERR_UNKNOWN, false, "ScaleOverscanVector(): Could not fit a polynomial to the psVector.\n");
+            return(NULL);
+        }
 
         // For each element of the new vector, convert the x-ordinate to that
@@ -190,5 +190,5 @@
         // interpolated value at that point, and set the new vector.
         for (i=0;i<n;i++) {
-            x = ((float) i) * ((float) overscanVector->n) / ((float) n);
+            x = ((psF32) i) * ((psF32) overscanVector->n) / ((psF32) n);
             newVec->data.F32[i] = psPolynomial1DEval(myPoly, x);
         }
@@ -200,4 +200,5 @@
             mustFreeSpline = 1;
         }
+
         //
         // NOTE: Since the X arg in the psVectorFitSpline1D() function is NULL,
@@ -206,4 +207,8 @@
         //
         mySpline = psVectorFitSpline1D(mySpline, NULL, overscanVector, NULL);
+        if (mySpline == NULL) {
+            psError(PS_ERR_UNKNOWN, false, "ScaleOverscanVector(): Could not fit a spline to the psVector.\n");
+            return(NULL);
+        }
 
         // For each element of the new vector, convert the x-ordinate to that
@@ -212,5 +217,5 @@
         for (i=0;i<n;i++) {
             // Scale to [0 : overscanVector->n - 1]
-            x = ((float) i) * ((float) (overscanVector->n-1)) / ((float) n);
+            x = ((psF32) i) * ((psF32) (overscanVector->n-1)) / ((psF32) n);
             newVec->data.F32[i] = psSpline1DEval(mySpline, x);
         }
@@ -228,4 +233,7 @@
 }
 
+/******************************************************************************
+XXX: The SDRS does not specify type support.  F32 is implemented here.
+ *****************************************************************************/
 psReadout *pmSubtractBias(psReadout *in,
                           void *fitSpec,
@@ -233,5 +241,5 @@
                           pmOverscanAxis overScanAxis,
                           psStats *stat,
-                          int nBinOrig,
+                          psS32 nBinOrig,
                           pmFit fit,
                           const psReadout *bias)
@@ -263,7 +271,7 @@
         return(in);
     }
-    int i;
-    int j;
-    int numBins = 0;
+    psS32 i;
+    psS32 j;
+    psS32 numBins = 0;
     static psVector *overscanVector = NULL;
     psVector *tmpRow = NULL;
@@ -276,10 +284,17 @@
     psPolynomial1D *myPoly = NULL;
     psSpline1D *mySpline = NULL;
-    int nBin;
-    //  XXX: This comment isn't right?
-    //  Determine if multiple options are specified in stat.
+    psS32 nBin;
+
     //
+    //  Create a static stats data structure and determine the highest
+    //  priority stats option.
+    //
+    static psStats *myStats = NULL;
+    if (myStats == NULL) {
+        myStats = psStatsAlloc(PS_STAT_SAMPLE_MEAN);
+        p_psMemSetPersistent(myStats, true);
+    }
     if (stat != NULL) {
-        stat->options = GenNewStatOptions(stat);
+        myStats->options = GenNewStatOptions(stat);
     }
 
@@ -314,6 +329,6 @@
         while (NULL != tmpOverscan) {
             myOverscanImage = (psImage *) tmpOverscan->data;
-            psImageStats(stat, myOverscanImage, NULL, 0xffffffff);
-            p_psGetStatValue(stat, &statValue);
+            psImageStats(myStats, myOverscanImage, NULL, 0xffffffff);
+            p_psGetStatValue(myStats, &statValue);
             p_psImageSubtractScalar(in->image, statValue);
 
@@ -356,6 +371,6 @@
                     tmpRow->data.F32[j] = myOverscanImage->data.F32[j][i];
                 }
-                stat = psVectorStats(stat, tmpRow, NULL, NULL, 0);
-                p_psGetStatValue(stat, &statValue);
+                myStats = psVectorStats(myStats, tmpRow, NULL, NULL, 0);
+                p_psGetStatValue(myStats, &statValue);
                 overscanVector->data.F32[i] = statValue;
             }
@@ -399,6 +414,6 @@
                     tmpCol->data.F32[j] = myOverscanImage->data.F32[i][j];
                 }
-                stat = psVectorStats(stat, tmpCol, NULL, NULL, 0);
-                p_psGetStatValue(stat, &statValue);
+                myStats = psVectorStats(myStats, tmpCol, NULL, NULL, 0);
+                p_psGetStatValue(myStats, &statValue);
                 overscanVector->data.F32[i] = statValue;
             }
@@ -441,6 +456,6 @@
                     }
                 }
-                stat = psVectorStats(stat, binVec, NULL, NULL, 0);
-                p_psGetStatValue(stat, &statValue);
+                myStats = psVectorStats(myStats, binVec, NULL, NULL, 0);
+                p_psGetStatValue(myStats, &statValue);
                 myBin->data.F32[i] = statValue;
             }
@@ -492,11 +507,10 @@
                     psF32 tmpF32 = 0.0;
                     if (fit == PM_FIT_POLYNOMIAL) {
-                        tmpF32 = psPolynomial1DEval(myPoly, ((float) i) / ((float) nBin));
+                        tmpF32 = psPolynomial1DEval(myPoly, ((psF32) i) / ((psF32) nBin));
                     } else if (fit == PM_FIT_SPLINE) {
-                        tmpF32 = psSpline1DEval(mySpline, ((float) i) / ((float) nBin));
+                        tmpF32 = psSpline1DEval(mySpline, ((psF32) i) / ((psF32) nBin));
                     }
                     for (j=0;j<(in->image)->numRows;j++) {
                         (in->image)->data.F32[j][i]-= tmpF32;
-
                     }
                 }
@@ -510,7 +524,7 @@
                     psF32 tmpF32 = 0.0;
                     if (fit == PM_FIT_POLYNOMIAL) {
-                        tmpF32 = psPolynomial1DEval(myPoly, ((float) i) / ((float) nBin));
+                        tmpF32 = psPolynomial1DEval(myPoly, ((psF32) i) / ((psF32) nBin));
                     } else if (fit == PM_FIT_SPLINE) {
-                        tmpF32 = psSpline1DEval(mySpline, ((float) i) / ((float) nBin));
+                        tmpF32 = psSpline1DEval(mySpline, ((psF32) i) / ((psF32) nBin));
                     }
 
Index: /trunk/psModules/test/tst_pmReadoutCombine.c
===================================================================
--- /trunk/psModules/test/tst_pmReadoutCombine.c	(revision 2855)
+++ /trunk/psModules/test/tst_pmReadoutCombine.c	(revision 2856)
@@ -5,6 +5,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-12-30 01:42:04 $
+ *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-12-30 21:35:04 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -115,7 +115,12 @@
         *(int *) (& (tmpImage->row0)) = baseRows[r];
         *(int *) (& (tmpImage->col0)) = baseCols[r];
-        psReadout *tmpReadout = psReadoutAlloc(baseColsReadout[r],
-                                               baseRowsReadout[r],
-                                               tmpImage);
+        /*
+                psReadout *tmpReadout = psReadoutAlloc(baseColsReadout[r],
+                                                       baseRowsReadout[r],
+                                                       tmpImage);
+        */
+        psReadout *tmpReadout = psReadoutAlloc();
+        tmpReadout->image = tmpImage;
+
         minOutRow = PS_MIN(minOutRow, (baseRowsReadout[r] + baseRows[r]));
         minOutCol = PS_MIN(minOutCol, (baseColsReadout[r] + baseCols[r]));
@@ -226,7 +231,11 @@
         *(int *) (& (tmpImage->row0)) = baseRows[r];
         *(int *) (& (tmpImage->col0)) = baseCols[r];
-        psReadout *tmpReadout = psReadoutAlloc(baseColsReadout[r],
-                                               baseRowsReadout[r],
-                                               tmpImage);
+        /*
+                psReadout *tmpReadout = psReadoutAlloc(baseColsReadout[r],
+                                                       baseRowsReadout[r],
+                                                       tmpImage);
+        */
+        psReadout *tmpReadout = psReadoutAlloc();
+        tmpReadout->image = tmpImage;
         minOutRow = PS_MIN(minOutRow, (baseRowsReadout[r] + baseRows[r]));
         minOutCol = PS_MIN(minOutCol, (baseColsReadout[r] + baseCols[r]));
Index: /trunk/psModules/test/tst_pmSubtractBias.c
===================================================================
--- /trunk/psModules/test/tst_pmSubtractBias.c	(revision 2855)
+++ /trunk/psModules/test/tst_pmSubtractBias.c	(revision 2856)
@@ -13,6 +13,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.11 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-12-30 01:42:04 $
+ *  @version $Revision: 1.12 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-12-30 21:35:04 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -29,5 +29,4 @@
 static int testX(void);
 testDescription tests[] = {
-
                               {test00, 000, "pmSubtractBias", 0, false},
                               {test01, 000, "pmSubtractBias", 0, false},
@@ -60,6 +59,11 @@
     psImage *tmpImage1 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
     psImage *tmpImage2 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
-    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
-    psReadout *myBias = psReadoutAlloc(numCols, numRows, tmpImage2);
+    //    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
+    //    psReadout *myBias = psReadoutAlloc(numCols, numRows, tmpImage2);
+    psReadout *myReadout = psReadoutAlloc();
+    psReadout *myBias = psReadoutAlloc();
+    myReadout->image = tmpImage1;
+    myBias->image = tmpImage2;
+
 
     for (i=0;i<numRows;i++) {
@@ -99,5 +103,4 @@
     testStatus |= doSubtractBiasFullFrame(1, NUM_ROWS);
     testStatus |= doSubtractBiasFullFrame(NUM_COLS, NUM_ROWS);
-
     return(testStatus);
 }
@@ -119,5 +122,9 @@
     psImage *tmpImage3 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
     psImage *tmpImage4 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
-    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
+    //    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
+    psReadout *myReadout = psReadoutAlloc();
+    myReadout->image = tmpImage1;
+
+
     psList *list;
     psStats *stat = psStatsAlloc(PS_STAT_SAMPLE_MEAN);
@@ -188,5 +195,7 @@
     psImage *tmpImage3 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
     psImage *tmpImage4 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
-    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
+    //    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
+    psReadout *myReadout = psReadoutAlloc();
+    myReadout->image = tmpImage1;
     psList *list;
     psStats *stat = psStatsAlloc(PS_STAT_SAMPLE_MEAN);
@@ -247,5 +256,7 @@
     psImage *tmpImage3 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
     psImage *tmpImage4 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
-    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
+    //    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
+    psReadout *myReadout = psReadoutAlloc();
+    myReadout->image = tmpImage1;
     psList *list;
     psStats *stat = psStatsAlloc(PS_STAT_SAMPLE_MEAN);
@@ -305,5 +316,7 @@
     int testStatus = 0;
     psImage *tmpImage1 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
-    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
+    //    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
+    psReadout *myReadout = psReadoutAlloc();
+    myReadout->image = tmpImage1;
     psImage *tmpImage2 = psImageAlloc(numCols/2, numRows/2, PS_TYPE_F32);
     psImage *tmpImage3 = psImageAlloc(numCols/2, numRows/2, PS_TYPE_F32);
@@ -390,5 +403,7 @@
     psImage *tmpImage3 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
     psImage *tmpImage4 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
-    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
+    //    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
+    psReadout *myReadout = psReadoutAlloc();
+    myReadout->image = tmpImage1;
     psList *list;
     psStats *stat = psStatsAlloc(PS_STAT_SAMPLE_MEAN);
@@ -458,5 +473,7 @@
     psImage *tmpImage3 = psImageAlloc(OSnumCols, OSnumRows, PS_TYPE_F32);
     psImage *tmpImage4 = psImageAlloc(OSnumCols, OSnumRows, PS_TYPE_F32);
-    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
+    //    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
+    psReadout *myReadout = psReadoutAlloc();
+    myReadout->image = tmpImage1;
     psList *list;
     psStats *stat = psStatsAlloc(PS_STAT_SAMPLE_MEAN);
@@ -537,5 +554,7 @@
     psImage *tmpImage3Short = psImageAlloc(numCols-1, numRows-1, PS_TYPE_F32);
     psImage *tmpImage4Short = psImageAlloc(numCols-1, numRows-1, PS_TYPE_F32);
-    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
+    //    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1);
+    psReadout *myReadout = psReadoutAlloc();
+    myReadout->image = tmpImage1;
     psReadout *rc = NULL;
     psList *list;
@@ -543,9 +562,16 @@
     psStats *stat = psStatsAlloc(PS_STAT_SAMPLE_MEAN);
     psImage *tmpImage5 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
-    psReadout *myBias = psReadoutAlloc(numCols, numRows, tmpImage5);
+    //    psReadout *myBias = psReadoutAlloc(numCols, numRows, tmpImage5);
+    psReadout *myBias = psReadoutAlloc();
+    myBias->image = tmpImage5;
+
     psImage *tmpImage5ShortRows = psImageAlloc(numCols, numRows-1, PS_TYPE_F32);
-    psReadout *myBiasShortRows = psReadoutAlloc(numCols, numRows-1, tmpImage5ShortRows);
+    //    psReadout *myBiasShortRows = psReadoutAlloc(numCols, numRows-1, tmpImage5ShortRows);
+    psReadout *myBiasShortRows = psReadoutAlloc();
+    myBiasShortRows->image = tmpImage5ShortRows;
     psImage *tmpImage5ShortCols = psImageAlloc(numCols-1, numRows, PS_TYPE_F32);
-    psReadout *myBiasShortCols = psReadoutAlloc(numCols-1, numRows, tmpImage5ShortCols);
+    //    psReadout *myBiasShortCols = psReadoutAlloc(numCols-1, numRows, tmpImage5ShortCols);
+    psReadout *myBiasShortCols = psReadoutAlloc();
+    myBiasShortCols->image = tmpImage5ShortCols;
 
     for (i=0;i<numRows;i++) {
@@ -840,5 +866,7 @@
 
     psImage *tmpImage1 = psImageAlloc(imageNumCols, imageNumRows, PS_TYPE_F32);
-    psReadout *myReadout = psReadoutAlloc(imageNumCols, imageNumRows, tmpImage1);
+    //    psReadout *myReadout = psReadoutAlloc(imageNumCols, imageNumRows, tmpImage1);
+    psReadout *myReadout = psReadoutAlloc();
+    myReadout->image = tmpImage1;
     for (i=0;i<imageNumRows;i++) {
         for (j=0;j<imageNumCols;j++) {
Index: /trunk/psModules/test/tst_pmSubtractSky.c
===================================================================
--- /trunk/psModules/test/tst_pmSubtractSky.c	(revision 2855)
+++ /trunk/psModules/test/tst_pmSubtractSky.c	(revision 2856)
@@ -7,6 +7,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-12-30 01:42:04 $
+ *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-12-30 21:35:04 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -48,5 +48,7 @@
     int testStatus = 0;
     psImage *tmpImageF32 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
-    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImageF32);
+    //    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImageF32);
+    psReadout *myReadout = psReadoutAlloc();
+    myReadout->image = tmpImageF32;
     psStats *myStats = psStatsAlloc(PS_STAT_SAMPLE_MEAN);
     psPolynomial2D *myPoly = psPolynomial2DAlloc(POLY_X_ORDER, POLY_Y_ORDER, PS_POLYNOMIAL_ORD);
@@ -82,5 +84,7 @@
     int testStatus = 0;
     psImage *tmpImageF32 = psImageAlloc(numCols, numRows, PS_TYPE_F32);
-    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImageF32);
+    //    psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImageF32);
+    psReadout *myReadout = psReadoutAlloc();
+    myReadout->image = tmpImageF32;
     psStats *myStats = psStatsAlloc(PS_STAT_SAMPLE_MEAN);
     psPolynomial2D *myPoly = psPolynomial2DAlloc(POLY_X_ORDER, POLY_Y_ORDER, PS_POLYNOMIAL_ORD);
@@ -181,5 +185,7 @@
     psImage *tmpImageF32 = psImageAlloc(NUM_COLS_SMALL, NUM_ROWS_SMALL, PS_TYPE_F32);
     psImage *tmpImageF64 = psImageAlloc(NUM_COLS_SMALL, NUM_ROWS_SMALL, PS_TYPE_F64);
-    psReadout *myReadout = psReadoutAlloc(NUM_COLS_SMALL, NUM_ROWS_SMALL, tmpImageF32);
+    //    psReadout *myReadout = psReadoutAlloc(NUM_COLS_SMALL, NUM_ROWS_SMALL, tmpImageF32);
+    psReadout *myReadout = psReadoutAlloc();
+    myReadout->image = tmpImageF32;
     psReadout *rc = NULL;
     psStats *myStats = psStatsAlloc(PS_STAT_SAMPLE_MEAN);
