minor compilation fixes for Sun CC and ICC

This commit is contained in:
Gael Guennebaud 2009-07-20 13:27:41 +02:00
parent 4c85fa8c73
commit 4375c043ac
4 changed files with 24 additions and 17 deletions

View File

@ -41,7 +41,7 @@ namespace Eigen {
// declare all classes for a given matrix type // declare all classes for a given matrix type
#define EIGEN_QR_MODULE_INSTANTIATE_TYPE(MATRIXTYPE,PREFIX) \ #define EIGEN_QR_MODULE_INSTANTIATE_TYPE(MATRIXTYPE,PREFIX) \
PREFIX template class QR<MATRIXTYPE>; \ PREFIX template class HouseholderQR<MATRIXTYPE>; \
PREFIX template class Tridiagonalization<MATRIXTYPE>; \ PREFIX template class Tridiagonalization<MATRIXTYPE>; \
PREFIX template class HessenbergDecomposition<MATRIXTYPE>; \ PREFIX template class HessenbergDecomposition<MATRIXTYPE>; \
PREFIX template class SelfAdjointEigenSolver<MATRIXTYPE> PREFIX template class SelfAdjointEigenSolver<MATRIXTYPE>

View File

@ -62,7 +62,7 @@ template<typename MatrixType> class LDLT
typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> IntColVectorType; typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> IntColVectorType;
typedef Matrix<int, 1, MatrixType::RowsAtCompileTime> IntRowVectorType; typedef Matrix<int, 1, MatrixType::RowsAtCompileTime> IntRowVectorType;
/** /**
* \brief Default Constructor. * \brief Default Constructor.
* *
* The default constructor is useful in cases in which the user intends to * The default constructor is useful in cases in which the user intends to
@ -80,10 +80,10 @@ template<typename MatrixType> class LDLT
} }
/** \returns the lower triangular matrix L */ /** \returns the lower triangular matrix L */
inline Part<MatrixType, UnitLowerTriangular> matrixL(void) const inline Part<MatrixType, UnitLowerTriangular> matrixL(void) const
{ {
ei_assert(m_isInitialized && "LDLT is not initialized."); 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, /** \returns a vector of integers, whose size is the number of rows of the matrix being decomposed,
@ -97,24 +97,24 @@ template<typename MatrixType> class LDLT
} }
/** \returns the coefficients of the diagonal matrix D */ /** \returns the coefficients of the diagonal matrix D */
inline Diagonal<MatrixType,0> vectorD(void) const inline Diagonal<MatrixType,0> vectorD(void) const
{ {
ei_assert(m_isInitialized && "LDLT is not initialized."); ei_assert(m_isInitialized && "LDLT is not initialized.");
return m_matrix.diagonal(); return m_matrix.diagonal();
} }
/** \returns true if the matrix is positive (semidefinite) */ /** \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."); ei_assert(m_isInitialized && "LDLT is not initialized.");
return m_sign == 1; return m_sign == 1;
} }
/** \returns true if the matrix is negative (semidefinite) */ /** \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."); ei_assert(m_isInitialized && "LDLT is not initialized.");
return m_sign == -1; return m_sign == -1;
} }
template<typename RhsDerived, typename ResultType> template<typename RhsDerived, typename ResultType>

View File

@ -178,7 +178,14 @@ template<typename Derived> class MapBase
} }
using Base::operator*=; using Base::operator*=;
using Base::operator+=;
template<typename Lhs,typename Rhs>
Derived& operator+=(const Flagged<Product<Lhs,Rhs,CacheFriendlyProduct>, 0, EvalBeforeNestingBit | EvalBeforeAssigningBit>& other)
{ return Base::operator+=(other); }
template<typename Lhs,typename Rhs>
Derived& operator-=(const Flagged<Product<Lhs,Rhs,CacheFriendlyProduct>, 0, EvalBeforeNestingBit | EvalBeforeAssigningBit>& other)
{ return Base::operator-=(other); }
template<typename OtherDerived> template<typename OtherDerived>
Derived& operator+=(const MatrixBase<OtherDerived>& other) Derived& operator+=(const MatrixBase<OtherDerived>& other)

View File

@ -82,7 +82,7 @@ template<int SizeAtCompileType> void mixingtypes(int size = SizeAtCompileType)
void test_mixingtypes() void test_mixingtypes()
{ {
// check that our operator new is indeed called: // check that our operator new is indeed called:
CALL_SUBTEST(mixingtypes<3>()); CALL_SUBTEST(mixingtypes<3>(3));
CALL_SUBTEST(mixingtypes<4>()); CALL_SUBTEST(mixingtypes<4>(4));
CALL_SUBTEST(mixingtypes<Dynamic>(20)); CALL_SUBTEST(mixingtypes<Dynamic>(20));
} }