Go to the documentation of this file.
21 #define LM_USRTOL 30*DBL_EPSILON
47 double = 100.0,
int = 100,
int = 1,
int = 0 );
59 LM_Status(
double = 0.0,
int = 0,
int = 0 );
68 double (*f)( double ,
double* );
72 double(*)(
double,
double* ) );
80 static QString lm_statmsg(
LM_Status*,
bool =
false );
83 static void lm_printout_std(
int n_par,
double *par,
int m_dat,
84 const void *data,
const double *fvec,
85 int printflags,
int iflag,
int iter,
89 static double lm_rmsdnorm(
int,
const double * );
92 static double lm_enorm(
int,
const double * );
95 static void lmmin(
int n_par,
double *par,
int m_dat,
const void *data,
96 void (*evaluate) (
double *par,
int m_dat,
97 const void *data,
double *fvec,
int *info ),
99 void (*printout) (
int n_par,
double *par,
100 int m_dat,
const void *data,
const double *fvec,
101 int printflags,
int iflag,
int iter,
int nfev ) );
106 static void lm_lmdif(
int m,
int n,
double *x,
double *fvec,
double ftol,
109 double xtol,
double gtol,
int maxfev,
double epsfcn,
110 double *diag,
int mode,
double factor,
int *info,
111 int *nfev,
double *fjac,
int *ipvt,
double *qtf,
112 double *wa1,
double *wa2,
double *wa3,
double *wa4,
113 void (*evaluate) (
double *par,
int m_dat,
114 const void *data,
double *fvec,
int *info ),
115 void (*printout) (
int n_par,
double *par,
116 int m_dat,
const void *data,
const double *fvec,
117 int printflags,
int iflag,
int iter,
int nfev ),
118 int printflags,
const void *data );
125 static void lmcurve_evaluate(
double *par,
int m_dat,
127 double *fvec,
int * );
130 static void lmcurve_fit(
int n_par,
double *par,
int m_dat,
131 const double *t,
const double *y,
132 double (*f)(
double t,
double *par ),
136 static void lmcurve_fit_rmsd(
int n_par,
double *par,
int m_dat,
137 const double *t,
const double *y,
138 double (*f)(
double t,
double *par ),
146 static void lm_lmpar(
int n,
double *r,
int ldr,
int *ipvt,
double *diag,
147 double *qtb,
double delta,
double *par,
double *x,
148 double *sdiag,
double *aux,
double *xdi );
149 static void lm_qrfac(
int m,
int n,
double *a,
int pivot,
int *ipvt,
150 double *rdiag,
double *acnorm,
double *wa );
151 static void lm_qrsolv(
int n,
double *r,
int ldr,
int *ipvt,
double *diag,
152 double *qtb,
double *x,
double *sdiag,
double *wa );