From: stevenj Date: Mon, 28 Nov 2011 22:42:47 +0000 (-0500) Subject: CCSA trust-region problem should use dual_opt parameters (= user local_optim params... X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=bd693af522e1b29324e3f203552e315fbd55c64d;p=nlopt.git CCSA trust-region problem should use dual_opt parameters (= user local_optim params, if any) Ignore-this: 20371a4fa65358541c8453144d95c013 darcs-hash:20111128224247-c8de0-d37ecaf11d95b07924adbc10ba46a32040185947.gz --- 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; }