Index: trunk/psModules/src/astrom/pmAstrometryUtils.c
===================================================================
--- trunk/psModules/src/astrom/pmAstrometryUtils.c	(revision 12696)
+++ 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
