aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Eigenvalues
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2016-07-13 18:46:01 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2016-07-13 18:46:01 +0200
commit461cd819c276a3f20bf60930c68fe5b72168b927 (patch)
treed63aa2eebb31c1faf294832ff67b9e17e21d14b1 /Eigen/src/Eigenvalues
parent20f7ef2f89abb1773366459bf02d2382f5e2912a (diff)
Workaround VS2015 bug
Diffstat (limited to 'Eigen/src/Eigenvalues')
-rw-r--r--Eigen/src/Eigenvalues/GeneralizedEigenSolver.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h b/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
index 19730f9e4..6eeeb174e 100644
--- a/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
+++ b/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
@@ -333,8 +333,9 @@ GeneralizedEigenSolver<MatrixType>::compute(const MatrixType& A, const MatrixTyp
// T = [a 0]
// [0 b]
- RealScalar a = matT.coeff(i, i),
- b = matT(i+1, i+1); // NOTE: using operator() instead of coeff() workarounds a MSVC bug.
+ RealScalar a = matT.diagonal().coeff(i),
+ b = matT.diagonal().coeff(i+1);
+ // ^^ NOTE: using diagonal()(i) instead of coeff(i,i) workarounds a MSVC bug.
Matrix<RealScalar,2,2> S2 = m_matS.template block<2,2>(i,i) * Matrix<Scalar,2,1>(b,a).asDiagonal();
Scalar p = Scalar(0.5) * (S2.coeff(0,0) - S2.coeff(1,1));