chiark / gitweb /
curveopt: try simple, but no good
[moebius3.git] / findcurve.c
index 53abb4759b2669ce3e0c81be9e7deded653d3fc5..ca3cd8fd4ae76c2ab12ddcd5cdccc7b4e0d1cb6a 100644 (file)
@@ -99,7 +99,7 @@ static double __attribute__((unused))  cb_metric(void *xp, void *yp) {
   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);
@@ -137,7 +137,7 @@ int main(int argc, const char *const *argv) {
   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 */
@@ -155,11 +155,15 @@ int main(int argc, const char *const *argv) {
       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);