1*5ddc57e5SXin Li /* 2*5ddc57e5SXin Li * Library: lmfit (Levenberg-Marquardt least squares fitting) 3*5ddc57e5SXin Li * 4*5ddc57e5SXin Li * File: lmcurve.h 5*5ddc57e5SXin Li * 6*5ddc57e5SXin Li * Contents: Declares lmcurve, a simplified API for curve fitting 7*5ddc57e5SXin Li * using the generic Levenberg-Marquardt routine lmmin. 8*5ddc57e5SXin Li * 9*5ddc57e5SXin Li * Copyright: Joachim Wuttke, Forschungszentrum Juelich GmbH (2004-2013) 10*5ddc57e5SXin Li * 11*5ddc57e5SXin Li * License: see ../COPYING (FreeBSD) 12*5ddc57e5SXin Li * 13*5ddc57e5SXin Li * Homepage: apps.jcns.fz-juelich.de/lmfit 14*5ddc57e5SXin Li * 15*5ddc57e5SXin Li * Note to programmers: Don't patch and fork, but copy and variate! 16*5ddc57e5SXin Li * If you need to compute residues differently, then please do not patch 17*5ddc57e5SXin Li * lmcurve.h, but copy it to a differently named file, and change lmcurve() 18*5ddc57e5SXin Li * into a differently named function declaration, like we have done in 19*5ddc57e5SXin Li * lmcurve_tyd.h. 20*5ddc57e5SXin Li */ 21*5ddc57e5SXin Li 22*5ddc57e5SXin Li #ifndef LMCURVE_H 23*5ddc57e5SXin Li #define LMCURVE_H 24*5ddc57e5SXin Li #undef __BEGIN_DECLS 25*5ddc57e5SXin Li #undef __END_DECLS 26*5ddc57e5SXin Li #ifdef __cplusplus 27*5ddc57e5SXin Li #define __BEGIN_DECLS extern "C" { 28*5ddc57e5SXin Li #define __END_DECLS } 29*5ddc57e5SXin Li #else 30*5ddc57e5SXin Li #define __BEGIN_DECLS /* empty */ 31*5ddc57e5SXin Li #define __END_DECLS /* empty */ 32*5ddc57e5SXin Li #endif 33*5ddc57e5SXin Li 34*5ddc57e5SXin Li #include <lmstruct.h> 35*5ddc57e5SXin Li 36*5ddc57e5SXin Li __BEGIN_DECLS 37*5ddc57e5SXin Li 38*5ddc57e5SXin Li void lmcurve( 39*5ddc57e5SXin Li const int n_par, double* par, const int m_dat, 40*5ddc57e5SXin Li const double* t, const double* y, 41*5ddc57e5SXin Li double (*f)(double t, const double* par), 42*5ddc57e5SXin Li const lm_control_struct* control, lm_status_struct* status); 43*5ddc57e5SXin Li 44*5ddc57e5SXin Li __END_DECLS 45*5ddc57e5SXin Li #endif /* LMCURVE_H */ 46