Index: trunk/psLib/src/math/psMinimize.c
===================================================================
--- trunk/psLib/src/math/psMinimize.c	(revision 1781)
+++ trunk/psLib/src/math/psMinimize.c	(revision 1798)
@@ -9,6 +9,6 @@
  *  @author George Gusciora, MHPCC
  *
- *  @version $Revision: 1.37 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-09-10 22:25:59 $
+ *  @version $Revision: 1.38 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-09-11 03:03:36 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -1244,4 +1244,5 @@
         psTrace(".psLib.dataManip.p_psDetermineBracket", 4,
                 "---- p_psDetermineBracket() end (NULL) ----\n");
+        psFree(bracket);
         return(NULL);
     }
@@ -1293,5 +1294,6 @@
 
     psTrace(".psLib.dataManip.p_psDetermineBracket", 6,
-            "HMMM(%d): (%f %f %f) (%f %f %f)\n", iter, a, b, c, fa, fb, fc);
+            "(a, b, c) is (%f %f %f) (fa, fb, fc) is (%f %f %f)\n", a, b, c, fa, fb, fc);
+
     while (iter > 0) {
         psTrace(".psLib.dataManip.p_psDetermineBracket", 6,
@@ -1329,5 +1331,5 @@
 
         psTrace(".psLib.dataManip.p_psDetermineBracket", 6,
-                "HMMM(%d): (%f %f %f) (%f %f %f)\n", iter, a, b, c, fa, fb, fc);
+                "Iter(%d): (a, b, c) is (%f %f %f) (fa, fb, fc) is (%f %f %f)\n", iter, a, b, c, fa, fb, fc);
 
         if (fa < fb) {
@@ -1370,12 +1372,4 @@
             "---- p_psDetermineBracket() end (NULL) ----\n");
     return(NULL);
-}
-
-bool p_psDummyFunc(int dimNum,
-                   psVector *params,
-                   const psArray *coords,
-                   psMinimizePowellFunc func)
-{
-    return(true);
 }
 
@@ -1494,7 +1488,21 @@
     psTrace(".psLib.dataManip.psLineMin", 4,
             "---- psLineMin() begin ----\n");
-
-    for (i=0;i<params->n;i++) {
-        if (paramMask->data.U8[i] == 0) {
+    psTrace(".psLib.dataManip.psLineMin", 6,
+            "min->maxIter is %d\n", min->maxIter);
+    psTrace(".psLib.dataManip.psLineMin", 6,
+            "min->tol is %f\n", min->tol);
+
+    if (paramMask != NULL) {
+        for (i=0;i<params->n;i++) {
+            if (paramMask->data.U8[i] == 0) {
+                if (line->data.F32[i] >= FLT_EPSILON) {
+                    null = 1;
+                    psTrace(".psLib.dataManip.psLineMin", 4,
+                            "line->data.F32[%d] is %f\n", i, line->data.F32[i]);
+                }
+            }
+        }
+    } else {
+        for (i=0;i<params->n;i++) {
             if (line->data.F32[i] >= FLT_EPSILON) {
                 null = 1;
@@ -1504,4 +1512,5 @@
         }
     }
+
     if (null == 0) {
         psTrace(".psLib.dataManip.psLineMin", 2,
@@ -1514,5 +1523,4 @@
     tmpc = psVectorAlloc(params->n, PS_TYPE_F32);
     tmpn = psVectorAlloc(params->n, PS_TYPE_F32);
-
 
     for (i=0;i<params->n;i++) {
@@ -1526,4 +1534,8 @@
     bracket = p_psDetermineBracket(params, line, paramMask, coords, func);
     if (bracket == NULL) {
+        psFree(tmpa);
+        psFree(tmpb);
+        psFree(tmpc);
+        psFree(tmpn);
         psAbort(__func__, "(1) Could not bracket minimum.");
     }
@@ -1554,5 +1566,6 @@
         fc = func(tmpc, coords);
         psTrace(".psLib.dataManip.psLineMin", 6,
-                "Iteration %d: f(%f %f %f) is (%f %f %f)\n", min->iter, a, b, c, fa, fb, fc);
+                "Iteration %d: f(%f %f %f) is (%f %f %f)\n", min->iter,
+                a, b, c, fa, fb, fc);
 
         // We determine which is the biggest segment in [a,b,c] then split
@@ -1608,5 +1621,5 @@
             psFree(tmpn);
             psTrace(".psLib.dataManip.psLineMin", 4,
-                    "---- psLineMin() end (%f) ----\n", mul);
+                    "---- psLineMin() end.a (%f) ----\n", mul);
             return(mul);
         }
@@ -1620,5 +1633,5 @@
 
     psTrace(".psLib.dataManip.psLineMin", 4,
-            "---- psLineMin() end (0.0) ----\n");
+            "---- psLineMin() end.b (0.0) ----\n");
     return(0.0);
 }
@@ -1663,4 +1676,8 @@
     psTrace(".psLib.dataManip.psMinimizePowell", 4,
             "---- psMinimizePowell() begin ----\n");
+    psTrace(".psLib.dataManip.psMinimizePowell", 6,
+            "min->maxIter is %d\n", min->maxIter);
+    psTrace(".psLib.dataManip.psMinimizePowell", 6,
+            "min->tol is %f\n", min->tol);
 
     pQP = psVectorAlloc(numDims, PS_TYPE_F32);
@@ -1704,4 +1721,6 @@
         for (i=0;i<numDims;i++) {
             if (paramMask->data.U8[i] == 0) {
+                dummyMin.maxIter = 100;
+                dummyMin.tol = 0.01;
                 mul = psLineMin(&dummyMin, Q, v[i], paramMask, coords, func);
                 if (fabs(dummyMin.value - currFuncVal) > biggestDiff) {
