Index: trunk/psphot/src/psPolynomials.c
===================================================================
--- trunk/psphot/src/psPolynomials.c	(revision 4901)
+++ trunk/psphot/src/psPolynomials.c	(revision 4954)
@@ -1,3 +1,10 @@
 # include "psphot.h"
+
+// XXX EAM : this file defines alternate versions of the polynomial fitting
+//           functions.  these differ from psLib v.0.5.0 in the definition 
+//           of nOrder (here we use nOrder in the mathematical sense, not
+//           like IRAF.  ie, a linear function is of nOrder 1)
+//           psLib v 0.7.0 should be in sync with out defintion of nOrder
+//           If so, we can drop these functions and use the psLib versions.
 
 // write out the terms of the given 1D polynomial
@@ -9,9 +16,9 @@
 }    
 
-psF32 Polynomial1DEval_EAM(psF32 x, const psPolynomial1D* myPoly)
+psF64 Polynomial1DEval_EAM(psF64 x, const psPolynomial1D* myPoly)
 {
     psS32 loop_x = 0;
-    psF32 polySum = 0.0;
-    psF32 xSum = 1.0;
+    psF64 polySum = 0.0;
+    psF64 xSum = 1.0;
 
     for (loop_x = 0; loop_x < myPoly->n + 1; loop_x++) {
@@ -28,7 +35,7 @@
 				       const psVector *x)
 {
-    PS_POLY_CHECK_NULL(myPoly, NULL);
-    PS_VECTOR_CHECK_NULL(x, NULL);
-    PS_VECTOR_CHECK_TYPE(x, PS_TYPE_F64, NULL);
+    // PS_POLY_CHECK_NULL(myPoly, NULL);
+    // PS_VECTOR_CHECK_NULL(x, NULL);
+    // PS_VECTOR_CHECK_TYPE(x, PS_TYPE_F64, NULL);
 
     psVector *tmp;
@@ -56,5 +63,5 @@
 				  psPolynomialType type)
 {
-    PS_INT_CHECK_NON_NEGATIVE(nOrder, NULL);
+    // PS_INT_CHECK_NON_NEGATIVE(nOrder, NULL);
 
     psS32 i = 0;
@@ -65,6 +72,6 @@
     newPoly->type = type;
     newPoly->n = nOrder;
-    newPoly->coeff = (psF32 *)psAlloc(nTerm * sizeof(psF32));
-    newPoly->coeffErr = (psF32 *)psAlloc(nTerm * sizeof(psF32));
+    newPoly->coeff = (psF64 *)psAlloc(nTerm * sizeof(psF64));
+    newPoly->coeffErr = (psF64 *)psAlloc(nTerm * sizeof(psF64));
     newPoly->mask = (psU8 *)psAlloc(nTerm * sizeof(psU8));
     for (i = 0; i < nTerm; i++) {
@@ -73,5 +80,5 @@
         newPoly->mask[i] = 0;
     }
-    p_psMemSetDeallocator(newPoly, (psFreeFcn) psPolynomial1DFree);
+    psMemSetDeallocator(newPoly, (psFreeFunc) psPolynomial1DFree);
     return(newPoly);
 }
@@ -120,4 +127,6 @@
     // dump minutiae
 # ifndef PS_NO_TRACE
+# if (0)
+    // XXX EAM : change from FILE to fd breaks this code:
     if (psTraceGetLevel (".psLib.dataManip.VectorFitPolynomial1DOrd") >= 5) {
       FILE *f = psTraceGetDestination ();
@@ -127,4 +136,5 @@
       }
     }
+# endif
 # endif
       
@@ -214,9 +224,9 @@
 
 {
-    PS_POLY_CHECK_NULL(myPoly, NULL);
-    PS_VECTOR_CHECK_NULL(x, NULL);
-    PS_VECTOR_CHECK_TYPE(x, PS_TYPE_F32, NULL);
-    PS_VECTOR_CHECK_NULL(y, NULL);
-    PS_VECTOR_CHECK_TYPE(y, PS_TYPE_F32, NULL);
+    // PS_POLY_CHECK_NULL(myPoly, NULL);
+    // PS_VECTOR_CHECK_NULL(x, NULL);
+    // PS_VECTOR_CHECK_TYPE(x, PS_TYPE_F32, NULL);
+    // PS_VECTOR_CHECK_NULL(y, NULL);
+    // PS_VECTOR_CHECK_TYPE(y, PS_TYPE_F32, NULL);
 
     psVector *tmp;
@@ -246,9 +256,9 @@
 
 {
-    PS_POLY_CHECK_NULL(myPoly, NULL);
-    PS_VECTOR_CHECK_NULL(x, NULL);
-    PS_VECTOR_CHECK_TYPE(x, PS_TYPE_F64, NULL);
-    PS_VECTOR_CHECK_NULL(y, NULL);
-    PS_VECTOR_CHECK_TYPE(y, PS_TYPE_F64, NULL);
+    // PS_POLY_CHECK_NULL(myPoly, NULL);
+    // PS_VECTOR_CHECK_NULL(x, NULL);
+    // PS_VECTOR_CHECK_TYPE(x, PS_TYPE_F64, NULL);
+    // PS_VECTOR_CHECK_NULL(y, NULL);
+    // PS_VECTOR_CHECK_TYPE(y, PS_TYPE_F64, NULL);
 
     psVector *tmp;
@@ -291,6 +301,6 @@
                                     psPolynomialType type)
 {
-    PS_INT_CHECK_NON_NEGATIVE(nXorder, NULL);
-    PS_INT_CHECK_NON_NEGATIVE(nYorder, NULL);
+    // PS_INT_CHECK_NON_NEGATIVE(nXorder, NULL);
+    // PS_INT_CHECK_NON_NEGATIVE(nYorder, NULL);
 
     psS32 x = 0;
@@ -305,11 +315,13 @@
     newPoly->nY = nYorder;
 
-    newPoly->coeff = (psF32 **)psAlloc(nXterm * sizeof(psF32 *));
-    newPoly->coeffErr = (psF32 **)psAlloc(nXterm * sizeof(psF32 *));
-    newPoly->mask = (psU8 **)psAlloc(nXterm * sizeof(psU8 *));
+    newPoly->coeff = (psF64 **)psAlloc(nXterm * sizeof(psF64 *));
+    newPoly->coeffErr = (psF64 **)psAlloc(nXterm * sizeof(psF64 *));
+    newPoly->mask = (char **)psAlloc(nXterm * sizeof(char *));
+    // XXX EAM : this is an error in the definition of the polynomial mask 
+    //           (should be psU8 not char)
     for (x = 0; x < nXterm; x++) {
-        newPoly->coeff[x] = (psF32 *)psAlloc(nYterm * sizeof(psF32));
-        newPoly->coeffErr[x] = (psF32 *)psAlloc(nYterm * sizeof(psF32));
-        newPoly->mask[x] = (psU8 *)psAlloc(nYterm * sizeof(psU8));
+        newPoly->coeff[x] = (psF64 *)psAlloc(nYterm * sizeof(psF64));
+        newPoly->coeffErr[x] = (psF64 *)psAlloc(nYterm * sizeof(psF64));
+        newPoly->mask[x] = (char *)psAlloc(nYterm * sizeof(char));
     }
     for (x = 0; x < nXterm; x++) {
@@ -320,5 +332,5 @@
         }
     }
-    p_psMemSetDeallocator(newPoly, (psFreeFcn) psPolynomial2DFree);
+    psMemSetDeallocator(newPoly, (psFreeFunc) psPolynomial2DFree);
     return(newPoly);
 }
@@ -510,9 +522,9 @@
 			    const psVector* dz)
 {
-    PS_VECTOR_CHECK_NULL(mask, NULL);
-    PS_VECTOR_CHECK_NULL(x, NULL);
-    PS_VECTOR_CHECK_NULL(y, NULL);
-    PS_VECTOR_CHECK_NULL(z, NULL);
-    PS_VECTOR_CHECK_NULL(dz, NULL);
+    // PS_VECTOR_CHECK_NULL(mask, NULL);
+    // PS_VECTOR_CHECK_NULL(x, NULL);
+    // PS_VECTOR_CHECK_NULL(y, NULL);
+    // PS_VECTOR_CHECK_NULL(z, NULL);
+    // PS_VECTOR_CHECK_NULL(dz, NULL);
 
     psVector *zFit   = NULL;
@@ -548,17 +560,15 @@
 // XXX EAM : VectorFitPolynomial2DOrd and Polynomial2DEvalVector require different types (F32 vs F64)
 
-# if (0) // moved to psLib
-// XXX EAM : this version uses myPoly->nX as Norder, not Nterms
-psF32 Polynomial2DEval(const psPolynomial2D* myPoly,
-		       psF32 x,
-		       psF32 y)
-{
-    PS_POLY_CHECK_NULL(myPoly, NAN);
+psF64 Polynomial2DEval(const psPolynomial2D* myPoly,
+		       psF64 x,
+		       psF64 y)
+{
+    // PS_POLY_CHECK_NULL(myPoly, NAN);
 
     psS32 loop_x = 0;
     psS32 loop_y = 0;
-    psF32 polySum = 0.0;
-    psF32 xSum = 1.0;
-    psF32 ySum = 1.0;
+    psF64 polySum = 0.0;
+    psF64 xSum = 1.0;
+    psF64 ySum = 1.0;
 
     // XXX EAM : nX is order, not nTerms
@@ -577,4 +587,2 @@
     return(polySum);
 }
-# endif
-
