Index: /trunk/psLib/src/dataManip/psFunctions.h
===================================================================
--- /trunk/psLib/src/dataManip/psFunctions.h	(revision 1720)
+++ /trunk/psLib/src/dataManip/psFunctions.h	(revision 1721)
@@ -1,3 +1,2 @@
-
 /** @file psFunctions.h
 *  \brief Standard Mathematical Functions.
@@ -13,6 +12,6 @@
 *  @author George Gusciora, MHPCC
 *
-*  @version $Revision: 1.19 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2004-08-11 02:35:58 $
+*  @version $Revision: 1.20 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2004-09-08 06:04:10 $
 *
 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -57,7 +56,13 @@
 );
 
+typedef enum {
+    PS_POLYNOMIAL_ORD,                 ///< Ordinary Polynomial
+    PS_POLYNOMIAL_CHEB                 ///< Chebyshev Polynomial
+} psPolynomialType;
+
 /** One-dimensional polynomial */
 typedef struct
 {
+    psPolynomialType type;             ///< Polynomial type
     int n;                             ///< Number of terms
     float *coeff;                      ///< Coefficients
@@ -70,4 +75,5 @@
 typedef struct
 {
+    psPolynomialType type;             ///< Polynomial type
     int nX;                            ///< Number of terms in x
     int nY;                            ///< Number of terms in y
@@ -81,4 +87,5 @@
 typedef struct
 {
+    psPolynomialType type;             ///< Polynomial type
     int nX;                            ///< Number of terms in x
     int nY;                            ///< Number of terms in y
@@ -93,4 +100,5 @@
 typedef struct
 {
+    psPolynomialType type;             ///< Polynomial type
     int nW;                            ///< Number of terms in w
     int nX;                            ///< Number of terms in x
@@ -109,5 +117,6 @@
  */
 psPolynomial1D* psPolynomial1DAlloc(
-    int n                              ///< Number of terms
+    int n,                              ///< Number of terms
+    psPolynomialType type               ///< Polynomial Type
 );
 
@@ -118,5 +127,6 @@
 psPolynomial2D* psPolynomial2DAlloc(
     int nX,                            ///< Number of terms in x
-    int nY                             ///< Number of terms in y
+    int nY,                            ///< Number of terms in y
+    psPolynomialType type              ///< Polynomial Type
 );
 
@@ -128,5 +138,6 @@
     int nX,                            ///< Number of terms in x
     int nY,                            ///< Number of terms in y
-    int nZ                             ///< Number of terms in z
+    int nZ,                            ///< Number of terms in z
+    psPolynomialType type              ///< Polynomial Type
 );
 
@@ -139,5 +150,6 @@
     int nX,                            ///< Number of terms in x
     int nY,                            ///< Number of terms in y
-    int nZ                             ///< Number of terms in z
+    int nZ,                            ///< Number of terms in z
+    psPolynomialType type              ///< Polynomial Type
 );
 
@@ -184,4 +196,26 @@
 );
 
+psVector *psPolynomial1DEvalVector(const psVector *x,             ///< x locations at which to evaluate
+                                   const psPolynomial1D *myPoly   ///< Coefficients for the polynomial
+                                  );
+
+psVector *psPolynomial2DEvalVector(const psVector *x,             ///< x locations at which to evaluate
+                                   const psVector *y,             ///< y locations at which to evaluate
+                                   const psPolynomial2D *myPoly   ///< Coefficients for the polynomial
+                                  );
+
+psVector *psPolynomial3DEvalVector(const psVector *x,             ///< x locations at which to evaluate
+                                   const psVector *y,             ///< y locations at which to evaluate
+                                   const psVector *z,             ///< z locations at which to evaluate
+                                   const psPolynomial3D *myPoly   ///< Coefficients for the polynomial
+                                  );
+
+psVector *psPolynomial4DEvalVector(const psVector *w,             ///< w locations at which to evaluate
+                                   const psVector *x,             ///< x locations at which to evaluate
+                                   const psVector *y,             ///< y locations at which to evaluate
+                                   const psVector *z,             ///< z locations at which to evaluate
+                                   const psPolynomial4D *myPoly   ///< Coefficients for the polynomial
+                                  );
+
 /*****************************************************************************/
 
@@ -191,4 +225,5 @@
 typedef struct
 {
+    psPolynomialType type;             ///< Polynomial type
     int n;                             ///< Number of terms
     double *coeff;                     ///< Coefficients
@@ -201,4 +236,5 @@
 typedef struct
 {
+    psPolynomialType type;             ///< Polynomial type
     int nX;                            ///< Number of terms in x
     int nY;                            ///< Number of terms in y
@@ -212,4 +248,5 @@
 typedef struct
 {
+    psPolynomialType type;             ///< Polynomial type
     int nX;                            ///< Number of terms in x
     int nY;                            ///< Number of terms in y
@@ -224,4 +261,5 @@
 typedef struct
 {
+    psPolynomialType type;             ///< Polynomial type
     int nW;                            ///< Number of terms in w
     int nX;                            ///< Number of terms in x
@@ -239,5 +277,6 @@
  */
 psDPolynomial1D* psDPolynomial1DAlloc(
-    int n                              ///< Number of terms
+    int n,                             ///< Number of terms
+    psPolynomialType type              ///< Polynomial Type
 );
 
@@ -248,5 +287,6 @@
 psDPolynomial2D* psDPolynomial2DAlloc(
     int nX,                            ///< Number of terms in x
-    int nY                             ///< Number of terms in y
+    int nY,                            ///< Number of terms in y
+    psPolynomialType type              ///< Polynomial Type
 );
 
@@ -258,5 +298,6 @@
     int nX,                            ///< Number of terms in x
     int nY,                            ///< Number of terms in y
-    int nZ                             ///< Number of terms in z
+    int nZ,                            ///< Number of terms in z
+    psPolynomialType type              ///< Polynomial Type
 );
 
@@ -269,5 +310,6 @@
     int nX,                            ///< Number of terms in x
     int nY,                            ///< Number of terms in y
-    int nZ                             ///< Number of terms in z
+    int nZ,                            ///< Number of terms in z
+    psPolynomialType type              ///< Polynomial Type
 );
 
@@ -314,4 +356,50 @@
 );
 
+psVector *psDPolynomial1DEvalVector(const psVector *x,             ///< x locations at which to evaluate
+                                    const psDPolynomial1D *myPoly  ///< Coefficients for the polynomial
+                                   );
+
+psVector *psDPolynomial2DEvalVector(const psVector *x,             ///< x locations at which to evaluate
+                                    const psVector *y,             ///< y locations at which to evaluate
+                                    const psDPolynomial2D *myPoly  ///< Coefficients for the polynomial
+                                   );
+
+psVector *psDPolynomial3DEvalVector(const psVector *x,             ///< x locations at which to evaluate
+                                    const psVector *y,             ///< y locations at which to evaluate
+                                    const psVector *z,             ///< z locations at which to evaluate
+                                    const psDPolynomial3D *myPoly  ///< Coefficients for the polynomial
+                                   );
+
+psVector *psDPolynomial4DEvalVector(const psVector *w,             ///< w locations at which to evaluate
+                                    const psVector *x,             ///< x locations at which to evaluate
+                                    const psVector *y,             ///< y locations at which to evaluate
+                                    const psVector *z,             ///< z locations at which to evaluate
+                                    const psDPolynomial4D *myPoly  ///< Coefficients for the polynomial
+                                   );
+
+
+
+typedef struct
+{
+    int n;
+    psPolynomial1D **spline;
+    float *domains;
+}
+psSpline1D;
+
+psSpline1D *psSpline1DAlloc(int n,
+                            int order,
+                            float min,
+                            float max);
+
+psSpline1D *psSpline1DAllocGeneric(const psVector *bounds,
+                                   int order);
+
+float psSpline1DEval(const psSpline1D *spline,
+                     float x);
+
+psVector *psSpline1DEvalVector(const psVector *x,
+                               const psSpline1D *spline);
+
 /* \} */// End of MathGroup Functions
 
Index: /trunk/psLib/src/sysUtils/psTrace.h
===================================================================
--- /trunk/psLib/src/sysUtils/psTrace.h	(revision 1720)
+++ /trunk/psLib/src/sysUtils/psTrace.h	(revision 1721)
@@ -1,3 +1,2 @@
-
 /** @file psTrace.h
  *  \brief basic run-time trace facilities
@@ -10,6 +9,6 @@
  *  @author George Gusciora, MHPCC
  *
- *  @version $Revision: 1.18 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-09-08 06:03:26 $
+ *  @version $Revision: 1.19 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-09-08 06:03:43 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
