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