return sqrt(s);
}
-static void __attribute__((unused)) cb_print(void *xp) {
+static void __attribute__((unused)) cb_print(gsl_vector *xp) {
GET_X(xp);
printf("\n");
printcore(X);
gsl_vector_set_all(step_size, 0.01);
gsl_multimin_fminimizer *minimiser =
- gsl_multimin_fminimizer_alloc(gsl_multimin_fminimizer_nmsimplex2, NX);
+ gsl_multimin_fminimizer_alloc(gsl_multimin_fminimizer_nmsimplex2rand, NX);
for (;;) {
/* NINPUT + 1 doubles: startpoint, epsilon for residual */
r = gsl_multimin_fminimizer_iterate(minimiser);
assert(!r);
+ //cb_print(current_gx);
+
double size = gsl_multimin_fminimizer_size(minimiser);
+ //printf(" size=%10.7f\n", size);
+
if (size < epsilon) break;
}
- cb_print(startpoint_X);
+ cb_print(current_gx);
printf("[]\n");
fflush(stdout);