double * optimize(double *x, const double *x_min, const double *x_max, int(*f)(double *, double *), int(*df)(double *, double *), int(*g)(double *, double *), int(*dg)(double *, double *), int(*h)(double *, double *), int(*dh)(double *, double *), int m_x, int m_g, int m_h, double ftol, double xtol, double eqthre, int max_eval, double max_time, int log, Optimization::NLopt::Algorithm algorithm, double *fbuf, double *dfbuf, double *gbuf, double *dgbuf, double *hbuf, double *dhbuf)