Index: trunk/psModules/src/astrom/pmAstrometryDistortion.c
===================================================================
--- trunk/psModules/src/astrom/pmAstrometryDistortion.c	(revision 15252)
+++ trunk/psModules/src/astrom/pmAstrometryDistortion.c	(revision 15254)
@@ -7,6 +7,6 @@
 *  @author EAM, IfA
 *
-*  @version $Revision: 1.19 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2007-06-06 00:43:19 $
+*  @version $Revision: 1.20 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2007-10-09 19:27:04 $
 *
 *  Copyright 2006 Institute for Astronomy, University of Hawaii
@@ -62,5 +62,5 @@
 
     psPolynomial2D *local = psPolynomial2DAlloc (PS_POLYNOMIAL_ORD, 1, 1);
-    local->mask[1][1] = 1;
+    local->coeffMask[1][1] = PS_POLY_MASK_SET;
 
     // measure gradient for fractional chip regions
@@ -211,12 +211,10 @@
     for (int i = 0; i <= fpa->toTPA->x->nX; i++) {
         for (int j = 0; j <= fpa->toTPA->x->nY; j++) {
-            if (fpa->toTPA->x->mask[i][j]) {
-                if ((i > 0) && (i <= fpa->toTPA->x->nX)) {
-                    localX->mask[i-1][j] = 1;
-                }
-                if ((j > 0) && (j <= fpa->toTPA->x->nY)) {
-                    localY->mask[i][j-1] = 1;
-                }
-            }
+	    if ((i > 0) && (i <= fpa->toTPA->x->nX)) {
+		localX->coeffMask[i-1][j] = fpa->toTPA->x->coeffMask[i][j];
+	    }
+	    if ((j > 0) && (j <= fpa->toTPA->x->nY)) {
+		localY->coeffMask[i][j-1] = fpa->toTPA->x->coeffMask[i][j];
+	    }
         }
     }
@@ -240,18 +238,21 @@
     fpa->toTPA->x->coeff[0][0] = 0;
     for (int i = 1; i <= fpa->toTPA->x->nX; i++) {
-        if (!fpa->toTPA->x->mask[i][0]) {
-            fpa->toTPA->x->coeff[i][0] = localX->coeff[i-1][0] / i;
-        }
+        if (fpa->toTPA->x->coeffMask[i][0] & PS_POLY_MASK_SET) {
+	    continue;
+	}
+	fpa->toTPA->x->coeff[i][0] = localX->coeff[i-1][0] / i;
     }
     for (int j = 1; j <= fpa->toTPA->x->nY; j++) {
-        if (!fpa->toTPA->x->mask[0][j]) {
-            fpa->toTPA->x->coeff[0][j] = localY->coeff[0][j-1] / j;
-        }
+        if (fpa->toTPA->x->coeffMask[0][j] & PS_POLY_MASK_SET) {
+	    continue;
+	}
+	fpa->toTPA->x->coeff[0][j] = localY->coeff[0][j-1] / j;
     }
     for (int i = 1; i <= fpa->toTPA->x->nX; i++) {
         for (int j = 1; j <= fpa->toTPA->x->nY; j++) {
-            if (!fpa->toTPA->x->mask[i][j]) {
-                fpa->toTPA->x->coeff[i][j] = 0.5*(localX->coeff[i-1][j] / i + localY->coeff[i][j-1] / j);
-            }
+            if (fpa->toTPA->x->coeffMask[i][j] & PS_POLY_MASK_SET) {
+		continue;
+	    }
+	    fpa->toTPA->x->coeff[i][j] = 0.5*(localX->coeff[i-1][j] / i + localY->coeff[i][j-1] / j);
         }
     }
@@ -268,12 +269,10 @@
     for (int i = 0; i < fpa->toTPA->y->nX; i++) {
         for (int j = 0; j < fpa->toTPA->y->nY; j++) {
-            if (fpa->toTPA->y->mask[i][j]) {
-                if ((i > 0) && (i <= fpa->toTPA->y->nX)) {
-                    localX->mask[i-1][j] = 1;
-                }
-                if ((j > 0) && (j <= fpa->toTPA->y->nY)) {
-                    localY->mask[i][j-1] = 1;
-                }
-            }
+	    if ((i > 0) && (i <= fpa->toTPA->y->nX)) {
+		localX->coeffMask[i-1][j] = fpa->toTPA->y->coeffMask[i][j];
+	    }
+	    if ((j > 0) && (j <= fpa->toTPA->y->nY)) {
+		localY->coeffMask[i][j-1] = fpa->toTPA->y->coeffMask[i][j];
+	    }
         }
     }
@@ -286,18 +285,21 @@
     fpa->toTPA->y->coeff[0][0] = 0;
     for (int i = 1; i <= fpa->toTPA->y->nX; i++) {
-        if (!fpa->toTPA->y->mask[i][0]) {
-            fpa->toTPA->y->coeff[i][0] = localX->coeff[i-1][0] / i;
-        }
+        if (fpa->toTPA->y->coeffMask[i][0] & PS_POLY_MASK_SET) {
+	    continue;
+        }
+	fpa->toTPA->y->coeff[i][0] = localX->coeff[i-1][0] / i;
     }
     for (int j = 1; j <= fpa->toTPA->y->nY; j++) {
-        if (!fpa->toTPA->y->mask[0][j]) {
-            fpa->toTPA->y->coeff[0][j] = localY->coeff[0][j-1] / j;
-        }
+        if (fpa->toTPA->y->coeffMask[0][j] & PS_POLY_MASK_SET) {
+	    continue;
+        }
+	fpa->toTPA->y->coeff[0][j] = localY->coeff[0][j-1] / j;
     }
     for (int i = 1; i <= fpa->toTPA->y->nX; i++) {
         for (int j = 1; j <= fpa->toTPA->y->nY; j++) {
-            if (!fpa->toTPA->y->mask[i][j]) {
-                fpa->toTPA->y->coeff[i][j] = 0.5*(localX->coeff[i-1][j] / i + localY->coeff[i][j-1] / j);
+            if (fpa->toTPA->y->coeffMask[i][j] & PS_POLY_MASK_SET) {
+		continue;
             }
+	    fpa->toTPA->y->coeff[i][j] = 0.5*(localX->coeff[i-1][j] / i + localY->coeff[i][j-1] / j);
         }
     }
Index: trunk/psModules/src/astrom/pmAstrometryUtils.c
===================================================================
--- trunk/psModules/src/astrom/pmAstrometryUtils.c	(revision 15252)
+++ trunk/psModules/src/astrom/pmAstrometryUtils.c	(revision 15254)
@@ -7,6 +7,6 @@
  *  @author EAM, IfA
  *
- *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2007-03-30 21:12:56 $
+ *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2007-10-09 19:27:04 $
  *
  *  Copyright 2006 Institute for Astronomy, University of Hawaii
@@ -105,8 +105,8 @@
         psPolynomial2D *yPy = psPolynomial2DCopy (NULL, yPx);
         for (int j = 0; j <= input->x->nY; j++) {
-            output->x->mask[i][j] = input->x->mask[i][j];
-            output->y->mask[i][j] = input->y->mask[i][j];
-            output->x->coeff[i][j] = (output->x->mask[i][j]) ? 0 : psPolynomial2DEval (xPy, Xo, Yo) / tgamma(i+1) / tgamma(j+1);
-            output->y->coeff[i][j] = (output->y->mask[i][j]) ? 0 : psPolynomial2DEval (yPy, Xo, Yo) / tgamma(i+1) / tgamma(j+1);
+            output->x->coeffMask[i][j] = input->x->coeffMask[i][j];
+            output->y->coeffMask[i][j] = input->y->coeffMask[i][j];
+            output->x->coeff[i][j] = (output->x->coeffMask[i][j] & PS_POLY_MASK_SET) ? 0 : psPolynomial2DEval (xPy, Xo, Yo) / tgamma(i+1) / tgamma(j+1);
+            output->y->coeff[i][j] = (output->y->coeffMask[i][j] & PS_POLY_MASK_SET) ? 0 : psPolynomial2DEval (yPy, Xo, Yo) / tgamma(i+1) / tgamma(j+1);
 
             // take the next derivative wrt y, catch output (is NULL on last pass)
@@ -146,6 +146,6 @@
         for (int j = 0; j <= order; j++) {
             if (i + j > order) {
-                transform->x->mask [i][j] = 1;
-                transform->y->mask [i][j] = 1;
+                transform->x->coeffMask [i][j] = PS_POLY_MASK_SET;
+                transform->y->coeffMask [i][j] = PS_POLY_MASK_SET;
             }
         }
@@ -153,6 +153,6 @@
     transform->x->coeff[1][0] = 1;
     transform->y->coeff[0][1] = 1;
-    transform->x->mask[1][0] = 0;
-    transform->y->mask[0][1] = 0;
+    transform->x->coeffMask[1][0] = PS_POLY_MASK_NONE;
+    transform->y->coeffMask[0][1] = PS_POLY_MASK_NONE;
 
     return transform;
@@ -197,7 +197,7 @@
             if (i + j > order) {
                 // high-order cross terms must be masked (eg, x^3 y^2)
-                status &= transform->x->mask[i][j];
+                status &= (transform->x->coeffMask[i][j] & PS_POLY_MASK_SET);
             } else {
-                status &= !transform->x->mask[i][j];
+                status &= !(transform->x->coeffMask[i][j] & PS_POLY_MASK_SET);
                 if ((i == 1) && (i + j == 1)) {
                     // linear, diagonal terms must be non-zero
@@ -216,7 +216,7 @@
             if (i + j > order) {
                 // high-order cross terms must be masked (eg, x^3 y^2)
-                status &= transform->y->mask[i][j];
+                status &= (transform->y->coeffMask[i][j] & PS_POLY_MASK_SET);
             } else {
-                status &= !transform->y->mask[i][j];
+                status &= !(transform->y->coeffMask[i][j] & PS_POLY_MASK_SET);
                 if ((j == 1) && (i + j == 1)) {
                     // linear, diagonal terms must be 1.0
@@ -249,6 +249,6 @@
         for (int j = 0; j <= order; j++) {
             if (i + j > order) {
-                distort->x->mask [i][j][0][0] = 1;
-                distort->y->mask [i][j][0][0] = 1;
+                distort->x->coeffMask [i][j][0][0] = PS_POLY_MASK_SET;
+                distort->y->coeffMask [i][j][0][0] = PS_POLY_MASK_SET;
             }
         }
@@ -306,7 +306,7 @@
             if (i + j > order) {
                 // high-order cross terms must be masked (eg, x^3 y^2)
-                status &= distort->x->mask[i][j][0][0];
+                status &= (distort->x->coeffMask[i][j][0][0] & PS_POLY_MASK_SET);
             } else {
-                status &= !distort->x->mask[i][j][0][0];
+                status &= !(distort->x->coeffMask[i][j][0][0] & PS_POLY_MASK_SET);
                 if ((i == 1) && (i + j == 1)) {
                     // linear, diagonal terms must be 1.0
@@ -325,7 +325,7 @@
             if (i + j > order) {
                 // high-order cross terms must be masked (eg, x^3 y^2)
-                status &= distort->y->mask[i][j][0][0];
+                status &= (distort->y->coeffMask[i][j][0][0] & PS_POLY_MASK_SET);
             } else {
-                status &= !distort->y->mask[i][j][0][0];
+                status &= !(distort->y->coeffMask[i][j][0][0] & PS_POLY_MASK_SET);
                 if ((j == 1) && (i + j == 1)) {
                     // linear, diagonal terms must be 1.0
Index: trunk/psModules/src/astrom/pmAstrometryWCS.c
===================================================================
--- trunk/psModules/src/astrom/pmAstrometryWCS.c	(revision 15252)
+++ trunk/psModules/src/astrom/pmAstrometryWCS.c	(revision 15254)
@@ -7,6 +7,6 @@
  *  @author EAM, IfA
  *
- *  @version $Revision: 1.22 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2007-04-17 19:39:04 $
+ *  @version $Revision: 1.23 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2007-10-09 19:27:04 $
  *
  *  Copyright 2006 Institute for Astronomy, University of Hawaii
@@ -298,6 +298,6 @@
                         continue;
                     if (i + j > fitOrder) {
-                        wcs->trans->x->mask[i][j] = 1;
-                        wcs->trans->y->mask[i][j] = 1;
+                        wcs->trans->x->coeffMask[i][j] = PS_POLY_MASK_SET;
+                        wcs->trans->y->coeffMask[i][j] = PS_POLY_MASK_SET;
                         continue;
                     }
Index: trunk/psModules/src/detrend/pmShutterCorrection.c
===================================================================
--- trunk/psModules/src/detrend/pmShutterCorrection.c	(revision 15252)
+++ trunk/psModules/src/detrend/pmShutterCorrection.c	(revision 15254)
@@ -230,6 +230,6 @@
 
     // mask out the terms we will not fit
-    line->mask[0][0] = 1;
-    line->mask[1][1] = 1;
+    line->coeffMask[0][0] = PS_POLY_MASK_SET;
+    line->coeffMask[1][1] = PS_POLY_MASK_SET;
     line->coeff[0][0] = 0;
     line->coeff[1][1] = 0;
Index: trunk/psModules/src/objects/pmPSF_IO.c
===================================================================
--- trunk/psModules/src/objects/pmPSF_IO.c	(revision 15252)
+++ trunk/psModules/src/objects/pmPSF_IO.c	(revision 15254)
@@ -6,6 +6,6 @@
  *  @author EAM, IfA
  *
- *  @version $Revision: 1.26 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2007-10-06 01:02:49 $
+ *  @version $Revision: 1.27 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2007-10-09 19:26:25 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -358,5 +358,5 @@
                         psMetadataAddF32 (row, PS_LIST_TAIL, "VALUE",      0, "", poly->coeff[ix][iy]);
                         psMetadataAddF32 (row, PS_LIST_TAIL, "ERROR",      0, "", poly->coeffErr[ix][iy]);
-                        psMetadataAddU8  (row, PS_LIST_TAIL, "MASK",       0, "", poly->mask[ix][iy]);
+                        psMetadataAddU8  (row, PS_LIST_TAIL, "MASK",       0, "", poly->coeffMask[ix][iy]);
 
                         psArrayAdd (psfTable, 100, row);
@@ -710,7 +710,7 @@
             assert (xPow <= poly->nX);
             assert (yPow <= poly->nY);
-            poly->coeff[xPow][yPow]    = psMetadataLookupF32 (&status, row, "VALUE");
-            poly->coeffErr[xPow][yPow] = psMetadataLookupF32 (&status, row, "ERROR");
-            poly->mask[xPow][yPow]     = psMetadataLookupU8  (&status, row, "MASK");
+            poly->coeff[xPow][yPow]     = psMetadataLookupF32 (&status, row, "VALUE");
+            poly->coeffErr[xPow][yPow]  = psMetadataLookupF32 (&status, row, "ERROR");
+            poly->coeffMask[xPow][yPow] = psMetadataLookupU8  (&status, row, "MASK");
         }
     }
Index: trunk/psModules/src/objects/pmPSFtry.c
===================================================================
--- trunk/psModules/src/objects/pmPSFtry.c	(revision 15252)
+++ trunk/psModules/src/objects/pmPSFtry.c	(revision 15254)
@@ -5,6 +5,6 @@
  *  @author EAM, IfA
  *
- *  @version $Revision: 1.48 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2007-09-25 22:05:05 $
+ *  @version $Revision: 1.49 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2007-10-09 19:26:25 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -280,5 +280,5 @@
     // linear clipped fit of ApResid to r2rflux
     psPolynomial1D *poly = psPolynomial1DAlloc (PS_POLYNOMIAL_ORD, 1);
-    poly->mask[1] = 1; // fit only a constant offset (no SKYBIAS)
+    poly->coeffMask[1] = PS_POLY_MASK_SET; // fit only a constant offset (no SKYBIAS)
 
     // XXX replace this with a psVectorStats call?  since we are not fitting the trend
Index: trunk/psModules/src/objects/pmTrend2D.c
===================================================================
--- trunk/psModules/src/objects/pmTrend2D.c	(revision 15252)
+++ trunk/psModules/src/objects/pmTrend2D.c	(revision 15254)
@@ -3,6 +3,6 @@
  *  @author EAM, IfA
  *
- *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2007-09-24 21:27:58 $
+ *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2007-10-09 19:26:25 $
  *
  *  Copyright 2004 Institute for Astronomy, University of Hawaii
@@ -48,7 +48,7 @@
 	    for (int ny = 0; ny < trend->poly->nY + 1; ny++) {
 		if (nx + ny >= PS_MAX (trend->poly->nX, trend->poly->nY) + 1) {
-		    trend->poly->mask[nx][ny] = 1;
+		    trend->poly->coeffMask[nx][ny] = PS_POLY_MASK_SET;
 		} else {
-		    trend->poly->mask[nx][ny] = 0;
+		    trend->poly->coeffMask[nx][ny] = PS_POLY_MASK_NONE;
 		}
 	    }
@@ -96,7 +96,7 @@
 	    for (int ny = 0; ny < trend->poly->nY + 1; ny++) {
 		if (nx + ny >= PS_MAX (trend->poly->nX, trend->poly->nY) + 1) {
-		    trend->poly->mask[nx][ny] = 1;
+		    trend->poly->coeffMask[nx][ny] = PS_POLY_MASK_SET;
 		} else {
-		    trend->poly->mask[nx][ny] = 0;
+		    trend->poly->coeffMask[nx][ny] = PS_POLY_MASK_NONE;
 		}
 	    }
@@ -137,7 +137,7 @@
 	    for (int ny = 0; ny < trend->poly->nY + 1; ny++) {
 		if (nx + ny >= PS_MAX (trend->poly->nX, trend->poly->nY) + 1) {
-		    trend->poly->mask[nx][ny] = 1;
+		    trend->poly->coeffMask[nx][ny] = PS_POLY_MASK_SET;
 		} else {
-		    trend->poly->mask[nx][ny] = 0;
+		    trend->poly->coeffMask[nx][ny] = PS_POLY_MASK_NONE;
 		}
 	    }
