diff options
author | Freddie Witherden <freddie@witherden.org> | 2014-08-27 15:24:51 +0100 |
---|---|---|
committer | Freddie Witherden <freddie@witherden.org> | 2014-08-27 15:24:51 +0100 |
commit | c3e408047427a12669720b64397e080956786829 (patch) | |
tree | 528b95275ef0013dbeb56bba445f0abe3d1c5781 /unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h | |
parent | 0ba490cf80d9c389de410beaa3551b2a2a72a801 (diff) |
Allow LevenbergMarquardt to work with non-standard types.
Diffstat (limited to 'unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h')
-rw-r--r-- | unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h b/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h index bfeb26fc9..ecb8dccf4 100644 --- a/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +++ b/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h @@ -55,8 +55,8 @@ public: Parameters() : factor(Scalar(100.)) , maxfev(400) - , ftol(std::sqrt(NumTraits<Scalar>::epsilon())) - , xtol(std::sqrt(NumTraits<Scalar>::epsilon())) + , ftol(sqrt_(NumTraits<Scalar>::epsilon())) + , xtol(sqrt_(NumTraits<Scalar>::epsilon())) , gtol(Scalar(0.)) , epsfcn(Scalar(0.)) {} Scalar factor; @@ -72,7 +72,7 @@ public: LevenbergMarquardtSpace::Status lmder1( FVectorType &x, - const Scalar tol = std::sqrt(NumTraits<Scalar>::epsilon()) + const Scalar tol = sqrt_(NumTraits<Scalar>::epsilon()) ); LevenbergMarquardtSpace::Status minimize(FVectorType &x); @@ -83,12 +83,12 @@ public: FunctorType &functor, FVectorType &x, Index *nfev, - const Scalar tol = std::sqrt(NumTraits<Scalar>::epsilon()) + const Scalar tol = sqrt_(NumTraits<Scalar>::epsilon()) ); LevenbergMarquardtSpace::Status lmstr1( FVectorType &x, - const Scalar tol = std::sqrt(NumTraits<Scalar>::epsilon()) + const Scalar tol = sqrt_(NumTraits<Scalar>::epsilon()) ); LevenbergMarquardtSpace::Status minimizeOptimumStorage(FVectorType &x); @@ -109,6 +109,8 @@ public: Scalar lm_param(void) { return par; } private: + static Scalar sqrt_(const Scalar& x) { using std::sqrt; return sqrt(x); } + FunctorType &functor; Index n; Index m; |