mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-01-18 14:34:17 +08:00
minor compilation fixes for Sun CC and ICC
This commit is contained in:
parent
4c85fa8c73
commit
4375c043ac
2
Eigen/QR
2
Eigen/QR
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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)
|
||||||
|
@ -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));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user