X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;ds=sidebyside;f=minimise.c;h=bf5b096c89339acdee0428147f503c2f94bfcc41;hb=cb6eb4221e7a5ac6963a1e9c32d0aa25061be353;hp=8f6a26173c5a9d6e39e1c658432384a8e7aeb5e5;hpb=58a4b8719e43b27e6ae5493c9bfe32741d71c235;p=moebius2.git diff --git a/minimise.c b/minimise.c index 8f6a261..bf5b096 100644 --- a/minimise.c +++ b/minimise.c @@ -40,10 +40,10 @@ 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) {