diff --git a/Eigen/QR b/Eigen/QR index 97907d1e5..5f36d0987 100644 --- a/Eigen/QR +++ b/Eigen/QR @@ -41,7 +41,7 @@ namespace Eigen { // declare all classes for a given matrix type #define EIGEN_QR_MODULE_INSTANTIATE_TYPE(MATRIXTYPE,PREFIX) \ - PREFIX template class QR; \ + PREFIX template class HouseholderQR; \ PREFIX template class Tridiagonalization; \ PREFIX template class HessenbergDecomposition; \ PREFIX template class SelfAdjointEigenSolver diff --git a/Eigen/src/Cholesky/LDLT.h b/Eigen/src/Cholesky/LDLT.h index 94660245e..a308b22d5 100644 --- a/Eigen/src/Cholesky/LDLT.h +++ b/Eigen/src/Cholesky/LDLT.h @@ -62,7 +62,7 @@ template class LDLT typedef Matrix IntColVectorType; typedef Matrix IntRowVectorType; - /** + /** * \brief Default Constructor. * * The default constructor is useful in cases in which the user intends to @@ -80,10 +80,10 @@ template class LDLT } /** \returns the lower triangular matrix L */ - inline Part matrixL(void) const - { + inline Part matrixL(void) const + { ei_assert(m_isInitialized && "LDLT is not initialized."); - return m_matrix; + return m_matrix; } /** \returns a vector of integers, whose size is the number of rows of the matrix being decomposed, @@ -97,24 +97,24 @@ template class LDLT } /** \returns the coefficients of the diagonal matrix D */ - inline Diagonal vectorD(void) const - { + inline Diagonal vectorD(void) const + { ei_assert(m_isInitialized && "LDLT is not initialized."); - return m_matrix.diagonal(); + return m_matrix.diagonal(); } /** \returns true if the matrix is positive (semidefinite) */ - inline bool isPositive(void) const - { + inline bool isPositive(void) const + { ei_assert(m_isInitialized && "LDLT is not initialized."); - return m_sign == 1; + return m_sign == 1; } /** \returns true if the matrix is negative (semidefinite) */ - inline bool isNegative(void) const - { + inline bool isNegative(void) const + { ei_assert(m_isInitialized && "LDLT is not initialized."); - return m_sign == -1; + return m_sign == -1; } template diff --git a/Eigen/src/Core/MapBase.h b/Eigen/src/Core/MapBase.h index 59bf69ad6..0b7d815fb 100644 --- a/Eigen/src/Core/MapBase.h +++ b/Eigen/src/Core/MapBase.h @@ -178,7 +178,14 @@ template class MapBase } using Base::operator*=; - using Base::operator+=; + + template + Derived& operator+=(const Flagged, 0, EvalBeforeNestingBit | EvalBeforeAssigningBit>& other) + { return Base::operator+=(other); } + + template + Derived& operator-=(const Flagged, 0, EvalBeforeNestingBit | EvalBeforeAssigningBit>& other) + { return Base::operator-=(other); } template Derived& operator+=(const MatrixBase& other) diff --git a/test/mixingtypes.cpp b/test/mixingtypes.cpp index ec8a0f190..d14232bd4 100644 --- a/test/mixingtypes.cpp +++ b/test/mixingtypes.cpp @@ -82,7 +82,7 @@ template void mixingtypes(int size = SizeAtCompileType) void test_mixingtypes() { // check that our operator new is indeed called: - CALL_SUBTEST(mixingtypes<3>()); - CALL_SUBTEST(mixingtypes<4>()); + CALL_SUBTEST(mixingtypes<3>(3)); + CALL_SUBTEST(mixingtypes<4>(4)); CALL_SUBTEST(mixingtypes(20)); }