2 * Library: lmfit (Levenberg-Marquardt least squares fitting)
6 * Contents: Levenberg-Marquardt curve-fitting
8 * Copyright: Joachim Wuttke, Forschungszentrum Juelich GmbH (2004-2013)
10 * License: see ../COPYING (FreeBSD)
12 * Homepage: apps.jcns.fz-juelich.de/lmfit
16 #include "gromacs/utility/basedefinitions.h"
22 double (*f)(double t, const double *par);
23 } lmcurve_data_struct;
26 void lmcurve_evaluate( const double *par, int m_dat, const void *data,
27 double *fvec, gmx_unused int *info )
31 lmcurve_data_struct *d = (lmcurve_data_struct*) data;
32 for (i = 0; i < m_dat; i++)
34 fy = d->f(d->t[i], par );
35 fvec[i] = (d->y[i] - fy)/d->dy[i];
40 void lmcurve( int n_par, double *par, int m_dat,
41 const double *t, const double *y, const double *dy,
42 double (*f)( double t, const double *par ),
43 const lm_control_struct *control,
44 lm_status_struct *status )
46 lmcurve_data_struct data;
52 lmmin( n_par, par, m_dat, (const void*) &data,
53 lmcurve_evaluate, control, status );