Index: /branches/haf_branches/ppMerge2010/psLib/src/math/psPolynomialMD.c
===================================================================
--- /branches/haf_branches/ppMerge2010/psLib/src/math/psPolynomialMD.c	(revision 29009)
+++ /branches/haf_branches/ppMerge2010/psLib/src/math/psPolynomialMD.c	(revision 29010)
@@ -72,8 +72,11 @@
         float coord = coords->data.F32[i]; // Coordinate of interest
         double value = coord;           // Value of polynomial stages
+	
         buffer->data.F64[index++] = value;
+	
         for (int j = 2; j <= order; j++, index++) {
             value *= coord;
             buffer->data.F64[index] = value;
+	    
         }
     }
@@ -83,9 +86,11 @@
         for (int j = 0; j < i; j++) {
             matrix->data.F64[i][j] = buffer->data.F64[i] * buffer->data.F64[j] * invSigma2;
+	    //	    psTrace("psLib.math", 4, "matrix %d %d %e %f %f\n",i, j, matrix->data.F64[i][j] , matrix->data.F64[i][j], buffer->data.F64[i] );
         }
         matrix->data.F64[i][i] = PS_SQR(buffer->data.F64[i]) * invSigma2;
+	//	psTrace("psLib.math", 4, "matrix %d %d %e %f %f\n",i,i, matrix->data.F64[i][i] , matrix->data.F64[i][i] , buffer->data.F64[i]);
         vector->data.F64[i] = value * buffer->data.F64[i] * invSigma2;
     }
-
+    // psTrace("psLib.math", 4, "hey we got here %ld\n",poly->coeff->n );
     return;
 }
@@ -120,5 +125,8 @@
         for (int k = j + 1; k < numTerms; k++) {
             matrix->data.F64[j][k] = matrix->data.F64[k][j];
-        }
+	    //psTrace("psLib.math", 4, "matrixjj %d %d %e %f \n",j,k, matrix->data.F64[k][j], matrix->data.F64[k][j]);
+	    
+        }
+	//psTrace("psLib.math", 4, "matrixjj %d %d %e %f \n",j,j, matrix->data.F64[j][j], matrix->data.F64[j][j]);
     }
 
@@ -297,5 +305,10 @@
             continue;
         }
-
+	
+	//	fprintf (stderr, "%f : ", values->data.F32[i]);
+	//	for (int j = 0; j < coords->n; j++) {
+	//  fprintf (stderr, "%f ", coords->data.F32[j]);
+	//	}
+	//fprintf (stderr, "\n");
 	float err = errors ? errors->data.F32[i] : 0.0;
         polynomialMDLeastSquares(poly, poly->tmpMatrix, poly->tmpVector, coords, values->data.F32[i], err, poly->fitBuffer);
@@ -317,5 +330,5 @@
 
     polynomialMDStdev(poly, poly->deviations, coordsArray, values, mask, maskVal);
-
+    psTrace("psLib.math", 7, "hey we got here %ld\n",poly->coeff->n );
     return true;
 }
@@ -329,5 +342,7 @@
     PS_ASSERT_VECTOR_NON_NULL(values, false);
     PS_ASSERT_VECTOR_TYPE(values, PS_TYPE_F32, false);
+    //fprintf(stderr, "inside mdclipffit\n");
     if (errors) {
+      //  fprintf(stderr, "there are errors and they are in MDClipfit!\n");
         PS_ASSERT_VECTOR_NON_NULL(errors, false);
         PS_ASSERT_VECTOR_TYPE(errors, PS_TYPE_F32, false);
@@ -406,6 +421,8 @@
 
     if (numClipped > 0) {
+      psTrace("psLib.math", 9, "redoing psPolynomialMDFit, clipped some points\n");
         // Need to do a final re-evaluation of the fit
         if (!psPolynomialMDFit(poly, values, errors, poly->ownMask, maskVal, coordsArray)) {
+	  
             return false;
         }
@@ -467,6 +484,8 @@
     PS_ASSERT_VECTOR_NON_NULL(values, false);
     PS_ASSERT_VECTOR_TYPE(values, PS_TYPE_F32, false);
+        psTrace("psLib.math", 3, "we got here\n");
     if (errors) {
-        PS_ASSERT_VECTOR_NON_NULL(errors, false);
+            psTrace("psLib.math", 3, "errors got passed\n");
+         PS_ASSERT_VECTOR_NON_NULL(errors, false);
         PS_ASSERT_VECTOR_TYPE(errors, PS_TYPE_F32, false);
         PS_ASSERT_VECTORS_SIZE_EQUAL(values, errors, false);
@@ -507,8 +526,9 @@
 
         polynomialMDLeastSquares(poly, matrices->data[i], vectors->data[i], coords, values->data.F32[i],
-                                 errors ? errors->data.F32[i] : 0.0, buffer);
+                                  ? errors->data.F32[i] : 0.0, buffer);
     }
     psFree(buffer);
-
+ 
+  
     // Iterate over the solution
     int numGood = numValues;            // Number of good values
