Index: trunk/psLib/src/math/psSpline.c
===================================================================
--- trunk/psLib/src/math/psSpline.c	(revision 2789)
+++ trunk/psLib/src/math/psSpline.c	(revision 2791)
@@ -7,6 +7,6 @@
  *  polynomials.  It also contains a Gaussian functions.
  *
- *  @version $Revision: 1.76 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-12-22 21:00:36 $
+ *  @version $Revision: 1.77 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-12-22 23:09:40 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -275,5 +275,4 @@
 /*****************************************************************************
     Polynomial coefficients will be accessed in [w][x][y][z] fashion.
- 
  *****************************************************************************/
 static psF32 ordPolynomial1DEval(psF32 x, const psPolynomial1D* myPoly)
@@ -309,5 +308,4 @@
 static psF32 chebPolynomial1DEval(psF32 x, const psPolynomial1D* myPoly)
 {
-    //    PS_FLOAT_CHECK_RANGE(x, -1.0, 1.0, 0.0);
     PS_FLOAT_CHECK_RANGE(x, -1.0, 1.0, 0.0);
     psVector *d;
@@ -355,5 +353,7 @@
 }
 
-static psF32 ordPolynomial2DEval(psF32 x, psF32 y, const psPolynomial2D* myPoly)
+static psF32 ordPolynomial2DEval(psF32 x,
+                                 psF32 y,
+                                 const psPolynomial2D* myPoly)
 {
     PS_POLY_CHECK_NULL(myPoly, NAN);
@@ -381,4 +381,6 @@
 static psF32 chebPolynomial2DEval(psF32 x, psF32 y, const psPolynomial2D* myPoly)
 {
+    PS_FLOAT_CHECK_RANGE(x, -1.0, 1.0, 0.0);
+    PS_FLOAT_CHECK_RANGE(y, -1.0, 1.0, 0.0);
     PS_POLY_CHECK_NULL(myPoly, NAN);
 
@@ -444,4 +446,7 @@
 static psF32 chebPolynomial3DEval(psF32 x, psF32 y, psF32 z, const psPolynomial3D* myPoly)
 {
+    PS_FLOAT_CHECK_RANGE(x, -1.0, 1.0, 0.0);
+    PS_FLOAT_CHECK_RANGE(y, -1.0, 1.0, 0.0);
+    PS_FLOAT_CHECK_RANGE(z, -1.0, 1.0, 0.0);
     psS32 loop_x = 0;
     psS32 loop_y = 0;
@@ -519,4 +524,8 @@
 static psF32 chebPolynomial4DEval(psF32 w, psF32 x, psF32 y, psF32 z, const psPolynomial4D* myPoly)
 {
+    PS_FLOAT_CHECK_RANGE(w, -1.0, 1.0, 0.0);
+    PS_FLOAT_CHECK_RANGE(x, -1.0, 1.0, 0.0);
+    PS_FLOAT_CHECK_RANGE(y, -1.0, 1.0, 0.0);
+    PS_FLOAT_CHECK_RANGE(z, -1.0, 1.0, 0.0);
     psS32 loop_w = 0;
     psS32 loop_x = 0;
@@ -588,4 +597,5 @@
 static psF64 dChebPolynomial1DEval(psF64 x, const psDPolynomial1D* myPoly)
 {
+    PS_FLOAT_CHECK_RANGE(x, -1.0, 1.0, 0.0);
     psVector *d;
     psS32 n;
@@ -635,4 +645,6 @@
 static psF64 dChebPolynomial2DEval(psF64 x, psF64 y, const psDPolynomial2D* myPoly)
 {
+    PS_FLOAT_CHECK_RANGE(x, -1.0, 1.0, 0.0);
+    PS_FLOAT_CHECK_RANGE(y, -1.0, 1.0, 0.0);
     psS32 loop_x = 0;
     psS32 loop_y = 0;
@@ -697,4 +709,7 @@
 static psF64 dChebPolynomial3DEval(psF64 x, psF64 y, psF64 z, const psDPolynomial3D* myPoly)
 {
+    PS_FLOAT_CHECK_RANGE(x, -1.0, 1.0, 0.0);
+    PS_FLOAT_CHECK_RANGE(y, -1.0, 1.0, 0.0);
+    PS_FLOAT_CHECK_RANGE(z, -1.0, 1.0, 0.0);
     psS32 loop_x = 0;
     psS32 loop_y = 0;
@@ -772,4 +787,8 @@
 static psF64 dChebPolynomial4DEval(psF64 w, psF64 x, psF64 y, psF64 z, const psDPolynomial4D* myPoly)
 {
+    PS_FLOAT_CHECK_RANGE(w, -1.0, 1.0, 0.0);
+    PS_FLOAT_CHECK_RANGE(x, -1.0, 1.0, 0.0);
+    PS_FLOAT_CHECK_RANGE(y, -1.0, 1.0, 0.0);
+    PS_FLOAT_CHECK_RANGE(z, -1.0, 1.0, 0.0);
     psS32 loop_w = 0;
     psS32 loop_x = 0;
@@ -902,4 +921,8 @@
                               psF32 x)
 {
+    PS_PTR_CHECK_NULL(domain, NAN)
+    PS_PTR_CHECK_NULL(range, NAN)
+    // XXX: Check valid values for n, order, and x?
+
     psS32 binNum;
     psS32 numIntPoints = order+1;
@@ -1866,7 +1889,7 @@
                                    psS32 order)
 {
-    PS_INT_CHECK_NON_NEGATIVE(order, NULL);
     PS_VECTOR_CHECK_NULL(bounds, NULL);
     PS_VECTOR_CHECK_EMPTY(bounds, NULL);
+    PS_INT_CHECK_NON_NEGATIVE(order, NULL);
 
     psSpline1D *tmp = NULL;
@@ -1976,4 +1999,7 @@
                           psScalar *x)
 {
+    PS_VECTOR_CHECK_NULL(bins, -4);
+    PS_VECTOR_CHECK_EMPTY(bins, -4);
+    PS_PTR_CHECK_NULL(x, -6);
     PS_PTR_CHECK_TYPE_EQUAL(x, bins, -3);
     psS8* strType;
