Added Triangular expression to extract upper or lower (strictly or not)

part of a matrix. Triangular also provide an optimised method for forward
and backward substitution. Further optimizations regarding assignments and
products might come later.

Updated determinant() to take into account triangular matrices.

Started the QR module with a QR decompostion algorithm.
Help needed to build a QR algorithm (eigen solver) based on it.
This commit is contained in:
Gael Guennebaud
2008-04-26 18:26:05 +00:00
parent 62bf0bbd59
commit 4c92150676
21 changed files with 586 additions and 19 deletions

View File

@@ -47,8 +47,9 @@ template<typename Lhs, typename Rhs, int EvalMode=ei_product_eval_mode<Lhs,Rhs>:
template<typename CoeffsVectorType> class DiagonalMatrix;
template<typename MatrixType> class DiagonalCoeffs;
template<typename MatrixType> class Map;
template<typename Derived> class Eval;
// template<typename Derived> class Eval;
template<int Direction, typename UnaryOp, typename MatrixType> class PartialRedux;
template<int Mode, typename MatrixType> class Triangular;
template<typename Scalar> struct ei_scalar_sum_op;
template<typename Scalar> struct ei_scalar_difference_op;
@@ -71,5 +72,6 @@ template<typename Scalar> struct ei_scalar_min_op;
template<typename Scalar> struct ei_scalar_max_op;
template<typename ExpressionType, bool CheckExistence = true> class Inverse;
template<typename MatrixType> class QR;
#endif // EIGEN_FORWARDDECLARATIONS_H