* bybye Part, welcome TriangularView and SelfAdjointView.

* move solveTriangular*() to TriangularView::solve*()
* move .llt() to SelfAdjointView
* add a high level wrapper to the efficient selfadjoint * vector product
* improve LLT so that we can specify which triangular part is meaningless
=> there are still many things to do (doc, cleaning, improve the matrix products, etc.)
This commit is contained in:
Gael Guennebaud
2009-07-06 23:43:20 +02:00
parent 08e419dcb1
commit 1aea45335f
16 changed files with 1103 additions and 514 deletions

View File

@@ -456,6 +456,21 @@ class Matrix
*this = other;
}
template<typename TriangularDerived>
EIGEN_STRONG_INLINE Matrix& operator=(const TriangularBase<TriangularDerived> &other)
{
resize(other.rows(), other.cols());
Base::operator=(other.derived());
return *this;
}
template<typename TriangularDerived>
EIGEN_STRONG_INLINE Matrix(const TriangularBase<TriangularDerived> &other)
: m_storage(other.rows() * other.cols(), other.rows(), other.cols())
{
*this = other;
}
/** Override MatrixBase::swap() since for dynamic-sized matrices of same type it is enough to swap the
* data pointers.
*/