10 #ifndef EIGEN_SELFADJOINTMATRIX_H    11 #define EIGEN_SELFADJOINTMATRIX_H    32 template<
typename MatrixType, 
unsigned int UpLo>
    43     CoeffReadCost = MatrixTypeNestedCleaned::CoeffReadCost
    48 template <
typename Lhs, 
int LhsMode, 
bool LhsIsVector,
    49           typename Rhs, 
int RhsMode, 
bool RhsIsVector>
    65     typedef typename MatrixType::Index 
Index;
    75     inline Index 
rows()
 const { 
return m_matrix.rows(); }
    76     inline Index 
cols()
 const { 
return m_matrix.cols(); }
    77     inline Index 
outerStride()
 const { 
return m_matrix.outerStride(); }
    78     inline Index 
innerStride()
 const { 
return m_matrix.innerStride(); }
    85       Base::check_coordinates_internal(row, col);
    86       return m_matrix.coeff(row, col);
    94       Base::check_coordinates_internal(row, col);
    95       return m_matrix.const_cast_derived().coeffRef(row, col);
    99     const MatrixTypeNestedCleaned& 
_expression()
 const { 
return m_matrix; }
   102     MatrixTypeNestedCleaned& 
nestedExpression() { 
return *
const_cast<MatrixTypeNestedCleaned*
>(&m_matrix); }
   105     template<
typename OtherDerived>
   110               <MatrixType,Mode,
false,OtherDerived,0,OtherDerived::IsVectorAtCompileTime>
   111               (m_matrix, rhs.derived());
   115     template<
typename OtherDerived> 
friend   120               <OtherDerived,0,OtherDerived::IsVectorAtCompileTime,MatrixType,Mode,
false>
   134     template<
typename DerivedU, 
typename DerivedV>
   147     template<
typename DerivedU>
   162     EigenvaluesReturnType eigenvalues() 
const;
   163     RealScalar operatorNorm() 
const;
   165     #ifdef EIGEN2_SUPPORT   166     template<
typename OtherDerived>
   172       m_matrix.const_cast_derived().template triangularView<UpLo>() = other;
   173       m_matrix.const_cast_derived().template triangularView<OtherPart>() = other.
adjoint();
   176     template<
typename OtherMatrixType, 
unsigned int OtherMode>
   182       m_matrix.const_cast_derived().template triangularView<UpLo>() = other.
toDenseMatrix();
   183       m_matrix.const_cast_derived().template triangularView<OtherPart>() = other.
toDenseMatrix().adjoint();
   204 template<
typename Derived1, 
typename Derived2, 
int UnrollCount, 
bool ClearOpposite>
   208     col = (UnrollCount-1) / Derived1::RowsAtCompileTime,
   209     row = (UnrollCount-1) % Derived1::RowsAtCompileTime
   212   static inline void run(Derived1 &dst, 
const Derived2 &src)
   223 template<
typename Derived1, 
typename Derived2, 
bool ClearOpposite>
   226   static inline void run(Derived1 &, 
const Derived2 &) {}
   229 template<
typename Derived1, 
typename Derived2, 
int UnrollCount, 
bool ClearOpposite>
   233     col = (UnrollCount-1) / Derived1::RowsAtCompileTime,
   234     row = (UnrollCount-1) % Derived1::RowsAtCompileTime
   237   static inline void run(Derived1 &dst, 
const Derived2 &src)
   248 template<
typename Derived1, 
typename Derived2, 
bool ClearOpposite>
   251   static inline void run(Derived1 &, 
const Derived2 &) {}
   254 template<
typename Derived1, 
typename Derived2, 
bool ClearOpposite>
   257   typedef typename Derived1::Index 
Index;
   258   static inline void run(Derived1 &dst, 
const Derived2 &src)
   260     for(Index j = 0; j < dst.cols(); ++j)
   262       for(Index i = 0; i < j; ++i)
   264         dst.copyCoeff(i, j, src);
   265         dst.coeffRef(j,i) = numext::conj(dst.coeff(i,j));
   267       dst.copyCoeff(j, j, src);
   272 template<
typename Derived1, 
typename Derived2, 
bool ClearOpposite>
   275   static inline void run(Derived1 &dst, 
const Derived2 &src)
   277   typedef typename Derived1::Index Index;
   278     for(Index i = 0; i < dst.rows(); ++i)
   280       for(Index j = 0; j < i; ++j)
   282         dst.copyCoeff(i, j, src);
   283         dst.coeffRef(j,i) = numext::conj(dst.coeff(i,j));
   285       dst.copyCoeff(i, i, src);
   296 template<
typename Derived>
   297 template<
unsigned int UpLo>
   304 template<
typename Derived>
   305 template<
unsigned int UpLo>
   314 #endif // EIGEN_SELFADJOINTMATRIX_H static void run(Derived1 &, const Derived2 &)
Robust Cholesky decomposition of a matrix with pivoting. 
internal::traits< SelfAdjointView >::MatrixTypeNestedCleaned MatrixTypeNestedCleaned
Scalar & coeffRef(Index row, Index col)
TriangularBase< SelfAdjointView > Base
DenseMatrixType toDenseMatrix() const
static void run(Derived1 &, const Derived2 &)
MatrixType::PlainObject DenseMatrixType
friend SelfadjointProductMatrix< OtherDerived, 0, OtherDerived::IsVectorAtCompileTime, MatrixType, Mode, false > operator*(const MatrixBase< OtherDerived > &lhs, const SelfAdjointView &rhs)
const unsigned int DirectAccessBit
static void run(Derived1 &dst, const Derived2 &src)
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
Matrix< RealScalar, internal::traits< MatrixType >::ColsAtCompileTime, 1 > EigenvaluesReturnType
const unsigned int PacketAccessBit
internal::traits< SelfAdjointView >::Scalar Scalar
The type of coefficients in this matrix. 
RealReturnType real() const 
const unsigned int HereditaryBits
const MatrixTypeNestedCleaned & nestedExpression() const 
nested< MatrixType >::type MatrixTypeNested
Standard Cholesky decomposition (LL^T) of a matrix and associated features. 
NumTraits< Scalar >::Real RealScalar
Expression of a selfadjoint matrix from a triangular part of a dense matrix. 
Index outerStride() const 
MatrixType::PlainObject PlainObject
MatrixTypeNestedCleaned & nestedExpression()
static void run(Derived1 &dst, const Derived2 &src)
Index innerStride() const 
Scalar coeff(Index row, Index col) const 
SelfAdjointViewReturnType< UpLo >::Type selfadjointView()
MatrixType ExpressionType
Base class for triangular part in a matrix. 
MatrixTypeNested m_matrix
static void run(Derived1 &dst, const Derived2 &src)
remove_all< MatrixTypeNested >::type MatrixTypeNestedCleaned
The matrix class, also used for vectors and row-vectors. 
const MatrixTypeNestedCleaned & _expression() const 
static void run(Derived1 &dst, const Derived2 &src)
const AdjointReturnType adjoint() const 
void run(ClassLoader *loader)
Base class for all dense matrices, vectors, and expressions. 
SelfadjointProductMatrix< MatrixType, Mode, false, OtherDerived, 0, OtherDerived::IsVectorAtCompileTime > operator*(const MatrixBase< OtherDerived > &rhs) const 
const unsigned int LinearAccessBit
SelfAdjointView(MatrixType &matrix)
internal::traits< SelfAdjointView >::MatrixTypeNested MatrixTypeNested