chiark / gitweb /
don't print past end of array in mma_verbose mode
authorstevenj <stevenj@alum.mit.edu>
Tue, 19 Aug 2008 21:52:32 +0000 (17:52 -0400)
committerstevenj <stevenj@alum.mit.edu>
Tue, 19 Aug 2008 21:52:32 +0000 (17:52 -0400)
darcs-hash:20080819215232-c8de0-9ca9fb52f3cdbea92ddb38fa893b9623d5935798.gz

mma/mma.c

index 76183061a6d519b242169622ea60d4f445f0374b..7dae61b6b800b8e5f6f10b4215b9219fc1dec863 100644 (file)
--- a/mma/mma.c
+++ b/mma/mma.c
@@ -214,7 +214,7 @@ nlopt_result mma_minimize(int n, nlopt_func f, void *f_data,
               if (mma_verbose) {
                    printf("MMA dual converged in %d iterations to g=%g:\n",
                           dd.count, dd.gval);
-                   for (i = 0; i < mma_verbose; ++i)
+                   for (i = 0; i < MIN(mma_verbose, m); ++i)
                         printf("    MMA y[%d]=%g, gc[%d]=%g\n",
                                i, y[i], i, dd.gcval[i]);
               }
@@ -262,7 +262,7 @@ nlopt_result mma_minimize(int n, nlopt_func f, void *f_data,
               
               if (mma_verbose)
                    printf("MMA inner iteration: rho -> %g\n", rho);
-              for (i = 0; i < mma_verbose; ++i)
+              for (i = 0; i < MIN(mma_verbose, m); ++i)
                    printf("                     rhoc[%d] -> %g\n", i,rhoc[i]);
          }
 
@@ -278,7 +278,7 @@ nlopt_result mma_minimize(int n, nlopt_func f, void *f_data,
               printf("MMA outer iteration: rho -> %g\n", rho);
          for (i = 0; i < m; ++i)
               rhoc[i] = MAX(0.1 * rhoc[i], MMA_RHOMIN);
-         for (i = 0; i < mma_verbose; ++i)
+         for (i = 0; i < MIN(mma_verbose, m); ++i)
               printf("                     rhoc[%d] -> %g\n", i, rhoc[i]);
          if (k > 1) {
               for (j = 0; j < n; ++j) {
@@ -290,7 +290,7 @@ nlopt_result mma_minimize(int n, nlopt_func f, void *f_data,
                         sigma[j] = MAX(sigma[j], 0.01*(ub[j]-lb[j]));
                    }
               }
-              for (j = 0; j < mma_verbose; ++j)
+              for (j = 0; j < MIN(mma_verbose, n); ++j)
                    printf("                     sigma[%d] -> %g\n", 
                           j, sigma[j]);
          }