chiark / gitweb /
do not print size every time(!)
[moebius2.git] / minimise.c
index 8f6a26173c5a9d6e39e1c658432384a8e7aeb5e5..bf5b096c89339acdee0428147f503c2f94bfcc41 100644 (file)
 const char *input_file, *best_file;
 char *best_file_tmp;
 long long evaluations;
+double stop_epsilon= 1e-20;
 
 static void printing_init(void);
 
-static const double stop_epsilon= 1e-6;
 static gsl_multimin_fminimizer *minimiser;
 static const char *final_file;
 static char *final_file_tmp;
@@ -69,7 +69,7 @@ int main(int argc, const char *const *argv) {
   double initial_half[DIM], step_size[DIM];
   FILE *initial_f;
   gsl_vector initial_gsl, step_size_gsl;
-  int r, i;
+  int r, i, size_check_counter= 0;
 
   if (argc==3) {
     input_file= argv[1];
@@ -126,15 +126,17 @@ int main(int argc, const char *const *argv) {
   for (;;) {
     GA( gsl_multimin_fminimizer_iterate(minimiser) );
 
-    size= gsl_multimin_fminimizer_size(minimiser);
-    r= gsl_multimin_test_size(size, stop_epsilon);
+    if (!(size_check_counter++ % DIM)) {
+      size= gsl_multimin_fminimizer_size(minimiser);
+      r= gsl_multimin_test_size(size, stop_epsilon);
 
-    if (printing_check(pr_size,215))
-      printf("r=%2d, size %# e\n", r, size);
-    flushoutput();
+      if (printing_check(pr_size,215))
+       printf("r=%2d, size %# e\n", r, size);
+      flushoutput();
 
-    if (r==GSL_SUCCESS) break;
-    assert(r==GSL_CONTINUE);
+      if (r==GSL_SUCCESS) break;
+      assert(r==GSL_CONTINUE);
+    }
   }
 
   if (final_file) {