1 #ifndef MOJA_MODULES_CBM_LMMIN_H_
2 #define MOJA_MODULES_CBM_LMMIN_H_
4 #include "moja/modules/cbm/_modules.cbm_exports.h"
27 typedef void (lm_evaluate_ftype)(
double *par,
int m_dat,
double *fvec,
void *data,
int *info);
30 void lm_evaluate_default(
double *par,
int m_dat,
double *fvec,
void *data,
int *info);
33 typedef void (lm_print_ftype)(
int n_par,
double *par,
int m_dat,
double *fvec,
void *data,
int iflag,
int iter,
int nfev);
36 void lm_print_default(
int n_par,
double *par,
int m_dat,
double *fvec,
void *data,
int iflag,
int iter,
int nfev);
42 double lm_enorm(
int,
double *);
45 void lm_minimize(
int m_dat,
int n_par,
double *par, lm_evaluate_ftype * evaluate, lm_print_ftype * printout,
void *data,
lm_control_type * control);
47 void lm_lmdif(
int m,
int n,
double *x,
double *fvec,
double ftol,
double xtol,
double gtol,
int maxfev,
double epsfcn,
48 double *diag,
int mode,
double factor,
int *info,
int *nfev,
double *fjac,
int *ipvt,
double *qtf,
double *wa1,
49 double *wa2,
double *wa3,
double *wa4, lm_evaluate_ftype * evaluate, lm_print_ftype * printout,
void *data);
51 void lm_qrfac(
int m,
int n,
double *a,
int pivot,
int *ipvt,
double *rdiag,
double *acnorm,
double *wa);
53 void lm_qrsolv(
int n,
double *r,
int ldr,
int *ipvt,
double *diag,
double *qtb,
double *x,
double *sdiag,
double *wa);
55 void lm_lmpar(
int n,
double *r,
int ldr,
int *ipvt,
double *diag,
double *qtb,
double delta,
double *par,
double *x,
56 double *sdiag,
double *wa1,
double *wa2);