mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-12 19:59:05 +08:00
cleaning
This commit is contained in:
parent
201f58e528
commit
38fc6c8553
@ -10,7 +10,7 @@ public:
|
|||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
Matrix< Scalar, Dynamic, Dynamic > &fjac,
|
Matrix< Scalar, Dynamic, Dynamic > &fjac,
|
||||||
Scalar tol = ei_sqrt(epsilon<Scalar>())
|
const Scalar tol = ei_sqrt(epsilon<Scalar>())
|
||||||
);
|
);
|
||||||
int solve(
|
int solve(
|
||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
@ -20,14 +20,14 @@ public:
|
|||||||
Matrix< Scalar, Dynamic, 1 > &R,
|
Matrix< Scalar, Dynamic, 1 > &R,
|
||||||
Matrix< Scalar, Dynamic, 1 > &qtf,
|
Matrix< Scalar, Dynamic, 1 > &qtf,
|
||||||
Matrix< Scalar, Dynamic, 1 > &diag,
|
Matrix< Scalar, Dynamic, 1 > &diag,
|
||||||
int mode=1,
|
const int mode=1,
|
||||||
int nb_of_subdiagonals = -1,
|
int nb_of_subdiagonals = -1,
|
||||||
int nb_of_superdiagonals = -1,
|
int nb_of_superdiagonals = -1,
|
||||||
int maxfev = 2000,
|
const int maxfev = 2000,
|
||||||
Scalar factor = Scalar(100.),
|
const Scalar factor = Scalar(100.),
|
||||||
Scalar xtol = ei_sqrt(epsilon<Scalar>()),
|
const Scalar xtol = ei_sqrt(epsilon<Scalar>()),
|
||||||
Scalar epsfcn = Scalar(0.),
|
const Scalar epsfcn = Scalar(0.),
|
||||||
int nprint=0
|
const int nprint=0
|
||||||
);
|
);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -41,7 +41,7 @@ int HybridNonLinearSolverNumericalDiff<FunctorType,Scalar>::solve(
|
|||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
Matrix< Scalar, Dynamic, Dynamic > &fjac,
|
Matrix< Scalar, Dynamic, Dynamic > &fjac,
|
||||||
Scalar tol
|
const Scalar tol
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const int n = x.size();
|
const int n = x.size();
|
||||||
@ -79,14 +79,14 @@ int HybridNonLinearSolverNumericalDiff<FunctorType,Scalar>::solve(
|
|||||||
Matrix< Scalar, Dynamic, 1 > &R,
|
Matrix< Scalar, Dynamic, 1 > &R,
|
||||||
Matrix< Scalar, Dynamic, 1 > &qtf,
|
Matrix< Scalar, Dynamic, 1 > &qtf,
|
||||||
Matrix< Scalar, Dynamic, 1 > &diag,
|
Matrix< Scalar, Dynamic, 1 > &diag,
|
||||||
int mode,
|
const int mode,
|
||||||
int nb_of_subdiagonals,
|
int nb_of_subdiagonals,
|
||||||
int nb_of_superdiagonals,
|
int nb_of_superdiagonals,
|
||||||
int maxfev,
|
const int maxfev,
|
||||||
Scalar factor,
|
const Scalar factor,
|
||||||
Scalar xtol,
|
const Scalar xtol,
|
||||||
Scalar epsfcn,
|
const Scalar epsfcn,
|
||||||
int nprint
|
const int nprint
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const int n = x.size();
|
const int n = x.size();
|
||||||
|
@ -10,7 +10,7 @@ public:
|
|||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
Matrix< Scalar, Dynamic, Dynamic > &fjac,
|
Matrix< Scalar, Dynamic, Dynamic > &fjac,
|
||||||
Scalar tol = ei_sqrt(epsilon<Scalar>())
|
const Scalar tol = ei_sqrt(epsilon<Scalar>())
|
||||||
);
|
);
|
||||||
int solve(
|
int solve(
|
||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
@ -20,11 +20,11 @@ public:
|
|||||||
Matrix< Scalar, Dynamic, 1 > &R,
|
Matrix< Scalar, Dynamic, 1 > &R,
|
||||||
Matrix< Scalar, Dynamic, 1 > &qtf,
|
Matrix< Scalar, Dynamic, 1 > &qtf,
|
||||||
Matrix< Scalar, Dynamic, 1 > &diag,
|
Matrix< Scalar, Dynamic, 1 > &diag,
|
||||||
int mode=1,
|
const int mode=1,
|
||||||
int maxfev = 1000,
|
const int maxfev = 1000,
|
||||||
Scalar factor = Scalar(100.),
|
const Scalar factor = Scalar(100.),
|
||||||
Scalar xtol = ei_sqrt(epsilon<Scalar>()),
|
const Scalar xtol = ei_sqrt(epsilon<Scalar>()),
|
||||||
int nprint=0
|
const int nprint=0
|
||||||
);
|
);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -38,7 +38,7 @@ int HybridNonLinearSolver<FunctorType,Scalar>::solve(
|
|||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
Matrix< Scalar, Dynamic, Dynamic > &fjac,
|
Matrix< Scalar, Dynamic, Dynamic > &fjac,
|
||||||
Scalar tol
|
const Scalar tol
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const int n = x.size();
|
const int n = x.size();
|
||||||
@ -77,11 +77,11 @@ int HybridNonLinearSolver<FunctorType,Scalar>::solve(
|
|||||||
Matrix< Scalar, Dynamic, 1 > &R,
|
Matrix< Scalar, Dynamic, 1 > &R,
|
||||||
Matrix< Scalar, Dynamic, 1 > &qtf,
|
Matrix< Scalar, Dynamic, 1 > &qtf,
|
||||||
Matrix< Scalar, Dynamic, 1 > &diag,
|
Matrix< Scalar, Dynamic, 1 > &diag,
|
||||||
int mode,
|
const int mode,
|
||||||
int maxfev,
|
const int maxfev,
|
||||||
Scalar factor,
|
const Scalar factor,
|
||||||
Scalar xtol,
|
const Scalar xtol,
|
||||||
int nprint
|
const int nprint
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const int n = x.size();
|
const int n = x.size();
|
||||||
|
@ -21,13 +21,13 @@ public:
|
|||||||
VectorXi &ipvt,
|
VectorXi &ipvt,
|
||||||
Matrix< Scalar, Dynamic, 1 > &qtf,
|
Matrix< Scalar, Dynamic, 1 > &qtf,
|
||||||
Matrix< Scalar, Dynamic, 1 > &diag,
|
Matrix< Scalar, Dynamic, 1 > &diag,
|
||||||
int mode=1,
|
const int mode=1,
|
||||||
Scalar factor = 100.,
|
const Scalar factor = 100.,
|
||||||
int maxfev = 400,
|
const int maxfev = 400,
|
||||||
Scalar ftol = ei_sqrt(epsilon<Scalar>()),
|
const Scalar ftol = ei_sqrt(epsilon<Scalar>()),
|
||||||
Scalar xtol = ei_sqrt(epsilon<Scalar>()),
|
const Scalar xtol = ei_sqrt(epsilon<Scalar>()),
|
||||||
Scalar gtol = Scalar(0.),
|
const Scalar gtol = Scalar(0.),
|
||||||
int nprint=0
|
const int nprint=0
|
||||||
);
|
);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -46,7 +46,7 @@ int LevenbergMarquardt<FunctorType,Scalar>::minimize(
|
|||||||
int info, nfev=0, njev=0;
|
int info, nfev=0, njev=0;
|
||||||
Matrix< Scalar, Dynamic, Dynamic > fjac(m, n);
|
Matrix< Scalar, Dynamic, Dynamic > fjac(m, n);
|
||||||
Matrix< Scalar, Dynamic, 1> diag, qtf;
|
Matrix< Scalar, Dynamic, 1> diag, qtf;
|
||||||
VectorXi ipvt(n);
|
VectorXi ipvt;
|
||||||
|
|
||||||
/* check the input parameters for errors. */
|
/* check the input parameters for errors. */
|
||||||
if (n <= 0 || m < n || tol < 0.) {
|
if (n <= 0 || m < n || tol < 0.) {
|
||||||
@ -55,14 +55,14 @@ int LevenbergMarquardt<FunctorType,Scalar>::minimize(
|
|||||||
}
|
}
|
||||||
|
|
||||||
info = minimize(
|
info = minimize(
|
||||||
x, fvec,
|
x, fvec,
|
||||||
nfev, njev,
|
nfev, njev,
|
||||||
fjac, ipvt, qtf, diag,
|
fjac, ipvt, qtf, diag,
|
||||||
1,
|
1,
|
||||||
100.,
|
100.,
|
||||||
(n+1)*100,
|
(n+1)*100,
|
||||||
tol, tol, Scalar(0.)
|
tol, tol, Scalar(0.)
|
||||||
);
|
);
|
||||||
return (info==8)?4:info;
|
return (info==8)?4:info;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,13 +77,13 @@ int LevenbergMarquardt<FunctorType,Scalar>::minimize(
|
|||||||
VectorXi &ipvt,
|
VectorXi &ipvt,
|
||||||
Matrix< Scalar, Dynamic, 1 > &qtf,
|
Matrix< Scalar, Dynamic, 1 > &qtf,
|
||||||
Matrix< Scalar, Dynamic, 1 > &diag,
|
Matrix< Scalar, Dynamic, 1 > &diag,
|
||||||
int mode,
|
const int mode,
|
||||||
Scalar factor,
|
const Scalar factor,
|
||||||
int maxfev,
|
const int maxfev,
|
||||||
Scalar ftol,
|
const Scalar ftol,
|
||||||
Scalar xtol,
|
const Scalar xtol,
|
||||||
Scalar gtol,
|
const Scalar gtol,
|
||||||
int nprint
|
const int nprint
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const int m = fvec.size(), n = x.size();
|
const int m = fvec.size(), n = x.size();
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
|
|
||||||
|
|
||||||
template<typename FunctorType, typename Scalar>
|
template<typename FunctorType, typename Scalar>
|
||||||
class LevenbergMarquardtNumericalDiff
|
class LevenbergMarquardtNumericalDiff
|
||||||
{
|
{
|
||||||
@ -21,14 +20,14 @@ public:
|
|||||||
VectorXi &ipvt,
|
VectorXi &ipvt,
|
||||||
Matrix< Scalar, Dynamic, 1 > &qtf,
|
Matrix< Scalar, Dynamic, 1 > &qtf,
|
||||||
Matrix< Scalar, Dynamic, 1 > &diag,
|
Matrix< Scalar, Dynamic, 1 > &diag,
|
||||||
int mode=1,
|
const int mode=1,
|
||||||
Scalar factor = 100.,
|
const Scalar factor = 100.,
|
||||||
int maxfev = 400,
|
const int maxfev = 400,
|
||||||
Scalar ftol = ei_sqrt(epsilon<Scalar>()),
|
const Scalar ftol = ei_sqrt(epsilon<Scalar>()),
|
||||||
Scalar xtol = ei_sqrt(epsilon<Scalar>()),
|
const Scalar xtol = ei_sqrt(epsilon<Scalar>()),
|
||||||
Scalar gtol = Scalar(0.),
|
const Scalar gtol = Scalar(0.),
|
||||||
Scalar epsfcn = Scalar(0.),
|
const Scalar epsfcn = Scalar(0.),
|
||||||
int nprint=0
|
const int nprint=0
|
||||||
);
|
);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -40,7 +39,7 @@ template<typename FunctorType, typename Scalar>
|
|||||||
int LevenbergMarquardtNumericalDiff<FunctorType,Scalar>::minimize(
|
int LevenbergMarquardtNumericalDiff<FunctorType,Scalar>::minimize(
|
||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
Scalar tol
|
const Scalar tol
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const int n = x.size(), m=fvec.size();
|
const int n = x.size(), m=fvec.size();
|
||||||
@ -76,14 +75,14 @@ int LevenbergMarquardtNumericalDiff<FunctorType,Scalar>::minimize(
|
|||||||
VectorXi &ipvt,
|
VectorXi &ipvt,
|
||||||
Matrix< Scalar, Dynamic, 1 > &qtf,
|
Matrix< Scalar, Dynamic, 1 > &qtf,
|
||||||
Matrix< Scalar, Dynamic, 1 > &diag,
|
Matrix< Scalar, Dynamic, 1 > &diag,
|
||||||
int mode,
|
const int mode,
|
||||||
Scalar factor,
|
const Scalar factor,
|
||||||
int maxfev,
|
const int maxfev,
|
||||||
Scalar ftol,
|
const Scalar ftol,
|
||||||
Scalar xtol,
|
const Scalar xtol,
|
||||||
Scalar gtol,
|
const Scalar gtol,
|
||||||
Scalar epsfcn,
|
const Scalar epsfcn,
|
||||||
int nprint
|
const int nprint
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const int m = fvec.size(), n = x.size();
|
const int m = fvec.size(), n = x.size();
|
||||||
|
@ -21,13 +21,13 @@ public:
|
|||||||
VectorXi &ipvt,
|
VectorXi &ipvt,
|
||||||
Matrix< Scalar, Dynamic, 1 > &qtf,
|
Matrix< Scalar, Dynamic, 1 > &qtf,
|
||||||
Matrix< Scalar, Dynamic, 1 > &diag,
|
Matrix< Scalar, Dynamic, 1 > &diag,
|
||||||
int mode=1,
|
const int mode=1,
|
||||||
Scalar factor = 100.,
|
const Scalar factor = 100.,
|
||||||
int maxfev = 400,
|
const int maxfev = 400,
|
||||||
Scalar ftol = ei_sqrt(epsilon<Scalar>()),
|
const Scalar ftol = ei_sqrt(epsilon<Scalar>()),
|
||||||
Scalar xtol = ei_sqrt(epsilon<Scalar>()),
|
const Scalar xtol = ei_sqrt(epsilon<Scalar>()),
|
||||||
Scalar gtol = Scalar(0.),
|
const Scalar gtol = Scalar(0.),
|
||||||
int nprint=0
|
const int nprint=0
|
||||||
);
|
);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -39,14 +39,14 @@ template<typename FunctorType, typename Scalar>
|
|||||||
int LevenbergMarquardtOptimumStorage<FunctorType,Scalar>::minimize(
|
int LevenbergMarquardtOptimumStorage<FunctorType,Scalar>::minimize(
|
||||||
Matrix< Scalar, Dynamic, 1 > &x,
|
Matrix< Scalar, Dynamic, 1 > &x,
|
||||||
Matrix< Scalar, Dynamic, 1 > &fvec,
|
Matrix< Scalar, Dynamic, 1 > &fvec,
|
||||||
Scalar tol
|
const Scalar tol
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const int n = x.size(), m=fvec.size();
|
const int n = x.size(), m=fvec.size();
|
||||||
int info, nfev=0, njev=0;
|
int info, nfev=0, njev=0;
|
||||||
Matrix< Scalar, Dynamic, Dynamic > fjac(m, n);
|
Matrix< Scalar, Dynamic, Dynamic > fjac(m, n);
|
||||||
Matrix< Scalar, Dynamic, 1> diag, qtf;
|
Matrix< Scalar, Dynamic, 1> diag, qtf;
|
||||||
VectorXi ipvt(n);
|
VectorXi ipvt;
|
||||||
|
|
||||||
/* check the input parameters for errors. */
|
/* check the input parameters for errors. */
|
||||||
if (n <= 0 || m < n || tol < 0.) {
|
if (n <= 0 || m < n || tol < 0.) {
|
||||||
@ -76,13 +76,13 @@ int LevenbergMarquardtOptimumStorage<FunctorType,Scalar>::minimize(
|
|||||||
VectorXi &ipvt,
|
VectorXi &ipvt,
|
||||||
Matrix< Scalar, Dynamic, 1 > &qtf,
|
Matrix< Scalar, Dynamic, 1 > &qtf,
|
||||||
Matrix< Scalar, Dynamic, 1 > &diag,
|
Matrix< Scalar, Dynamic, 1 > &diag,
|
||||||
int mode,
|
const int mode,
|
||||||
Scalar factor,
|
const Scalar factor,
|
||||||
int maxfev,
|
const int maxfev,
|
||||||
Scalar ftol,
|
const Scalar ftol,
|
||||||
Scalar xtol,
|
const Scalar xtol,
|
||||||
Scalar gtol,
|
const Scalar gtol,
|
||||||
int nprint
|
const int nprint
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const int m = fvec.size(), n = x.size();
|
const int m = fvec.size(), n = x.size();
|
||||||
@ -115,6 +115,7 @@ int LevenbergMarquardtOptimumStorage<FunctorType,Scalar>::minimize(
|
|||||||
|
|
||||||
if (n <= 0 || m < n || ftol < 0. || xtol < 0. || gtol < 0. || maxfev <= 0 || factor <= 0.)
|
if (n <= 0 || m < n || ftol < 0. || xtol < 0. || gtol < 0. || maxfev <= 0 || factor <= 0.)
|
||||||
goto algo_end;
|
goto algo_end;
|
||||||
|
|
||||||
if (mode == 2)
|
if (mode == 2)
|
||||||
for (j = 0; j < n; ++j)
|
for (j = 0; j < n; ++j)
|
||||||
if (diag[j] <= 0.) goto algo_end;
|
if (diag[j] <= 0.) goto algo_end;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user