Index: trunk/psModules/src/detrend/pmSubtractBias.c
===================================================================
--- trunk/psModules/src/detrend/pmSubtractBias.c	(revision 8669)
+++ trunk/psModules/src/detrend/pmSubtractBias.c	(revision 9619)
@@ -1,21 +1,2 @@
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// XXX WARNING: I have completely replaced this file with an OLD VERSION (that works) instead of the
-// one that was being worked on.
-//////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-/** @file  pmSubtractBias.c
- *
- *  This file will contain a module which will subtract the detector bias
- *  in place from an input image.
- *
- *  @author GLG, MHPCC
- *
- *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-08-29 21:39:44 $
- *
- *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
- *
- */
-
 #if HAVE_CONFIG_H
 #include <config.h>
@@ -25,4 +6,6 @@
 #include <assert.h>
 #include <pslib.h>
+
+#include "pmFPA.h"
 #include "pmSubtractBias.h"
 
@@ -31,39 +14,5 @@
 
 
-#define MAX(a,b) ((a) > (b) ? (a) : (b))
-#define MIN(a,b) ((a) < (b) ? (a) : (b))
-
-
-// XXX: put these in psConstants.h
-void PS_POLY1D_PRINT(psPolynomial1D *poly)
-{
-    printf("-------------- PS_POLY1D_PRINT() --------------\n");
-    printf("poly->nX is %d\n", poly->nX);
-    for (psS32 i = 0 ; i < (1 + poly->nX) ; i++) {
-        printf("poly->coeff[%d] is %f\n", i, poly->coeff[i]);
-    }
-}
-
-void PS_PRINT_SPLINE(psSpline1D *mySpline)
-{
-    printf("-------------- PS_PRINT_SPLINE() --------------\n");
-    printf("mySpline->n is %d\n", mySpline->n);
-    for (psS32 i = 0 ; i < mySpline->n ; i++) {
-        PS_POLY1D_PRINT(mySpline->spline[i]);
-    }
-    PS_VECTOR_PRINT_F32(mySpline->knots);
-}
-
-#define PS_IMAGE_PRINT_F32_HIDEF(NAME) \
-printf("======== printing %s ========\n", #NAME); \
-for (int i = 0 ; i < (NAME)->numRows ; i++) { \
-    for (int j = 0 ; j < (NAME)->numCols ; j++) { \
-        printf("%.5f ", (NAME)->data.F32[i][j]); \
-    } \
-    printf("\n"); \
-}\
-
-
-void overscanOptionsFree(pmOverscanOptions *options)
+static void overscanOptionsFree(pmOverscanOptions *options)
 {
     psFree(options->stat);
@@ -91,10 +40,7 @@
 
 
-/******************************************************************************
-psSubtractFrame(): this routine will take as input a readout for the input
-image and a readout for the bias image.  The bias image is subtracted in
-place from the input image.
-*****************************************************************************/
-static bool SubtractFrame(pmReadout *in,// Input readout
+// psSubtractFrame(): this routine will take as input a readout for the input image and a readout for the bias
+// image.  The bias image is subtracted in place from the input image.
+static bool SubtractFrame(pmReadout *in, // Input readout
                           const pmReadout *sub, // Readout to be subtracted from input
                           float scale   // Scale to apply before subtracting
@@ -109,4 +55,5 @@
     psImage *subMask  = sub->mask;      // The mask for the subtraction image
 
+    // Check parities
     int xIpar = psMetadataLookupS32(NULL, in->parent->concepts, "CELL.XPARITY");
     int xSpar = psMetadataLookupS32(NULL, sub->parent->concepts, "CELL.XPARITY");
@@ -252,8 +199,4 @@
 
 
-
-/******************************************************************************
-XXX: The SDRS does not specify type support.  F32 is implemented here.
- *****************************************************************************/
 bool pmSubtractBias(pmReadout *in, pmOverscanOptions *overscanOpts,
                     const pmReadout *bias, const pmReadout *dark)
@@ -280,5 +223,6 @@
         if (overscanOpts->fitType != PM_FIT_NONE && overscanOpts->fitType != PM_FIT_POLY_ORD &&
                 overscanOpts->fitType != PM_FIT_POLY_CHEBY && overscanOpts->fitType != PM_FIT_SPLINE) {
-            psError(PS_ERR_UNKNOWN, true, "Invalid fit type (%d).  Returning original image.\n", overscanOpts->fitType);
+            psError(PS_ERR_UNKNOWN, true, "Invalid fit type (%d).  Returning original image.\n",
+                    overscanOpts->fitType);
             return false;
         }
@@ -335,5 +279,5 @@
                 while ((overscan = psListGetAndIncrement(iter))) {
                     int diff = image->row0 - overscan->row0; // Offset between the two regions
-                    for (int i = MAX(0,diff); i < MIN(image->numRows, overscan->numRows + diff); i++) {
+                    for (int i = PS_MAX(0,diff); i < PS_MIN(image->numRows, overscan->numRows + diff); i++) {
                         // i is row on overscan
                         // XXX Reimplement with memcpy
@@ -379,5 +323,5 @@
                 while ((overscan = psListGetAndIncrement(iter))) {
                     int diff = image->col0 - overscan->col0; // Offset between the two regions
-                    for (int i = MAX(0,diff); i < MIN(image->numCols, overscan->numCols + diff); i++) {
+                    for (int i = PS_MAX(0,diff); i < PS_MIN(image->numCols, overscan->numCols + diff); i++) {
                         // i is column on overscan
                         // XXX Reimplement with memcpy
