chiark / gitweb /
added some more decimal places to known minima
[nlopt.git] / test / testopt.cpp
index 66a74d82b1478106a3f97e398e37fbb7161f1d9b..561c084154f3bc3c252401887b869894aabddd49 100644 (file)
@@ -114,6 +114,16 @@ static int test_function(int ifunc)
     printf("]\n");
   }
 
+  if (fabs(func.f(func.n, func.xmin, 0, func.f_data) - func.minf) > 1e-8) {
+    fprintf(stderr, "BUG: function does not achieve given lower bound!\n");
+    fprintf(stderr, "f(%g", func.xmin[0]);
+    for (i = 1; i < func.n; ++i) fprintf(stderr, ", %g", func.xmin[i]);
+    fprintf(stderr, ") = %0.16g instead of %0.16g, |diff| = %g\n", 
+           func.f(func.n, func.xmin, 0, func.f_data), func.minf,
+           fabs(func.f(func.n, func.xmin, 0, func.f_data) - func.minf));
+    return 0;
+  }
+
   for (iter = 0; iter < iterations; ++iter) {
     double val;
     testfuncs_counter = 0;