|
|
25#include <cpl_matrix.h>
33#define LMRQ_DCHISQ 0.0001
34#define LMRQ_ITERMAX 30
39#define DW_LOG001 2.302585093
85typedef void (*fitted_func)( double[], double[], double[], double *, double[], int);
98typedef struct lmrq_params lmrq_params;
104enum _lmrq_model_id_ {
119typedef enum _lmrq_model_id_ lmrq_model_id;
125enum lmrq_model_type {
132typedef enum lmrq_model_type lmrq_model_type;
150cxint mrqnlfit(cpl_matrix *, cpl_matrix *, cpl_matrix *, cxint, cpl_matrix *,
151 cxdouble[], cxint[], cxint, cpl_matrix *, cxdouble *,
152 lmrq_params, fitted_func);
154cxint mymrqmin(cpl_matrix *, cpl_matrix *, cpl_matrix *, cxint, cpl_matrix *,
155 cxdouble[], cxint[], cxint, cpl_matrix *, cpl_matrix *,
156 cxdouble *, fitted_func, cxdouble *);
158cxint mymrqcof(cpl_matrix *, cpl_matrix *, cpl_matrix *, cxint, cpl_matrix *,
159 cxdouble[], cxint[], cxint, cpl_matrix *, cpl_matrix *,
160 cxdouble *, fitted_func);
162cxdouble r_squared(cxdouble, cpl_matrix *, cxint);
166void mrqgaussum(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
169void mrqxoptmod(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
172void mrqxoptmod2(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
175void mrqyoptmod(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
178void mrqyoptmod2(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
181void mrqpsfcos(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
184void mrqpsfexp(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
187void mrqpsfexp2(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
190void mrqlocywarp(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
193void mrqxoptmodGS(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
196void mrqtest(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
200extern cxint nr_lmrq_models;
struct definition to handle model functions
|