X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=findcurve.c;h=c038182e685ca954002d0e0473338077c01f5af4;hb=906edec3ef60cf3e0567c713b2a68688edb634d4;hp=605c60bd9b603827594d31dd44028a523a53c457;hpb=f67cea3765d08847db5b4e972737086078172b1d;p=moebius3.git diff --git a/findcurve.c b/findcurve.c index 605c60b..c038182 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); - } - - printf("None\n"); + 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, + .iters_fixed_T = 100, + .n_tries = 10, + .step_size = 0.05, + }; + + gsl_siman_solve(rng, + startpoint, + cb_Efunc, cb_step, cb_metric, + 0, //cb_print, + 0,0,0, sizeof(startpoint), siman_params); + + printcore(startpoint); + + printf("[]\n"); + fflush(stdout); } }