28#define MPFIT_VERSION "1.2"
64typedef void (*mp_iterproc)(void);
67struct mp_config_struct {
98struct mp_result_struct {
120typedef struct mp_par_struct mp_par;
121typedef struct mp_config_struct mp_config;
122typedef struct mp_result_struct mp_result;
125typedef int (*mp_func)(
int m,
133#define MP_ERR_INPUT (0)
134#define MP_ERR_NAN (-16)
135#define MP_ERR_FUNC (-17)
136#define MP_ERR_NPOINTS (-18)
137#define MP_ERR_NFREE (-19)
138#define MP_ERR_MEMORY (-20)
139#define MP_ERR_INITBOUNDS (-21)
140#define MP_ERR_BOUNDS (-22)
141#define MP_ERR_PARAM (-23)
142#define MP_ERR_DOF (-24)
147#define MP_OK_BOTH (3)
149#define MP_MAXITER (5)
155#define MP_MACHEP0 2.2204460e-16
156#define MP_DWARF 2.2250739e-308
157#define MP_GIANT 1.7976931e+308
161#define MP_MACHEP0 1.19209e-07
162#define MP_DWARF 1.17549e-38
163#define MP_GIANT 3.40282e+38
166#define MP_RDWARF (sqrt(MP_DWARF*1.5)*10)
167#define MP_RGIANT (sqrt(MP_GIANT)*0.1)
171extern int mpfit(mp_func funct,
int m,
int npar,
172 double *xall, mp_par *pars, mp_config *config,
179#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
180#define mpfinite(x) isfinite(x)
183#elif defined(_MSC_VER) && _MSC_VER
185#define mpfinite(x) _finite(x)
189#define mpfinite(x) finite(x)