return ret;
}
- case NLOPT_LD_MMA: {
+ case NLOPT_LD_MMA: case NLOPT_LD_CCSAQ: {
nlopt_opt dual_opt;
nlopt_result ret;
#define LO(param, def) (opt->local_opt ? opt->local_opt->param : (def))
nlopt_set_maxeval(dual_opt, LO(maxeval, 100000));
#undef LO
- ret = mma_minimize(n, f, f_data, opt->m, opt->fc,
- lb, ub, x, minf, &stop, dual_opt);
+ if (algorithm == NLOPT_LD_MMA)
+ ret = mma_minimize(n, f, f_data, opt->m, opt->fc,
+ lb, ub, x, minf, &stop, dual_opt);
+ else
+ ret = ccsa_quadratic_minimize(
+ n, f, f_data, opt->m, opt->fc,
+ NULL, NULL, NULL, NULL,
+ lb, ub, x, minf, &stop, dual_opt);
nlopt_destroy(dual_opt);
return ret;
}