aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2018-02-09 15:01:25 +0100
committerAnton Khirnov <anton@khirnov.net>2018-02-09 15:06:35 +0100
commitd9a2c203ca924b6bb5dc30d109d774b1dd2ef633 (patch)
treed987dfd02795949d4c405ceae80dd67e1c59c392
parent9c53354d9af808f36e668579a54a45af4ed8f722 (diff)
nlsolve: do not add the delta after we declare convergence
Also, log the lowest-order coeff for all the variables
-rw-r--r--nlsolve.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/nlsolve.c b/nlsolve.c
index cdc403e..960a8e9 100644
--- a/nlsolve.c
+++ b/nlsolve.c
@@ -203,7 +203,6 @@ int tdi_nlsolve_solve(NLSolveContext *ctx, NLEqCallback eq_eval,
if (ret < 0)
return ret;
- cblas_daxpy(s->solve_order, 1.0, s->delta, 1, coeffs, 1);
max_idx = cblas_idamax(s->solve_order, s->delta, 1);
if (fabs(s->delta[max_idx]) < ctx->atol) {
tdi_log(&ctx->logger, 2, "Converged on iteration %d: max(delta) %g, tolerance %g\n",
@@ -212,8 +211,14 @@ int tdi_nlsolve_solve(NLSolveContext *ctx, NLEqCallback eq_eval,
goto finish;
}
- tdi_log(&ctx->logger, 3, "Iteration %d, max(delta) %g coeffs[0] %g\n",
- it, s->delta[max_idx], coeffs[0]);
+ cblas_daxpy(s->solve_order, 1.0, s->delta, 1, coeffs, 1);
+
+ tdi_log(&ctx->logger, 3, "Iteration %d, max(delta) %g ",
+ it, s->delta[max_idx]);
+ for (int i = 0; i < s->nb_vars; i++)
+ tdi_log(&ctx->logger, 3, "coeffs%d[0] %g ",
+ i, coeffs[s->vars[i].coeffs_offset]);
+ tdi_log(&ctx->logger, 3, "\n");
}
tdi_log(&ctx->logger, 0, "The solver did not converge\n");