Index: trunk/psLib/src/math/psBinaryOp.c
===================================================================
--- trunk/psLib/src/math/psBinaryOp.c	(revision 7765)
+++ trunk/psLib/src/math/psBinaryOp.c	(revision 7766)
@@ -30,6 +30,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-05-24 03:10:14 $
+ *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-06-30 02:20:06 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -49,5 +49,5 @@
 #include "psScalar.h"
 #include "psLogMsg.h"
-#include "psConstants.h"
+#include "psAssert.h"
 #include "psErrorText.h"
 
Index: trunk/psLib/src/math/psConstants.h
===================================================================
--- trunk/psLib/src/math/psConstants.h	(revision 7765)
+++ trunk/psLib/src/math/psConstants.h	(revision 7766)
@@ -6,6 +6,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.92 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-06-30 01:57:46 $
+ *  @version $Revision: 1.93 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-06-30 02:20:06 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -45,447 +45,4 @@
 
 /*****************************************************************************
- 
-*****************************************************************************/
-
-#define PS_ASSERT_INT_UNEQUAL(NAME1, NAME2, RVAL) \
-if ((NAME1) == (NAME2)) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: %s and %s are equal.", \
-            #NAME1, #NAME2); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_INT_EQUAL(NAME1, NAME2, RVAL) \
-if ((NAME1) != (NAME2)) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: %s and %s are not equal.", \
-            #NAME1, #NAME2); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_INT_NONNEGATIVE(NAME, RVAL) \
-if ((NAME) < 0) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, "Error: %s is less than 0.", #NAME); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_INT_POSITIVE(NAME, RVAL) \
-if ((NAME) < 1) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: %s is 0 or less.", #NAME); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_INT_ZERO(NAME, RVAL) \
-if ((NAME) != 0) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: %s is 0.", #NAME); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_INT_NONZERO(NAME, RVAL) \
-if ((NAME) == 0) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: %s is 0.", #NAME); \
-    return(RVAL); \
-}
-
-// XXX: Where did these int casts come from?
-#define PS_ASSERT_INT_WITHIN_RANGE(NAME, LOWER, UPPER, RVAL) \
-if ((int)(NAME) < LOWER || (int)(NAME) > UPPER) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: %s, %d, is out of range.  Must be between %d and %d.", \
-            #NAME,(int)NAME,LOWER,UPPER); \
-    return RVAL; \
-}
-
-#define PS_ASSERT_INT_LESS_THAN(VAR1, VAR2, RVAL) \
-if (!(VAR1 < VAR2)) { \
-    psError(PS_ERR_UNKNOWN, true, \
-            "Error: %s is not less than %s (%d, %d)", #VAR1, #VAR2, VAR1, VAR2); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_INT_LESS_THAN_OR_EQUAL(VAR1, VAR2, RVAL) \
-if (!(VAR1 <= VAR2)) { \
-    psError(PS_ERR_UNKNOWN, true, \
-            "Error: %s is not less than %s (%d, %d)", #VAR1, #VAR2, VAR1, VAR2); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_INT_LARGER_THAN(NAME1, NAME2, RVAL) \
-if (!((NAME1) > (NAME2))) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: !(%s > %s) (%d %d).", \
-            #NAME1, #NAME2, NAME1, NAME2); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_INT_LARGER_THAN_OR_EQUAL(NAME1, NAME2, RVAL) \
-if (!((NAME1) >= (NAME2))) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: !(%s >= %s) (%d %d).", \
-            #NAME1, #NAME2, NAME1, NAME2); \
-    return(RVAL); \
-}
-#define PS_ASSERT_FLOAT_LARGER_THAN(NAME1, NAME2, RVAL) \
-if (!((NAME1) > (NAME2))) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: !(%s > %s) (%f %f).", \
-            #NAME1, #NAME2, NAME1, NAME2); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_FLOAT_LARGER_THAN_OR_EQUAL(NAME1, NAME2, RVAL) \
-if (!((NAME1) >= (NAME2))) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: !(%s >= %s) (%f %f).", \
-            #NAME1, #NAME2, NAME1, NAME2); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_FLOAT_LESS_THAN(NAME1, NAME2, RVAL) \
-if (!((NAME1) < (NAME2))) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: !(%s < %s) (%f %f).", \
-            #NAME1, #NAME2, NAME1, NAME2); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_FLOAT_LESS_THAN_OR_EQUAL(NAME1, NAME2, RVAL) \
-if (!((NAME1) <= (NAME2))) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: !(%s <= %s) (%f %f).", \
-            #NAME1, #NAME2, NAME1, NAME2); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_FLOAT_NON_EQUAL(NAME1, NAME2, RVAL) \
-if (fabs((NAME2) - (NAME1)) < FLT_EPSILON) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: %s and %s are equal.", \
-            #NAME1, #NAME2); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_FLOAT_EQUAL(NAME1, NAME2, RVAL) \
-if (fabs((NAME2) - (NAME1)) > FLT_EPSILON) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: %s and %s are not equal.", \
-            #NAME1, #NAME2); \
-    return(RVAL); \
-}
-
-// Return an error if the arg lies outside the supplied range.
-#define PS_ASSERT_FLOAT_WITHIN_RANGE(NAME, LOWER, UPPER, RVAL) \
-if ((NAME) < (LOWER) || (NAME) > (UPPER)) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: %s, %f, is out of range.  Must be between %f and %f.", \
-            #NAME, NAME, LOWER, UPPER); \
-    return RVAL; \
-}
-
-#define PS_ASSERT_DOUBLE_WITHIN_RANGE(NAME, LOWER, UPPER, RVAL) \
-if ((NAME) < (LOWER) || (NAME) > (UPPER)) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: %s, %lf, is out of range.  Must be between %lf and %lf.", \
-            #NAME, NAME, LOWER, UPPER); \
-    return RVAL; \
-}
-
-#define PS_ASSERT_LONG_WITHIN_RANGE(NAME, LOWER, UPPER, RVAL) \
-if ((NAME) < (LOWER) || (NAME) > (UPPER)) { \
-    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
-            "Error: %s, %lld, is out of range.", \
-            #NAME, NAME, LOWER, UPPER); \
-    return RVAL; \
-}
-
-/*****************************************************************************
-Macros which take a generic psLib type and determine if it is NULL, or has
-the wrong type.
-*****************************************************************************/
-#define PS_WARN_PTR_NON_NULL(NAME) \
-if ((NAME) == NULL) { \
-    psLogMsg(__func__, PS_LOG_WARN, "WARNING: %s is NULL.", #NAME); \
-} \
-
-#define PS_ASSERT_PTR_NON_NULL(NAME, RVAL) PS_ASSERT_GENERAL_PTR_NON_NULL(NAME, return RVAL)
-#define PS_ASSERT_GENERAL_PTR_NON_NULL(NAME, CLEANUP) \
-if ((NAME) == NULL) { \
-    psError(PS_ERR_BAD_PARAMETER_NULL, true, \
-            "Unallowable operation: %s is NULL.", \
-            #NAME); \
-    CLEANUP; \
-}
-
-#define PS_ASSERT_PTR_TYPE(NAME, TYPE, RVAL) \
-if ((NAME)->type.type != TYPE) { \
-    psError(PS_ERR_BAD_PARAMETER_TYPE, true, \
-            "Unallowable operation: %s has incorrect type.", \
-            #NAME); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_PTR_DIMEN(NAME, DIMEN, RVAL) PS_ASSERT_GENERAL_PTR_DIMEN(NAME, DIMEN, return RVAL)
-#define PS_ASSERT_GENERAL_PTR_DIMEN(NAME, DIMEN, CLEANUP) \
-if ((NAME)->type.dimen != DIMEN) { \
-    psError(PS_ERR_BAD_PARAMETER_TYPE, true, \
-            "Unallowable operation: %s has incorrect dimensionality.", \
-            #NAME); \
-    CLEANUP; \
-}
-
-#define PS_ASSERT_PTR_DIMEN_GENERAL_NOT(NAME, DIMEN, CLEANUP) \
-if ((NAME)->type.dimen == DIMEN) { \
-    psError(PS_ERR_BAD_PARAMETER_TYPE, true, \
-            "Unallowable operation: %s has incorrect dimensionality.", \
-            #NAME); \
-    CLEANUP; \
-}
-
-
-#define PS_ASSERT_PTRS_SIZE_EQUAL(PTR1, PTR2, RVAL) \
-if (PTR1->n != PTR2->n) { \
-    psError(PS_ERR_BAD_PARAMETER_SIZE, true, \
-            "ptr %s has size %d, ptr %s has size %d.", \
-            #PTR1, PTR1->n, #PTR2, PTR2->n); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_PTR_TYPE_EQUAL(PTR1, PTR2, RVAL) PS_ASSERT_PTRS_TYPE_EQUAL_GENERAL(PTR1, PTR2, return RVAL)
-#define PS_ASSERT_PTRS_TYPE_EQUAL_GENERAL(PTR1, PTR2, CLEANUP) \
-if (PTR1->type.type != PTR2->type.type) { \
-    psError(PS_ERR_BAD_PARAMETER_TYPE, true, \
-            "ptr %s has type %d, ptr %s has type %d.", \
-            #PTR1, PTR1->type.type, #PTR2, PTR2->type.type); \
-    CLEANUP; \
-}
-
-
-/*****************************************************************************
-    PS_VECTOR macros:
- *****************************************************************************/
-#define PS_ASSERT_VECTOR_NON_NULL(NAME, RVAL) PS_ASSERT_GENERAL_VECTOR_NON_NULL(NAME, return RVAL)
-#define PS_ASSERT_GENERAL_VECTOR_NON_NULL(NAME, CLEANUP) \
-if ((NAME) == NULL || (NAME)->data.U8 == NULL) { \
-    psError(PS_ERR_BAD_PARAMETER_NULL, true, \
-            "Unallowable operation: psVector %s or its data is NULL.", \
-            #NAME); \
-    CLEANUP; \
-} \
-
-#define PS_ASSERT_VECTOR_NON_EMPTY(NAME, RVAL) PS_ASSERT_GENERAL_VECTOR_NON_EMPTY(NAME, return RVAL)
-#define PS_ASSERT_GENERAL_VECTOR_NON_EMPTY(NAME, CLEANUP) \
-if ((NAME)->n < 1) { \
-    psError(PS_ERR_BAD_PARAMETER_SIZE, true, \
-            "Unallowable operation: psVector %s has no elements.", \
-            #NAME); \
-    CLEANUP; \
-} \
-
-#define PS_ASSERT_VECTOR_TYPE_F32_OR_F64(NAME, RVAL) \
-if (((NAME)->type.type != PS_TYPE_F32) && ((NAME)->type.type != PS_TYPE_F64)) { \
-    psError(PS_ERR_BAD_PARAMETER_TYPE, true, \
-            "psVector %s: bad type(%d)", \
-            #NAME, NAME->type.type); \
-    return(RVAL); \
-} \
-
-#define PS_ASSERT_VECTOR_TYPE_S16_S32_F32(NAME, RVAL) \
-if (((NAME)->type.type != PS_TYPE_S16) && ((NAME)->type.type != PS_TYPE_S32) && ((NAME)->type.type != PS_TYPE_F32)) { \
-    psError(PS_ERR_BAD_PARAMETER_TYPE, true, \
-            "psVector %s: bad type(%d)", \
-            #NAME, NAME->type.type); \
-    return(RVAL); \
-} \
-
-#define PS_ASSERT_VECTOR_TYPE(NAME, TYPE, RVAL) \
-if ((NAME)->type.type != TYPE) { \
-    psError(PS_ERR_BAD_PARAMETER_TYPE, true, \
-            "Unallowable operation: psVector %s has incorrect type.", \
-            #NAME); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_VECTORS_SIZE_EQUAL(VEC1, VEC2, RVAL) \
-if (VEC1->n != VEC2->n) { \
-    psError(PS_ERR_BAD_PARAMETER_SIZE, true, \
-            "psVector %s has size %d, psVector %s has size %d.", \
-            #VEC1, VEC1->n, #VEC2, VEC2->n); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_VECTOR_SIZE(VEC, SIZE, RVAL) \
-if (VEC->n != SIZE) { \
-    psError(PS_ERR_BAD_PARAMETER_SIZE, true, \
-            "psVector %s has size %d, should be %d.", \
-            #VEC, VEC->n, SIZE); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_VECTOR_TYPE_EQUAL(VEC1, VEC2, RVAL) \
-if (VEC1->type.type != VEC2->type.type) { \
-    psError(PS_ERR_BAD_PARAMETER_SIZE, true, \
-            "psVector %s has size %d, psVector %s has size %d.", \
-            #VEC1, VEC1->type.type, #VEC2, VEC2->type.type); \
-    return(RVAL); \
-}
-
-#define PS_VECTOR_PRINT_F32(NAME) \
-if (NAME != NULL) { \
-    for (int my_i=0;my_i<(NAME)->n;my_i++) { \
-        printf("%s->data.F32[%d] is %f\n", #NAME, my_i, (NAME)->data.F32[my_i]); \
-    } \
-    printf("\n"); \
-} else {\
-    printf("MACRO WARNING: vector %s is NULL.\n", #NAME); \
-}\
-
-#define PS_VECTOR_PRINT_F64(NAME) \
-if (NAME != NULL) { \
-    for (int my_i=0;my_i<(NAME)->n;my_i++) { \
-        printf("%s->data.F64[%d] is %f\n", #NAME, my_i, (NAME)->data.F64[my_i]); \
-    } \
-    printf("\n"); \
-} else {\
-    printf("MACRO WARNING: vector %s is NULL.\n", #NAME); \
-}\
-
-/*****************************************************************************
-    PS_POLY macros:
-*****************************************************************************/
-#define PS_ASSERT_POLY1D(NAME, RVAL) \
-if (false == psMemCheckPolynomial1D(NAME)) { \
-    psError(PS_ERR_BAD_PARAMETER_NULL, true, \
-            "Unallowable operation: argument %s is not a psPolynomial1D struct.\n",\
-            #NAME); \
-    return(RVAL); \
-} \
-
-#define PS_ASSERT_POLY_NON_NULL(NAME, RVAL) \
-if ((NAME) == NULL || (NAME)->coeff == NULL) { \
-    psError(PS_ERR_BAD_PARAMETER_NULL, true, \
-            "Unallowable operation: polynomial %s or its coeffs is NULL.", \
-            #NAME); \
-    return(RVAL); \
-} \
-
-#define PS_ASSERT_POLY_TYPE(NAME, TYPE, RVAL) \
-if ((NAME)->type != TYPE) { \
-    psError(PS_ERR_BAD_PARAMETER_TYPE, true, \
-            "Unallowable operation: polynomial %s has wrong type.", #NAME); \
-    return(RVAL); \
-} \
-
-#define PS_POLY_PRINT_1D(NAME) \
-printf("Poly %s: (nX) is (%d)\n", #NAME, NAME->nX);\
-for (psS32 i = 0 ; i < NAME->nX+1 ; i++) {\
-    printf("%s->coeff[%d] is %f\n", #NAME, i, NAME->coeff[i]); \
-}\
-
-#define PS_POLY_PRINT_2D(NAME) \
-printf("Poly %s: (nX, nY) is (%d, %d)\n", #NAME, NAME->nX, NAME->nY);\
-for (psS32 i = 0 ; i < NAME->nX+1 ; i++) {\
-    for (psS32 j = 0 ; j < NAME->nY+1 ; j++) {\
-        printf("%s->coeff[%d][%d] is %f\n", #NAME, i, j, NAME->coeff[i][j]); \
-    }\
-}\
-
-#define PS_PRINT_PLANE_TRANSFORM(NAME) \
-{ \
-    printf("---------------------- Plane Transform ----------------------\n"); \
-    printf("x:\n"); \
-    PS_POLY_PRINT_2D(NAME->x); \
-    printf("y:\n"); \
-    PS_POLY_PRINT_2D(NAME->y); \
-} \
-
-
-/*****************************************************************************
-    PS_SPLINE macros:
-*****************************************************************************/
-#define PS_ASSERT_SPLINE(NAME, RVAL) \
-if (false == psMemCheckSpline1D(NAME)) { \
-    psError(PS_ERR_BAD_PARAMETER_NULL, true, \
-            "Unallowable operation: argument %s is not a psSpline1D struct.\n",\
-            #NAME); \
-    return(RVAL); \
-} \
-
-#define PS_ASSERT_SPLINE_NON_NULL(NAME, RVAL) \
-if ((NAME) == NULL) { \
-    psError(PS_ERR_BAD_PARAMETER_NULL, true, \
-            "Unallowable operation: psSpline1D %s is NULL.", \
-            #NAME); \
-    return(RVAL); \
-} \
-
-/*****************************************************************************
-    PS_IMAGE macros:
-*****************************************************************************/
-#define PS_ASSERT_IMAGE_NON_NULL(NAME, RVAL) PS_ASSERT_GENERAL_IMAGE_NON_NULL(NAME, return RVAL)
-#define PS_ASSERT_GENERAL_IMAGE_NON_NULL(NAME, CLEANUP) \
-if ((NAME) == NULL || (NAME)->data.V == NULL) { \
-    psError(PS_ERR_BAD_PARAMETER_NULL, true, \
-            "Unallowable operation: psImage %s or its data is NULL.", \
-            #NAME); \
-    CLEANUP; \
-}
-
-#define PS_ASSERT_IMAGE_NON_EMPTY(NAME, RVAL) PS_ASSERT_GENERAL_IMAGE_NON_EMPTY(NAME, return RVAL)
-#define PS_ASSERT_GENERAL_IMAGE_NON_EMPTY(NAME, CLEANUP) \
-if ((NAME)->numCols < 1 || (NAME)->numRows < 1) { \
-    psError(PS_ERR_BAD_PARAMETER_SIZE, true, \
-            "Unallowable operation: psImage %s has zero rows or columns (%dx%d).", \
-            #NAME, (NAME)->numCols, (NAME)->numRows); \
-    CLEANUP; \
-}
-
-#define PS_ASSERT_IMAGE_TYPE(NAME, TYPE, RVAL) \
-if ((NAME)->type.type != TYPE) { \
-    psError(PS_ERR_BAD_PARAMETER_TYPE, true, \
-            "Unallowable operation: psImage %s has incorrect type.", \
-            #NAME); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_IMAGES_SIZE_EQUAL(NAME1, NAME2, RVAL) \
-if (((NAME1)->numCols != (NAME2)->numCols) || \
-        ((NAME1)->numRows != (NAME2)->numRows)) { \
-    psError(PS_ERR_BAD_PARAMETER_SIZE, true, \
-            "Unallowable operation: psImages %s and %s are not the same size.", \
-            #NAME1, #NAME2); \
-    return(RVAL); \
-}
-
-#define PS_ASSERT_IMAGE_SIZE(NAME1, NUM_COLS, NUM_ROWS, RVAL) \
-if (((NAME1)->numCols != NUM_COLS) || \
-        ((NAME1)->numRows != NUM_ROWS)) { \
-    psError(PS_ERR_BAD_PARAMETER_SIZE, true, \
-            "Unallowable operation: psImages %s is not the correct size.", \
-            #NAME1); \
-    return(RVAL); \
-}
-
-#define PS_IMAGE_PRINT_F32(NAME) \
-printf("======== printing %s ========\n", #NAME); \
-for (int i = 0 ; i < (NAME)->numRows ; i++) { \
-    for (int j = 0 ; j < (NAME)->numCols ; j++) { \
-        printf("%.2f ", (NAME)->data.F32[i][j]); \
-    } \
-    printf("\n"); \
-}\
-
-#define PS_IMAGE_PRINT_F64(NAME) \
-printf("======== printing %s ========\n", #NAME); \
-for (int i = 0 ; i < (NAME)->numRows ; i++) { \
-    for (int j = 0 ; j < (NAME)->numCols ; j++) { \
-        printf("%.2f ", (NAME)->data.F64[i][j]); \
-    } \
-    printf("\n"); \
-}\
-
-/*****************************************************************************
     Misc. macros:
 *****************************************************************************/
@@ -499,3 +56,3 @@
 ((A) * (A))
 
-# define PS_SWAP(X,Y) {double tmp=(X); (X) = (Y); (Y) = tmp;}
+#define PS_SWAP(X,Y) {double tmp=(X); (X) = (Y); (Y) = tmp;}
Index: trunk/psLib/src/math/psEllipse.c
===================================================================
--- trunk/psLib/src/math/psEllipse.c	(revision 7765)
+++ trunk/psLib/src/math/psEllipse.c	(revision 7766)
@@ -1,4 +1,3 @@
 #include <stdio.h>
-
 #include "psConstants.h"
 #include "psEllipse.h"
Index: trunk/psLib/src/math/psMathUtils.c
===================================================================
--- trunk/psLib/src/math/psMathUtils.c	(revision 7765)
+++ trunk/psLib/src/math/psMathUtils.c	(revision 7766)
@@ -3,6 +3,6 @@
  *  This file contains standard math routines.
  *
- *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-05-18 01:20:51 $
+ *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-06-30 02:20:06 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -24,4 +24,5 @@
 #include "psPolynomial.h"
 #include "psMathUtils.h"
+#include "psAssert.h"
 #include "psConstants.h"
 #include "psErrorText.h"
Index: trunk/psLib/src/math/psMatrix.c
===================================================================
--- trunk/psLib/src/math/psMatrix.c	(revision 7765)
+++ trunk/psLib/src/math/psMatrix.c	(revision 7766)
@@ -21,6 +21,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.39 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-06-03 03:55:12 $
+ *  @version $Revision: 1.40 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-06-30 02:20:06 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -42,5 +42,5 @@
 #include "psVector.h"
 #include "psMatrix.h"
-#include "psConstants.h"
+#include "psAssert.h"
 #include "psErrorText.h"
 #include "psTrace.h"
Index: trunk/psLib/src/math/psMinimizeLMM.c
===================================================================
--- trunk/psLib/src/math/psMinimizeLMM.c	(revision 7765)
+++ trunk/psLib/src/math/psMinimizeLMM.c	(revision 7766)
@@ -10,6 +10,6 @@
  *  @author EAM, IfA
  *
- *  @version $Revision: 1.16 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-06-03 03:55:12 $
+ *  @version $Revision: 1.17 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-06-30 02:20:06 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -24,4 +24,5 @@
 
 #include "psAbort.h"
+#include "psAssert.h"
 #include "psMinimizeLMM.h"
 #include "psImage.h"
Index: trunk/psLib/src/math/psMinimizeLMM.h
===================================================================
--- trunk/psLib/src/math/psMinimizeLMM.h	(revision 7765)
+++ trunk/psLib/src/math/psMinimizeLMM.h	(revision 7766)
@@ -8,6 +8,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-05-10 00:49:38 $
+ *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-06-30 02:20:06 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -37,4 +37,8 @@
 #include "psError.h"
 #include "psConstants.h"
+
+#define PS_DETERMINE_BRACKET_STEP_SIZE 0.10
+#define PS_MAX_LMM_ITERATIONS 100
+#define PS_MAX_MINIMIZE_ITERATIONS 100
 
 /** A data structure for minimization routines.
Index: trunk/psLib/src/math/psMinimizePolyFit.c
===================================================================
--- trunk/psLib/src/math/psMinimizePolyFit.c	(revision 7765)
+++ trunk/psLib/src/math/psMinimizePolyFit.c	(revision 7766)
@@ -10,6 +10,6 @@
  *  @author EAM, IfA
  *
- *  @version $Revision: 1.15 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-06-29 20:37:51 $
+ *  @version $Revision: 1.16 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-06-30 02:20:06 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -29,4 +29,5 @@
 
 #include "psMinimizePolyFit.h"
+#include "psAssert.h"
 #include "psMinimizeLMM.h"  // For Gauss-Jordan routines
 #include "psStats.h"
Index: trunk/psLib/src/math/psMinimizePowell.c
===================================================================
--- trunk/psLib/src/math/psMinimizePowell.c	(revision 7765)
+++ trunk/psLib/src/math/psMinimizePowell.c	(revision 7766)
@@ -11,6 +11,6 @@
  *  NOTE: XXX: The SDR is silent about data types.  F32 is implemented here.
  *
- *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-06-30 01:56:22 $
+ *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-06-30 02:20:06 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -25,4 +25,5 @@
 
 #include "psMinimizePowell.h"
+#include "psAssert.h"
 #include "psStats.h"
 #include "psImage.h"
Index: trunk/psLib/src/math/psPolynomial.c
===================================================================
--- trunk/psLib/src/math/psPolynomial.c	(revision 7765)
+++ trunk/psLib/src/math/psPolynomial.c	(revision 7766)
@@ -7,6 +7,6 @@
 *  polynomials.  It also contains a Gaussian functions.
 *
-*  @version $Revision: 1.145 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2006-02-28 02:53:02 $
+*  @version $Revision: 1.146 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2006-06-30 02:20:06 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -31,5 +31,5 @@
 #include "psLogMsg.h"
 #include "psPolynomial.h"
-#include "psConstants.h"
+#include "psAssert.h"
 #include "psErrorText.h"
 
Index: trunk/psLib/src/math/psPolynomial.h
===================================================================
--- trunk/psLib/src/math/psPolynomial.h	(revision 7765)
+++ trunk/psLib/src/math/psPolynomial.h	(revision 7766)
@@ -11,6 +11,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.62 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-02-07 23:36:15 $
+ *  @version $Revision: 1.63 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-06-30 02:20:06 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -307,4 +307,43 @@
 
 
+/*****************************************************************************
+    PS_POLY macros:
+*****************************************************************************/
+#define PS_ASSERT_POLY1D(NAME, RVAL) \
+if (false == psMemCheckPolynomial1D(NAME)) { \
+    psError(PS_ERR_BAD_PARAMETER_NULL, true, \
+            "Unallowable operation: argument %s is not a psPolynomial1D struct.\n",\
+            #NAME); \
+    return(RVAL); \
+} \
+
+#define PS_ASSERT_POLY_NON_NULL(NAME, RVAL) \
+if ((NAME) == NULL || (NAME)->coeff == NULL) { \
+    psError(PS_ERR_BAD_PARAMETER_NULL, true, \
+            "Unallowable operation: polynomial %s or its coeffs is NULL.", \
+            #NAME); \
+    return(RVAL); \
+} \
+
+#define PS_ASSERT_POLY_TYPE(NAME, TYPE, RVAL) \
+if ((NAME)->type != TYPE) { \
+    psError(PS_ERR_BAD_PARAMETER_TYPE, true, \
+            "Unallowable operation: polynomial %s has wrong type.", #NAME); \
+    return(RVAL); \
+} \
+
+#define PS_POLY_PRINT_1D(NAME) \
+printf("Poly %s: (nX) is (%d)\n", #NAME, NAME->nX);\
+for (psS32 i = 0 ; i < NAME->nX+1 ; i++) {\
+    printf("%s->coeff[%d] is %f\n", #NAME, i, NAME->coeff[i]); \
+}\
+
+#define PS_POLY_PRINT_2D(NAME) \
+printf("Poly %s: (nX, nY) is (%d, %d)\n", #NAME, NAME->nX, NAME->nY);\
+for (psS32 i = 0 ; i < NAME->nX+1 ; i++) {\
+    for (psS32 j = 0 ; j < NAME->nY+1 ; j++) {\
+        printf("%s->coeff[%d][%d] is %f\n", #NAME, i, j, NAME->coeff[i][j]); \
+    }\
+}\
 
 /** \} */ // End of MathGroup Functions
Index: trunk/psLib/src/math/psPolynomialUtils.c
===================================================================
--- trunk/psLib/src/math/psPolynomialUtils.c	(revision 7765)
+++ trunk/psLib/src/math/psPolynomialUtils.c	(revision 7766)
@@ -7,5 +7,5 @@
 #include "psBinaryOp.h"
 #include "psStats.h"
-#include "psConstants.h"
+#include "psAssert.h"
 #include "psPolynomial.h"
 #include "psMinimizePolyFit.h"
Index: trunk/psLib/src/math/psRandom.c
===================================================================
--- trunk/psLib/src/math/psRandom.c	(revision 7765)
+++ trunk/psLib/src/math/psRandom.c	(revision 7766)
@@ -10,6 +10,6 @@
 *  @author GLG, MHPCC
 *
-*  @version $Revision: 1.11 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2005-08-23 23:23:05 $
+*  @version $Revision: 1.12 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2006-06-30 02:20:06 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -30,5 +30,5 @@
 #include "psTrace.h"
 #include "psLogMsg.h"
-#include "psConstants.h"
+#include "psAssert.h"
 #include "psErrorText.h"
 
Index: trunk/psLib/src/math/psSparse.c
===================================================================
--- trunk/psLib/src/math/psSparse.c	(revision 7765)
+++ trunk/psLib/src/math/psSparse.c	(revision 7766)
@@ -9,4 +9,5 @@
 #include "psLogMsg.h"
 #include "psVector.h"
+#include "psAssert.h"
 #include "psConstants.h"
 #include "psSparse.h"
Index: trunk/psLib/src/math/psSpline.c
===================================================================
--- trunk/psLib/src/math/psSpline.c	(revision 7765)
+++ trunk/psLib/src/math/psSpline.c	(revision 7766)
@@ -6,6 +6,6 @@
 *  This file contains the routines that allocate, free, and evaluate splines.
 *
-*  @version $Revision: 1.148 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2006-04-05 02:19:00 $
+*  @version $Revision: 1.149 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2006-06-30 02:20:06 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -27,5 +27,5 @@
 #include "psPolynomial.h"
 #include "psSpline.h"
-#include "psConstants.h"
+#include "psAssert.h"
 #include "psErrorText.h"
 #include "psMathUtils.h"
@@ -131,5 +131,5 @@
     //
     // The second derivatives at the endpoints, undefined in the SDR,
-    // are set in psConstants.h: PS_LEFT_SPLINE_DERIV, PS_RIGHT_SPLINE_DERIV.
+    // are set in psAssert.h: PS_LEFT_SPLINE_DERIV, PS_RIGHT_SPLINE_DERIV.
     //
     derivs2[0] = -0.5;
Index: trunk/psLib/src/math/psSpline.h
===================================================================
--- trunk/psLib/src/math/psSpline.h	(revision 7765)
+++ trunk/psLib/src/math/psSpline.h	(revision 7766)
@@ -12,6 +12,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.59 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-02-02 21:09:08 $
+ *  @version $Revision: 1.60 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-06-30 02:20:06 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -29,4 +29,7 @@
 #include "psScalar.h"
 #include "psPolynomial.h"
+
+#define PS_LEFT_SPLINE_DERIV 0.0
+#define PS_RIGHT_SPLINE_DERIV 0.0
 
 /** \addtogroup GROUP00
@@ -92,4 +95,24 @@
 );
 
+/*****************************************************************************
+    PS_SPLINE macros:
+*****************************************************************************/
+#define PS_ASSERT_SPLINE(NAME, RVAL) \
+if (false == psMemCheckSpline1D(NAME)) { \
+    psError(PS_ERR_BAD_PARAMETER_NULL, true, \
+            "Unallowable operation: argument %s is not a psSpline1D struct.\n",\
+            #NAME); \
+    return(RVAL); \
+} \
+
+#define PS_ASSERT_SPLINE_NON_NULL(NAME, RVAL) \
+if ((NAME) == NULL) { \
+    psError(PS_ERR_BAD_PARAMETER_NULL, true, \
+            "Unallowable operation: psSpline1D %s is NULL.", \
+            #NAME); \
+    return(RVAL); \
+} \
+
+
 /** \} */ // End of MathGroup Functions
 
Index: trunk/psLib/src/math/psStats.c
===================================================================
--- trunk/psLib/src/math/psStats.c	(revision 7765)
+++ trunk/psLib/src/math/psStats.c	(revision 7766)
@@ -16,6 +16,6 @@
  * use ->min and ->max (PS_STAT_USE_RANGE)
  *
- *  @version $Revision: 1.175 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-05-22 23:08:22 $
+ *  @version $Revision: 1.176 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-06-30 02:20:06 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -43,5 +43,5 @@
 #include "psMinimizePolyFit.h"
 #include "psPolynomial.h"
-#include "psConstants.h"
+#include "psAssert.h"
 #include "psMathUtils.h"
 
Index: trunk/psLib/src/math/psUnaryOp.c
===================================================================
--- trunk/psLib/src/math/psUnaryOp.c	(revision 7765)
+++ trunk/psLib/src/math/psUnaryOp.c	(revision 7766)
@@ -30,6 +30,6 @@
  *  @author Robert DeSonia, MHPCC
  *
- *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-05-24 03:25:14 $
+ *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-06-30 02:20:06 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -50,5 +50,5 @@
 #include "psScalar.h"
 #include "psLogMsg.h"
-#include "psConstants.h"
+#include "psAssert.h"
 #include "psErrorText.h"
 
Index: trunk/psLib/src/math/psVectorSmooth.c
===================================================================
--- trunk/psLib/src/math/psVectorSmooth.c	(revision 7765)
+++ trunk/psLib/src/math/psVectorSmooth.c	(revision 7766)
@@ -10,5 +10,5 @@
 #include "psVector.h"
 #include "psVectorSmooth.h"
-#include "psConstants.h"
+#include "psAssert.h"
 
 
