|
33 #include <cpl_matrix.h>
41 #define LMRQ_DCHISQ 0.0001
42 #define LMRQ_ITERMAX 30
43 #define LMRQ_TESTMAX 7
44 #define LMRQ_NPARAMS 3
47 #define DW_LOG001 2.302585093
93 typedef void (*fitted_func)( double[], double[], double[], double *, double[], int);
106 typedef struct lmrq_params lmrq_params;
112 enum _lmrq_model_id_ {
127 typedef enum _lmrq_model_id_ lmrq_model_id;
133 enum lmrq_model_type {
140 typedef enum lmrq_model_type lmrq_model_type;
158 cxint mrqnlfit(cpl_matrix *, cpl_matrix *, cpl_matrix *, cxint, cpl_matrix *,
159 cxdouble[], cxint[], cxint, cpl_matrix *, cxdouble *,
160 lmrq_params, fitted_func);
162 cxint mymrqmin(cpl_matrix *, cpl_matrix *, cpl_matrix *, cxint, cpl_matrix *,
163 cxdouble[], cxint[], cxint, cpl_matrix *, cpl_matrix *,
164 cxdouble *, fitted_func, cxdouble *);
166 cxint mymrqcof(cpl_matrix *, cpl_matrix *, cpl_matrix *, cxint, cpl_matrix *,
167 cxdouble[], cxint[], cxint, cpl_matrix *, cpl_matrix *,
168 cxdouble *, fitted_func);
170 cxdouble r_squared(cxdouble, cpl_matrix *, cxint);
174 void mrqgaussum(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
177 void mrqxoptmod(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
180 void mrqxoptmod2(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
183 void mrqyoptmod(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
186 void mrqyoptmod2(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
189 void mrqpsfcos(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
192 void mrqpsfexp(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
195 void mrqpsfexp2(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
198 void mrqlocywarp(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
201 void mrqxoptmodGS(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
204 void mrqtest(cxdouble[], cxdouble[], cxdouble[], cxdouble *,
208 extern cxint nr_lmrq_models;
|