aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported/Eigen/src/NonLinearOptimization/chkder.h
diff options
context:
space:
mode:
Diffstat (limited to 'unsupported/Eigen/src/NonLinearOptimization/chkder.h')
-rw-r--r--unsupported/Eigen/src/NonLinearOptimization/chkder.h19
1 files changed, 11 insertions, 8 deletions
diff --git a/unsupported/Eigen/src/NonLinearOptimization/chkder.h b/unsupported/Eigen/src/NonLinearOptimization/chkder.h
index 4cb4fbdef..e2bdf923c 100644
--- a/unsupported/Eigen/src/NonLinearOptimization/chkder.h
+++ b/unsupported/Eigen/src/NonLinearOptimization/chkder.h
@@ -2,8 +2,10 @@
#define chkder_log10e 0.43429448190325182765
#define chkder_factor 100.
+namespace internal {
+
template<typename Scalar>
-void ei_chkder(
+void chkder(
const Matrix< Scalar, Dynamic, 1 > &x,
const Matrix< Scalar, Dynamic, 1 > &fvec,
const Matrix< Scalar, Dynamic, Dynamic > &fjac,
@@ -15,9 +17,9 @@ void ei_chkder(
{
typedef DenseIndex Index;
- const Scalar eps = ei_sqrt(NumTraits<Scalar>::epsilon());
+ const Scalar eps = sqrt(NumTraits<Scalar>::epsilon());
const Scalar epsf = chkder_factor * NumTraits<Scalar>::epsilon();
- const Scalar epslog = chkder_log10e * ei_log(eps);
+ const Scalar epslog = chkder_log10e * log(eps);
Scalar temp;
const Index m = fvec.size(), n = x.size();
@@ -26,7 +28,7 @@ void ei_chkder(
/* mode = 1. */
xp.resize(n);
for (Index j = 0; j < n; ++j) {
- temp = eps * ei_abs(x[j]);
+ temp = eps * abs(x[j]);
if (temp == 0.)
temp = eps;
xp[j] = x[j] + temp;
@@ -36,21 +38,22 @@ void ei_chkder(
/* mode = 2. */
err.setZero(m);
for (Index j = 0; j < n; ++j) {
- temp = ei_abs(x[j]);
+ temp = abs(x[j]);
if (temp == 0.)
temp = 1.;
err += temp * fjac.col(j);
}
for (Index i = 0; i < m; ++i) {
temp = 1.;
- if (fvec[i] != 0. && fvecp[i] != 0. && ei_abs(fvecp[i] - fvec[i]) >= epsf * ei_abs(fvec[i]))
- temp = eps * ei_abs((fvecp[i] - fvec[i]) / eps - err[i]) / (ei_abs(fvec[i]) + ei_abs(fvecp[i]));
+ if (fvec[i] != 0. && fvecp[i] != 0. && abs(fvecp[i] - fvec[i]) >= epsf * abs(fvec[i]))
+ temp = eps * abs((fvecp[i] - fvec[i]) / eps - err[i]) / (abs(fvec[i]) + abs(fvecp[i]));
err[i] = 1.;
if (temp > NumTraits<Scalar>::epsilon() && temp < eps)
- err[i] = (chkder_log10e * ei_log(temp) - epslog) / epslog;
+ err[i] = (chkder_log10e * log(temp) - epslog) / epslog;
if (temp >= eps)
err[i] = 0.;
}
}
}
+} // end namespace internal \ No newline at end of file