From: Ian Jackson Date: Wed, 29 Nov 2017 19:39:54 +0000 (+0000) Subject: helixish: better debug X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=530bc168d990b872d435b413ac22429129ea7ac7;p=moebius3.git helixish: better debug Signed-off-by: Ian Jackson --- diff --git a/findcurve.c b/findcurve.c index 9277db4..d1ffb44 100644 --- a/findcurve.c +++ b/findcurve.c @@ -60,7 +60,7 @@ static double scan1double(void) { int main(void) { double target[N], epsilon; - int i; + int i, j; gsl_multiroot_function_fdf function; function.f = cb_f; @@ -91,7 +91,8 @@ int main(void) { printf("["); for (i=0; i<6; i++) printf(" %.18g,", gsl_vector_get(solver->x, i)); - for (i=0; i<6; i++) printf(" %.18g,", gsl_vector_get(solver->f, 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); @@ -99,6 +100,15 @@ int main(void) { } 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); } diff --git a/symbolic.py b/symbolic.py index ede36c4..3486f3a 100644 --- a/symbolic.py +++ b/symbolic.py @@ -230,6 +230,9 @@ def gen_diff(current, smalls): def gen_misc(): cprintraw('// AUTOGENERATED - DO NOT EDIT\n') cprintraw('#define N %d\n' % len(params)) + cprintraw('static const char *PARAM_NAMES[N]={'); + for p in params: cprintraw('"%s",' % p) + cprintraw('};\n'); def gen_x_extract(): cprint('#define X_EXTRACT')