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"
21 double (*f)(double t, const double *par);
22 } lmcurve_data_struct;
25 void lmcurve_evaluate( const double *par, int m_dat, const void *data,
26 double *fvec, gmx_unused int *info )
29 for (i = 0; i < m_dat; i++)
32 ((lmcurve_data_struct*)data)->y[i] -
33 ((lmcurve_data_struct*)data)->f(
34 ((lmcurve_data_struct*)data)->t[i], par );
39 void lmcurve( int n_par, double *par, int m_dat,
40 const double *t, const double *y,
41 double (*f)( double t, const double *par ),
42 const lm_control_struct *control,
43 lm_status_struct *status )
45 lmcurve_data_struct data;
50 lmmin( n_par, par, m_dat, (const void*) &data,
51 lmcurve_evaluate, control, status );