41 class Q_DECL_EXPORT
LMFit :
public QObject
54 LMFit(
const QList<const ArrayItem*>* aList, QList<FunItem*>* fList,
55 const bool* bFit,
double* par, QObject* parent = 0,
56 const double* sigma = 0);
65 static double enorm(
int n,
const double x[]);
72 static double igamc(
double a,
double x);
84 bool linFit(
int n,
int nPar,
double par[],
double resVector[],
double fJac[],
99 void lmdif(
int n,
int nPar,
double par[],
double resVector[],
double tol,
100 int itMax,
int* info,
double fJac[],
int iPvt[]);
108 static int minv(
double a[],
double x[],
int n);
113 inline void setSigma(
const double* sigma) { m_sigma = sigma; };
118 inline void setUserBreak(
bool userBreak =
true) { m_userBreak = userBreak; };
123 void fcn(
int n,
int np,
const double p[],
double fvec[],
int* iflag);
124 void fdjac2(
int m,
int n,
double x[],
const double fvec[],
double fjac[],
125 int ldfjac,
int* iflag,
double epsfcn,
double wa[]);
126 void lmdif(
int m,
int np,
double px[],
double fvec[],
double ftol,
127 double ptol,
double gtol,
int maxfev,
double epsfcn,
128 double diag[],
int mode,
double factor,
int nprint,
129 int* info,
int* nfev,
double fjac[],
int ldfjac,
130 int ipvt[],
double qtf[],
double wa1[],
double wa2[],
131 double wa3[],
double wa4[]);
135 const double* m_sigma;
136 const QList<const ArrayItem*>* m_aList;
137 QList<FunItem*>* m_fList;
144 void updateMessage(
const QString& message);