7 #endif /* __cplusplus */
9 typedef double (*nlopt_func)(int n, const double *x,
10 double *gradient, /* NULL if not needed */
14 /* non-gradient methods */
18 /* gradient-based methods */
24 NLOPT_FAILURE = -1, /* generic failure code */
25 NLOPT_INVALID_ARGS = -2,
26 NLOPT_OUT_OF_MEMORY = -3,
28 NLOPT_SUCCESS = 1, /* generic success code */
29 NLOPT_FMIN_MAX_REACHED = 2,
30 NLOPT_FTOL_REACHED = 3,
31 NLOPT_XTOL_REACHED = 4,
32 NLOPT_MAXEVAL_REACHED = 5,
33 NLOPT_MAXTIME_REACHED = 6
36 extern nlopt_result nlopt_minimize(
38 int n, nlopt_func f, void *f_data,
39 const double *lb, const double *ub, /* bounds */
40 double *x, /* in: initial guess, out: minimizer */
41 double *fmin, /* out: minimum */
42 double fmin_max, double ftol_rel, double ftol_abs,
43 double xtol_rel, const double *xtol_abs,
44 int maxeval, double maxtime);
48 #endif /* __cplusplus */