Index: trunk/psLib/src/math/psMinimize.c
===================================================================
--- trunk/psLib/src/math/psMinimize.c	(revision 2216)
+++ trunk/psLib/src/math/psMinimize.c	(revision 2219)
@@ -9,6 +9,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.70 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-10-27 20:32:49 $
+ *  @version $Revision: 1.71 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-10-27 21:42:21 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -173,4 +173,13 @@
                          float X)
 {
+    PS_PTR_CHECK_NULL(spline, NAN);
+    PS_INT_CHECK_NON_NEGATIVE(spline->n, NAN);
+    PS_PTR_CHECK_NULL(spline->domains, NAN);
+    PS_PTR_CHECK_NULL(spline->p_psDeriv2, NAN);
+    PS_VECTOR_CHECK_NULL(x, NAN);
+    PS_VECTOR_CHECK_TYPE(x, PS_TYPE_F32, NAN);
+    PS_VECTOR_CHECK_NULL(y, NAN);
+    PS_VECTOR_CHECK_TYPE(y, PS_TYPE_F32, NAN);
+
     psS32 n;
     psS32 klo;
@@ -238,4 +247,10 @@
                                 const psVector* restrict yErr)     ///< Errors in coordinates, or NULL
 {
+    PS_PTR_CHECK_NULL(mySpline, NULL);
+    PS_INT_CHECK_NON_NEGATIVE(mySpline->n, NULL);
+    PS_VECTOR_CHECK_NULL(x, NULL);
+    PS_VECTOR_CHECK_NULL(y, NULL);
+    PS_VECTOR_CHECK_TYPE_F32_OR_F64(y, NULL);
+
     psTrace(".psLib.dataManip.psVectorFitSpline1D", 4,
             "---- psVectorFitSpline1D() begin ----\n");
@@ -252,7 +267,4 @@
     static psVector *yErr32Static = NULL;
 
-    PS_PTR_CHECK_NULL(mySpline, NULL);
-    PS_PTR_CHECK_NULL(y, NULL);
-    PS_VECTOR_CHECK_TYPE_F32_OR_F64(y, NULL);
     PS_VECTOR_CONVERT_F64_TO_F32_STATIC(y, y32, y32Static);
 
@@ -432,4 +444,6 @@
     PS_VECTOR_CHECK_EMPTY(y, NULL);
     PS_VECTOR_CHECK_SIZE_EQUAL(x, y, NULL);
+    PS_PTR_CHECK_NULL(func, NULL);
+
     if (paramMask != NULL) {
         PS_VECTOR_CHECK_SIZE_EQUAL(params, paramMask, NULL);
@@ -853,9 +867,12 @@
                                         const psVector* restrict yErr)
 {
+    PS_POLY_CHECK_NULL(myPoly, NULL);
+    PS_INT_CHECK_NON_NEGATIVE(myPoly->n, NULL);
+    PS_VECTOR_CHECK_NULL(y, NULL);
+    PS_VECTOR_CHECK_EMPTY(y, NULL);
+    PS_VECTOR_CHECK_TYPE_F32_OR_F64(y, NULL);
+
     psS32 i;
     psPolynomial1D *tmpPoly;
-    PS_POLY_CHECK_NULL(myPoly, NULL);
-    PS_VECTOR_CHECK_NULL(y, NULL);
-    PS_VECTOR_CHECK_EMPTY(y, NULL);
     psVector *x64 = NULL;
     psVector *y64 = NULL;
@@ -865,7 +882,5 @@
     static psVector *yErr64Static = NULL;
 
-    PS_VECTOR_CHECK_TYPE_F32_OR_F64(y, NULL);
     PS_VECTOR_CONVERT_F32_TO_F64_STATIC(y, y64, y64Static);
-
     // If yErr==NULL, set all errors equal.
     if (yErr == NULL) {
@@ -911,4 +926,6 @@
                                     float tol)
 {
+    PS_INT_CHECK_NON_NEGATIVE(maxIter, NULL);
+
     psMinimization *min = psAlloc(sizeof(psMinimization));
     min->maxIter = maxIter;
@@ -1319,7 +1336,8 @@
                         psMinimizePowellFunc func)
 {
+    PS_PTR_CHECK_NULL(min, NULL);
     PS_VECTOR_CHECK_NULL(params, NULL);
     PS_VECTOR_CHECK_EMPTY(params, NULL);
-    PS_PTR_CHECK_NULL(min, NULL);
+    PS_VECTOR_CHECK_TYPE(params, PS_TYPE_F32, NULL);
     PS_PTR_CHECK_NULL(coords, NULL);
     PS_PTR_CHECK_NULL(func, NULL);
