From bd693af522e1b29324e3f203552e315fbd55c64d Mon Sep 17 00:00:00 2001 From: stevenj Date: Mon, 28 Nov 2011 17:42:47 -0500 Subject: [PATCH] CCSA trust-region problem should use dual_opt parameters (= user local_optim params, if any) Ignore-this: 20371a4fa65358541c8453144d95c013 darcs-hash:20111128224247-c8de0-d37ecaf11d95b07924adbc10ba46a32040185947.gz --- mma/ccsa_quadratic.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mma/ccsa_quadratic.c b/mma/ccsa_quadratic.c index 1c829ce..0ef175c 100644 --- a/mma/ccsa_quadratic.c +++ b/mma/ccsa_quadratic.c @@ -297,15 +297,17 @@ nlopt_result ccsa_quadratic_minimize( pre_lb = dd.scratch + 2*n; pre_ub = pre_lb + n; - pre_opt = nlopt_create(NLOPT_LD_CCSAQ, n); + pre_opt = nlopt_create(nlopt_get_algorithm(dual_opt), n); if (!pre_opt) { ret = NLOPT_FAILURE; goto done; } ret = nlopt_set_min_objective(pre_opt, g0, &dd); if (ret < 0) goto done; ret = nlopt_add_inequality_mconstraint(pre_opt, m, gi, &dd, NULL); if (ret < 0) goto done; - ret = nlopt_set_ftol_rel(pre_opt, 1e-12); + ret = nlopt_set_ftol_rel(pre_opt, nlopt_get_ftol_rel(dual_opt)); if (ret < 0) goto done; - ret = nlopt_set_maxeval(pre_opt, 100000); + ret = nlopt_set_ftol_abs(pre_opt, nlopt_get_ftol_abs(dual_opt)); + if (ret < 0) goto done; + ret = nlopt_set_maxeval(pre_opt, nlopt_get_maxeval(dual_opt)); if (ret < 0) goto done; } -- 2.30.2