Index: /trunk/psLib/src/image/psImageStats.c
===================================================================
--- /trunk/psLib/src/image/psImageStats.c	(revision 1071)
+++ /trunk/psLib/src/image/psImageStats.c	(revision 1072)
@@ -155,4 +155,11 @@
 }
 
+/*****************************************************************************
+p_psCalcScaleFactorsEval(n): The Chebyshev polynomials are defined over the
+interval [-1.0 : 1.0].  Images typically have sizes of 512x512 or more.  In
+order to use Chebyshev polynomials, we must scales the coordinates from
+0:512 to -1:1.  This routine takes as input an integer N and produces as
+output a vector of evenly spaced floating point values between -1.0:1.0.
+ *****************************************************************************/
 float *p_psCalcScaleFactorsEval(int n)
 {
@@ -200,21 +207,16 @@
 
 /*****************************************************************************
-    psImageFitPolynomial():
- This routine takes as input a 2-D image and produces as output
- the coefficients of the Chebyshev polynomials which match that
- input image.
-    Input:
-    Output:
-    Internal Data Structures:
- 
- chebPolys[i][j] 
- 
- sums[i][j]: This will contain the sum of 
-  input->data.F32[x][y] *
+psImageFitPolynomial(): This routine takes as input a 2-D image and produces
+as output the coefficients of the Chebyshev polynomials which match that
+input image.
+  Input:
+  Output:
+  Internal Data Structures:
+    chebPolys[i][j] 
+    sums[i][j]: This will contain the sum of 
+                input->data.F32[x][y] *
                 psEvalPolynomial1D((float) x, chebPolys[i]) *
                 psEvalPolynomial1D((float) y, chebPolys[j]);
-      over all pixels (x,y) in the image.
- 
- 
+        over all pixels (x,y) in the image.
  *****************************************************************************/
 psPolynomial2D *
@@ -253,5 +255,5 @@
     chebPolys = p_psCreateChebyshevPolys(maxChebyPoly);
 
-    // Sanity check for the Chebyshevs
+    // Sanity check for the Chebyshevs.
     for (i=0;i<coeffs->nX;i++) {
         for (j=0;j<coeffs->nY;j++) {
@@ -262,7 +264,9 @@
 
             }
-        }
-    }
-
+            printf("SUM(Cheby(%d) * Cheby(%d)) is %f\n", i, j, tmp);
+        }
+    }
+
+    // Compute the sums[][] data structure.
     for (i=0;i<coeffs->nX;i++) {
         for (j=0;j<coeffs->nY;j++) {
@@ -279,23 +283,34 @@
 
     // NOTE: Check the math on this at a later date.
-    coeffs->coeff[0][0] = sums[0][0] / ((float) (coeffs->nX * coeffs->nY));
-    for (i=0;i<coeffs->nX;i++) {
-        coeffs->coeff[i][0] = ((sums[i][0] * 2.0) /
-                               ((float) (coeffs->nX * coeffs->nY))) -
-                              coeffs->coeff[0][0];
-    }
-    for (j=0;j<coeffs->nY;j++) {
-        coeffs->coeff[0][j] =
-            ((sums[0][j] * 2.0) /
-             ((float) (coeffs->nX * coeffs->nY))) -
-            coeffs->coeff[0][0];
-    }
-    for (i=1;i<coeffs->nX;i++) {
-        for (j=1;j<coeffs->nY;j++) {
-            coeffs->coeff[i][j] =
-                ((sums[i][0] * 4.0) / ((float) (coeffs->nX * coeffs->nY))) -
-                (coeffs->coeff[0][0] +
-                 coeffs->coeff[i][0] +
-                 coeffs->coeff[0][j]);
+    //    coeffs->coeff[0][0] = sums[0][0] / ((float) (coeffs->nX * coeffs->nY));
+    //    for (i=0;i<coeffs->nX;i++) {
+    //        coeffs->coeff[i][0] = ((sums[i][0] * 2.0) /
+    //                               ((float) (coeffs->nX * coeffs->nY))) -
+    //                              coeffs->coeff[0][0];
+    //    }
+    //    for (j=0;j<coeffs->nY;j++) {
+    //        coeffs->coeff[0][j] =
+    //            ((sums[0][j] * 2.0) /
+    //             ((float) (coeffs->nX * coeffs->nY))) -
+    //            coeffs->coeff[0][0];
+    //    }
+
+    for (i=0;i<coeffs->nX;i++) {
+        for (j=0;j<coeffs->nY;j++) {
+            coeffs->coeff[i][j] = sums[i][j];
+            coeffs->coeff[i][j]/= ((float) coeffs->nX) * ((float) coeffs->nY);
+            if ((i != 0) && (j != 0)) {
+                coeffs->coeff[i][j]*= 4.0;
+            } else if ((i == 0) && (j == 0)) {
+                coeffs->coeff[i][j]*= 1.0;
+            } else {
+                coeffs->coeff[i][j]*= 2.0;
+            }
+
+            //            coeffs->coeff[i][j] =
+            //                ((sums[i][0] * 4.0) / ((float) (coeffs->nX * coeffs->nY))) -
+            //                (coeffs->coeff[0][0] +
+            //                 coeffs->coeff[i][0] +
+            //                 coeffs->coeff[0][j]);
         }
     }
Index: /trunk/psLib/src/imageops/psImageStats.c
===================================================================
--- /trunk/psLib/src/imageops/psImageStats.c	(revision 1071)
+++ /trunk/psLib/src/imageops/psImageStats.c	(revision 1072)
@@ -155,4 +155,11 @@
 }
 
+/*****************************************************************************
+p_psCalcScaleFactorsEval(n): The Chebyshev polynomials are defined over the
+interval [-1.0 : 1.0].  Images typically have sizes of 512x512 or more.  In
+order to use Chebyshev polynomials, we must scales the coordinates from
+0:512 to -1:1.  This routine takes as input an integer N and produces as
+output a vector of evenly spaced floating point values between -1.0:1.0.
+ *****************************************************************************/
 float *p_psCalcScaleFactorsEval(int n)
 {
@@ -200,21 +207,16 @@
 
 /*****************************************************************************
-    psImageFitPolynomial():
- This routine takes as input a 2-D image and produces as output
- the coefficients of the Chebyshev polynomials which match that
- input image.
-    Input:
-    Output:
-    Internal Data Structures:
- 
- chebPolys[i][j] 
- 
- sums[i][j]: This will contain the sum of 
-  input->data.F32[x][y] *
+psImageFitPolynomial(): This routine takes as input a 2-D image and produces
+as output the coefficients of the Chebyshev polynomials which match that
+input image.
+  Input:
+  Output:
+  Internal Data Structures:
+    chebPolys[i][j] 
+    sums[i][j]: This will contain the sum of 
+                input->data.F32[x][y] *
                 psEvalPolynomial1D((float) x, chebPolys[i]) *
                 psEvalPolynomial1D((float) y, chebPolys[j]);
-      over all pixels (x,y) in the image.
- 
- 
+        over all pixels (x,y) in the image.
  *****************************************************************************/
 psPolynomial2D *
@@ -253,5 +255,5 @@
     chebPolys = p_psCreateChebyshevPolys(maxChebyPoly);
 
-    // Sanity check for the Chebyshevs
+    // Sanity check for the Chebyshevs.
     for (i=0;i<coeffs->nX;i++) {
         for (j=0;j<coeffs->nY;j++) {
@@ -262,7 +264,9 @@
 
             }
-        }
-    }
-
+            printf("SUM(Cheby(%d) * Cheby(%d)) is %f\n", i, j, tmp);
+        }
+    }
+
+    // Compute the sums[][] data structure.
     for (i=0;i<coeffs->nX;i++) {
         for (j=0;j<coeffs->nY;j++) {
@@ -279,23 +283,34 @@
 
     // NOTE: Check the math on this at a later date.
-    coeffs->coeff[0][0] = sums[0][0] / ((float) (coeffs->nX * coeffs->nY));
-    for (i=0;i<coeffs->nX;i++) {
-        coeffs->coeff[i][0] = ((sums[i][0] * 2.0) /
-                               ((float) (coeffs->nX * coeffs->nY))) -
-                              coeffs->coeff[0][0];
-    }
-    for (j=0;j<coeffs->nY;j++) {
-        coeffs->coeff[0][j] =
-            ((sums[0][j] * 2.0) /
-             ((float) (coeffs->nX * coeffs->nY))) -
-            coeffs->coeff[0][0];
-    }
-    for (i=1;i<coeffs->nX;i++) {
-        for (j=1;j<coeffs->nY;j++) {
-            coeffs->coeff[i][j] =
-                ((sums[i][0] * 4.0) / ((float) (coeffs->nX * coeffs->nY))) -
-                (coeffs->coeff[0][0] +
-                 coeffs->coeff[i][0] +
-                 coeffs->coeff[0][j]);
+    //    coeffs->coeff[0][0] = sums[0][0] / ((float) (coeffs->nX * coeffs->nY));
+    //    for (i=0;i<coeffs->nX;i++) {
+    //        coeffs->coeff[i][0] = ((sums[i][0] * 2.0) /
+    //                               ((float) (coeffs->nX * coeffs->nY))) -
+    //                              coeffs->coeff[0][0];
+    //    }
+    //    for (j=0;j<coeffs->nY;j++) {
+    //        coeffs->coeff[0][j] =
+    //            ((sums[0][j] * 2.0) /
+    //             ((float) (coeffs->nX * coeffs->nY))) -
+    //            coeffs->coeff[0][0];
+    //    }
+
+    for (i=0;i<coeffs->nX;i++) {
+        for (j=0;j<coeffs->nY;j++) {
+            coeffs->coeff[i][j] = sums[i][j];
+            coeffs->coeff[i][j]/= ((float) coeffs->nX) * ((float) coeffs->nY);
+            if ((i != 0) && (j != 0)) {
+                coeffs->coeff[i][j]*= 4.0;
+            } else if ((i == 0) && (j == 0)) {
+                coeffs->coeff[i][j]*= 1.0;
+            } else {
+                coeffs->coeff[i][j]*= 2.0;
+            }
+
+            //            coeffs->coeff[i][j] =
+            //                ((sums[i][0] * 4.0) / ((float) (coeffs->nX * coeffs->nY))) -
+            //                (coeffs->coeff[0][0] +
+            //                 coeffs->coeff[i][0] +
+            //                 coeffs->coeff[0][j]);
         }
     }
Index: /trunk/psLib/test/dataManip/builddir/tst_psFunc00.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psFunc00.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psFunc00.d	(revision 1072)
@@ -3,7 +3,8 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h \
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h \
   ../../include/psFunctions.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psFunc01.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psFunc01.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psFunc01.d	(revision 1072)
@@ -3,7 +3,8 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h \
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h \
   ../../include/psFunctions.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psHist00.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psHist00.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psHist00.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psHist01.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psHist01.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psHist01.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psHist02.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psHist02.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psHist02.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psImageFFT.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psImageFFT.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psImageFFT.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psImageIO.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psImageIO.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psImageIO.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psImageStats00.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psImageStats00.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psImageStats00.d	(revision 1072)
@@ -3,7 +3,8 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h \
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h \
   ../../include/psImageStats.h ../../include/psFunctions.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psImageStats01.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psImageStats01.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psImageStats01.d	(revision 1072)
@@ -3,7 +3,8 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h \
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h \
   ../../include/psImageStats.h ../../include/psFunctions.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psImageStats02.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psImageStats02.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psImageStats02.d	(revision 1072)
@@ -3,7 +3,8 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h \
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h \
   ../../include/psImageStats.h ../../include/psFunctions.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psMatrix01.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psMatrix01.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psMatrix01.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psMatrix02.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psMatrix02.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psMatrix02.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psMatrix03.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psMatrix03.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psMatrix03.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psMatrix04.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psMatrix04.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psMatrix04.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psMatrix05.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psMatrix05.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psMatrix05.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psMatrix06.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psMatrix06.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psMatrix06.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psMatrix07.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psMatrix07.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psMatrix07.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psStats00.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psStats00.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psStats00.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psStats01.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psStats01.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psStats01.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psStats02.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psStats02.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psStats02.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psStats03.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psStats03.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psStats03.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psStats05.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psStats05.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psStats05.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psStats06.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psStats06.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psStats06.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psStats07.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psStats07.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psStats07.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psStats08.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psStats08.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psStats08.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psStats09.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psStats09.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psStats09.d	(revision 1072)
@@ -3,7 +3,8 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h ../../include/psTest.h \
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h ../../include/psTest.h \
   ../../include/psImageStats.h ../../include/psFunctions.h
Index: /trunk/psLib/test/dataManip/builddir/tst_psVectorFFT.d
===================================================================
--- /trunk/psLib/test/dataManip/builddir/tst_psVectorFFT.d	(revision 1071)
+++ /trunk/psLib/test/dataManip/builddir/tst_psVectorFFT.d	(revision 1072)
@@ -3,6 +3,7 @@
   ../../include/psTrace.h ../../include/psAbort.h ../../include/psError.h \
   ../../include/psString.h ../../include/psType.h ../../include/psList.h \
-  ../../include/psVector.h ../../include/psHash.h ../../include/psImage.h \
+  ../../include/psVector.h ../../include/psHash.h \
+  ../../include/psScalar.h ../../include/psImage.h \
   ../../include/psBitSet.h ../../include/psSort.h ../../include/psStats.h \
-  ../../include/psMatrix.h ../../include/psFFT.h \
-  ../../include/psImageIO.h
+  ../../include/psMatrix.h ../../include/psMatrixVectorArithmetic.h \
+  ../../include/psFFT.h ../../include/psImageIO.h
Index: /trunk/psLib/test/image/tst_psImageStats02.c
===================================================================
--- /trunk/psLib/test/image/tst_psImageStats02.c	(revision 1071)
+++ /trunk/psLib/test/image/tst_psImageStats02.c	(revision 1072)
@@ -14,8 +14,10 @@
 #include "psImage.h"
 #include "psImageStats.h"
+#include <float.h>
+#include <math.h>
 #define IMAGE_SIZE 3
 #define CHEBY_X_DIM 3
 #define CHEBY_Y_DIM 3
-
+#define THRESHOLD 1.0
 int main()
 {
@@ -39,6 +41,7 @@
     for (i=0;i<IMAGE_SIZE;i++) {
         for (j=0;j<IMAGE_SIZE;j++) {
+            tmpImage->data.F32[i][j] = 4.0;
             tmpImage->data.F32[i][j] = (float) (i + j);
-            tmpImage->data.F32[i][j] = 4.0;
+            tmpImage->data.F32[i][j] = (float) (i + j) + (4.0 * (float) i);
             outImage->data.F32[i][j] = 0.0;
         }
@@ -53,4 +56,9 @@
 
     my2DPoly = psImageFitPolynomial(tmpImage, my2DPoly);
+    for (i=0;i<CHEBY_X_DIM;i++) {
+        for (j=0;j<CHEBY_Y_DIM;j++) {
+            printf("Cheby Polynomial (%d, %d) coefficient is %f\n", i, j, my2DPoly->coeff[i][j]);
+        }
+    }
 
     psMemCheckCorruption(1);
@@ -67,11 +75,18 @@
 
     rc = psImageEvalPolynomial(outImage, my2DPoly);
-    //    for (i=0;i<IMAGE_SIZE;i++) {
-    //        for (j=0;j<IMAGE_SIZE;j++) {
-    //             printf("pixel[%d][%d] is (%f, %f)\n", i, j,
-    //                   tmpImage->data.F32[i][j],
-    //                   outImage->data.F32[i][j]);
-    //        }
-    //    }
+    for (i=0;i<IMAGE_SIZE;i++) {
+        for (j=0;j<IMAGE_SIZE;j++) {
+
+            //             printf("pixel[%d][%d] is (%f, %f)\n", i, j,
+            //                     tmpImage->data.F32[i][j],
+            //                     outImage->data.F32[i][j]);
+            if (fabs(outImage->data.F32[i][j] - tmpImage->data.F32[i][j]) > THRESHOLD) {
+                printf("Pixel (%d, %d) is %f, should be %f\n", i, j,
+                       outImage->data.F32[i][j],
+                       tmpImage->data.F32[i][j]);
+            }
+
+        }
+    }
 
     psMemCheckCorruption(1);
