Index: trunk/psLib/test/dataManip/tst_psMinimize00.c
===================================================================
--- trunk/psLib/test/dataManip/tst_psMinimize00.c	(revision 1123)
+++ trunk/psLib/test/dataManip/tst_psMinimize00.c	(revision 1177)
@@ -16,38 +16,4 @@
 #define NUM_PARAMS 4
 
-// The function is f(x) = (A * e^(lambda x)) + b
-
-float myFunc2(const psVector *restrict myData,
-              const psVector *restrict myParams)
-{
-    float x = myData->data.F32[0];
-    float A = myParams->data.F32[0];
-    float lambda = myParams->data.F32[1];
-    float b = myParams->data.F32[2];
-
-    return(A * exp(-lambda * x) + b);
-}
-
-float myFunc2Deriv(const psVector *restrict myData,
-                   const psVector *restrict myParams,
-                   int whichParamDeriv)
-{
-    float x = myData->data.F32[0];
-    float A = myParams->data.F32[0];
-    float lambda = myParams->data.F32[1];
-    float tmp = 0.0;
-
-    if (whichParamDeriv == 0) {
-        tmp = exp(-lambda * x);
-    } else if (whichParamDeriv == 1) {
-        tmp = -x * A * exp(-lambda * x);
-    } else if (whichParamDeriv == 2) {
-        tmp = 1.0;
-    }
-    return(tmp);
-}
-
-
-
 float myFunc(const psVector *restrict myData,
              const psVector *restrict myParams)
@@ -61,7 +27,7 @@
     float tmp = 0.0;
 
-    tmp = A + (B*x) + (C*y) + (D*x*y);
-    printf("--------- myFunc((%.1f %.1f) %.1f %.1f %.1f %.1f) is %.1f ---------\n",
-           x, y, A, B, C, D, tmp);
+    tmp = (A * x) + (B*x*x) + (C*y*y) + (D*x*x*y);
+    //    printf("--------- myFunc((%.1f %.1f) %.1f %.1f %.1f %.1f) is %.1f ---------\n",
+    //           x, y, A, B, C, D, tmp);
 
     return(tmp);
@@ -78,15 +44,18 @@
     if (whichParamDeriv == 0) {
         tmp = 1.0;
+        tmp = x;
     } else if (whichParamDeriv == 1) {
         tmp = x;
+        tmp = x*x;
     } else if (whichParamDeriv == 2) {
         tmp = y;
+        tmp = y*y;
     } else if (whichParamDeriv == 3) {
-        tmp = x * y;
+        tmp = x * x * y;
     }
 
-    printf("--------- myFuncDeriv((%.1f %.1f) %.1f %.1f %.1f %.1f (%d)) is %.1f ---------\n",
-           x, y, myParams->data.F32[0], myParams->data.F32[1],
-           myParams->data.F32[2], myParams->data.F32[3], whichParamDeriv, tmp);
+    //    printf("--------- myFuncDeriv((%.1f %.1f) %.1f %.1f %.1f %.1f (%d)) is %.1f ---------\n",
+    //            x, y, myParams->data.F32[0], myParams->data.F32[1],
+    //            myParams->data.F32[2], myParams->data.F32[3], whichParamDeriv, tmp);
     return(tmp);
 }
@@ -105,5 +74,5 @@
     int j = 0;
     int currentId = psMemGetId();
-    int testStatus = 0;
+    int testStatus = true;
     int memLeaks = 0;
     psVector *theParams = NULL;
@@ -116,4 +85,12 @@
     tmpVecPtr = psVectorAlloc(DATA_WIDTH, PS_TYPE_F32);
 
+
+    //--------- myFunc((0.0 1.0) -8.6 -7.6 14.6 5.0) is 6.0 ---------
+
+    initialGuess->data.F32[0] = -8.6;
+    initialGuess->data.F32[1] = -7.6;
+    initialGuess->data.F32[2] = 14.6;
+    initialGuess->data.F32[3] = 5.0;
+
     // Build the data.
     initialGuess->data.F32[0] = 2.0;
@@ -121,4 +98,5 @@
     initialGuess->data.F32[2] = 4.0;
     initialGuess->data.F32[3] = 5.0;
+
 
     for (i = 0; i<NUM_DATA; i++) {
@@ -128,8 +106,8 @@
     }
     for (i = 0; i<NUM_DATA; i++) {
-        errors->data.F32[i] = 1.0;
+        errors->data.F32[i] = 0.1;
     }
 
-    printf("========== Setting Data Values ==========\n");
+    //    printf("========== Setting Data Values ==========\n");
     for (i = 0; i<NUM_DATA; i++) {
         for (j=0; j<DATA_WIDTH; j++) {
@@ -138,16 +116,16 @@
         data->data.F32[i] = myFunc(tmpVecPtr, initialGuess);
     }
+    //    printf("=========================================\n");
 
     for (i=0;i<NUM_PARAMS;i++) {
-        initialGuess->data.F32[i] = 1.0;
-        initialGuess->data.F32[i]+= 10.0;
+        initialGuess->data.F32[i]+= 1.0;
     }
 
     printPositiveTestHeader(stdout,
                             "psMinimize functions",
-                            "Calculate Histogram, no mask");
+                            "psMinimizeChi2(): no masks");
 
-    theParams = psMinimizeChi2(myFunc2,
-                               myFunc2Deriv,
+    theParams = psMinimizeChi2(myFunc,
+                               myFuncDeriv,
                                domain,
                                data,
@@ -160,11 +138,9 @@
     }
 
-
-
     printf("chiSq is %f\n", chiSq);
     psMemCheckCorruption(1);
     printFooter(stdout,
                 "psMinimize functions",
-                "Calculate Histogram, no mask",
+                "psMinimizeChi2(): no masks",
                 testStatus);
 
