Hi, I wanted to use R's lbfgsb method for minimization from C. Unfortunately, my toy examples always crashes (segmentation fault). What's wrong with it? double eval(int n, double* par, void *ex) { double result = 0; for (int i=0; i<n; ++i) { result += par[i]*par[i]; } printf("result=%.2f\n", result); return result; } void grad(int n, double *par, double *gr, void *ex) { gr[0] = 2*par[0]; gr[1] = 2*par[1]; } int main(void) { int n = 2; int m = 5; double init[] = {2,3}; double lower[] = {-100, -100}; double upper[] = {100, 100}; int nbd[] = {0, 0}; double Fmin; int fail; void *ex = 0; double factr = 1e7; double pgtol = 0; int fncount; int grcount; int maxit = 10; char msg[1000]; int trace = 0; int nREPORT = 10; /* from http://cran.r-project.org/doc/manuals/R-exts.html#Optimization void lbfgsb(int n, int lmm, double *x, double *lower, double *upper, int *nbd, double *Fmin, optimfn fn, optimgr gr, int *fail, void *ex, double factr, double pgtol, int *fncount, int *grcount, int maxit, char *msg, int trace, int nREPORT); */ lbfgsb(n, m, init, lower, upper, nbd, &Fmin, &eval, &grad, &fail, ex, factr, pgtol, &fncount, &grcount, maxit, msg, trace, nREPORT); printf("optimum at (%.2f,%.2f)\n", init[0], init[1]); return 0; } Thanks a lot. [[alternative HTML version deleted]]