diff options
Diffstat (limited to 'unsupported/Eigen/src/NonLinearOptimization/dogleg.h')
-rw-r--r-- | unsupported/Eigen/src/NonLinearOptimization/dogleg.h | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/unsupported/Eigen/src/NonLinearOptimization/dogleg.h b/unsupported/Eigen/src/NonLinearOptimization/dogleg.h index 18b0963b2..b3c4fbb96 100644 --- a/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +++ b/unsupported/Eigen/src/NonLinearOptimization/dogleg.h @@ -36,8 +36,7 @@ void ei_dogleg( } /* test whether the gauss-newton direction is acceptable. */ - wa2 = diag.cwiseProduct(x); - qnorm = wa2.stableNorm(); + qnorm = diag.cwiseProduct(x).stableNorm(); if (qnorm <= delta) return; @@ -48,9 +47,7 @@ void ei_dogleg( wa1.fill(0.); for (j = 0; j < n; ++j) { - temp = qtb[j]; - for (i = j; i < n; ++i) - wa1[i] += qrfac(j,i) * temp; + wa1.tail(n-j) += qrfac.row(j).tail(n-j) * qtb[j]; wa1[j] /= diag[j]; } |