From: Ian Jackson Date: Wed, 29 Nov 2017 23:25:13 +0000 (+0000) Subject: helixish: switch to siman X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=0ab11c2eeb1713a802bcf5a4d689be4cd519a8eb;p=moebius3.git helixish: switch to siman Still a bit wip Signed-off-by: Ian Jackson --- diff --git a/findcurve.c b/findcurve.c index 6952778..56ae2ba 100644 --- a/findcurve.c +++ b/findcurve.c @@ -5,11 +5,12 @@ #include #include -#include +#include +#include #include "symbolic.c" -#define X(i) gsl_vector_get(x,i) +#define X(i) x[i] #define J_END_COL(i) \ for (j=0; jx, i)); - for (i=0; i<6; i++) printf(" %.18g,", - target[i] + gsl_vector_get(solver->f, i)); - printf(" ]\n"); - - r = gsl_multiroot_test_residual(solver->f, epsilon); - if (r != GSL_CONTINUE) break; - } - - if (r) { - gsl_matrix *j_dump = gsl_matrix_alloc(N,N); - cb_df(solver->x, target, j_dump); - fprintf(stderr,"// FC J %35s %35s", "d(Q)/", "d(dQ)/\n"); - for (i=0; i<6; i++) { - fprintf(stderr,"// FC J d./d%-6s ", PARAM_NAMES[i]); - for (j=0; j<6; j++) - fprintf(stderr," %10.5f,", gsl_matrix_get(j_dump, i, j)); - fprintf(stderr,"\n"); - } - fprintf(stderr,"ERROR %s\n",gsl_strerror(r)); - exit(-1); - } + gsl_rng_set(rng,0); + + gsl_siman_params_t siman_params = { + .k = 1.0, + .t_initial = 0.5, + .mu_t = 1.001, + .t_min = epsilon * 1E-3, + }; + + gsl_siman_solve(rng, + startpoint, + cb_Efunc, cb_step, cb_metric, + 0, // cb_print, + 0,0,0, sizeof(startpoint), siman_params); + + cb_print(startpoint); printf("[]\n"); }