34#ifndef VP_LEVENBERG_MARQUARTD_H
35#define VP_LEVENBERG_MARQUARTD_H
37#include <visp3/core/vpConfig.h>
38#include <visp3/core/vpMath.h>
103 int qrsolv(
int n,
double *r,
int ldr,
int *ipvt,
double *diag,
double *qtb,
double *x,
double *sdiag,
double *wa);
131double enorm(
const double *x,
int n);
204int lmpar(
int n,
double *r,
int ldr,
int *ipvt,
double *diag,
double *qtb,
double *delta,
double *par,
205 double *x,
double *sdiag,
double *wa1,
double *wa2);
220double pythag(
double a,
double b);
266int qrfac(
int m,
int n,
double *a,
int lda,
int *pivot,
int *ipvt,
int lipvt,
double *rdiag,
double *acnorm,
double *wa);
271typedef void (*ComputeFunctionAndJacobian)(
int m,
int n,
double *xc,
double *fvecc,
double *jac,
int ldfjac,
int iflag);
378int lmder(ComputeFunctionAndJacobian ptr_fcn,
379 int m,
int n,
double *x,
double *fvec,
double *fjac,
int ldfjac,
double ftol,
double xtol,
380 double gtol,
unsigned int maxfev,
double *diag,
int mode,
const double factor,
int nprint,
381 int *info,
unsigned int *nfev,
int *njev,
int *ipvt,
double *qtf,
double *wa1,
double *wa2,
382 double *wa3,
double *wa4);
463int lmder1(ComputeFunctionAndJacobian ptr_fcn,
464 int m,
int n,
double *x,
double *fvec,
double *fjac,
int ldfjac,
double tol,
int *info,
465 int *ipvt,
int lwa,
double *wa);