![]() |
Eigen
3.2.10
|
Base class for triangular part in a matrix.
| MatrixType | the type of the object in which we are taking the triangular part |
| Mode | the kind of triangular matrix expression to construct. Can be Upper, Lower, UnitUpper, UnitLower, StrictlyUpper, or StrictlyLower. This is in fact a bit field; it must have either Upper or Lower, and additionnaly it may have UnitDiag or ZeroDiag or neither. |
This class represents a triangular part of a matrix, not necessarily square. Strictly speaking, for rectangular matrices one should speak of "trapezoid" parts. This class is the return type of MatrixBase::triangularView() and most of the time this is the only way it is used.
Public Member Functions | |
| const TriangularView< const typename MatrixType::AdjointReturnType, TransposeMode > | adjoint () const |
| Scalar | coeff (Index row, Index col) const |
| Scalar & | coeffRef (Index row, Index col) |
| TriangularView< MatrixConjugateReturnType, Mode > | conjugate () |
| const TriangularView< MatrixConjugateReturnType, Mode > | conjugate () const |
| template<typename Other> | |
| void | copyCoeff (Index row, Index col, Other &other) |
| Derived & | derived () |
| const Derived & | derived () const |
| template<typename DenseDerived> | |
| void | evalTo (MatrixBase< DenseDerived > &other) const |
| template<typename DenseDerived> | |
| void | evalToLazy (MatrixBase< DenseDerived > &other) const |
| void | fill (const Scalar &value) |
| template<typename OtherDerived> | |
| TriangularProduct< Mode, true, MatrixType, false, OtherDerived, OtherDerived::ColsAtCompileTime==1 > | operator* (const MatrixBase< OtherDerived > &rhs) const |
| TriangularView & | operator*= (const typename internal::traits< MatrixType >::Scalar &other) |
| template<typename Other> | |
| TriangularView & | operator+= (const DenseBase< Other > &other) |
| template<typename Other> | |
| TriangularView & | operator-= (const DenseBase< Other > &other) |
| TriangularView & | operator/= (const typename internal::traits< MatrixType >::Scalar &other) |
| template<typename OtherDerived> | |
| TriangularView & | operator= (const TriangularBase< OtherDerived > &other) |
| TriangularView & | setConstant (const Scalar &value) |
| TriangularView & | setOnes () |
| TriangularView & | setZero () |
| Index | size () const |
| template<int Side, typename Other> | |
| const internal::triangular_solve_retval< Side, TriangularView< Derived, Mode >, Other > | solve (const MatrixBase< Other > &other) const |
| template<int Side, typename OtherDerived> | |
| void | solveInPlace (const MatrixBase< OtherDerived > &other) const |
| TriangularView< Transpose< MatrixType >, TransposeMode > | transpose () |
| const TriangularView< Transpose< MatrixType >, TransposeMode > | transpose () const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineinherited |
|
inlineinherited |
Referenced by IterativeSolverBase< BiCGSTAB >::analyzePattern(), MatrixBase< Derived >::applyOnTheLeft(), MatrixBase< Derived >::applyOnTheRight(), PermutationBase< PermutationMatrix >::applyTranspositionOnTheLeft(), PermutationBase< PermutationMatrix >::applyTranspositionOnTheRight(), SparseMatrixBase< SparseDenseOuterProduct >::bottomLeftCorner(), SparseMatrixBase< SparseDenseOuterProduct >::bottomRows(), cols(), SparseMatrixBase< SparseDenseOuterProduct >::cols(), IterativeSolverBase< BiCGSTAB >::compute(), SparseMatrixBase< SparseDenseOuterProduct >::eval(), IterativeSolverBase< BiCGSTAB >::factorize(), PermutationBase< PermutationMatrix >::indices(), PermutationBase< PermutationMatrix >::indices(), SparseMatrixBase< Derived >::innerVector(), SparseMatrixBase< Derived >::innerVector(), SparseMatrixBase< Derived >::innerVectors(), SparseMatrixBase< Derived >::innerVectors(), PermutationBase< PermutationMatrix >::inverse(), IterativeSolverBase< BiCGSTAB >::IterativeSolverBase(), SparseMatrixBase< SparseDenseOuterProduct >::nonZeros(), PermutationBase< PermutationMatrix >::operator*(), RotationBase< AngleAxis< _Scalar >, 3 >::operator*(), RotationBase< AngleAxis< _Scalar >, 3 >::operator*, SparseMatrixBase< Derived >::operator*(), SparseMatrixBase< SparseDenseOuterProduct >::operator*(), SparseMatrixBase< SparseDenseOuterProduct >::operator*(), SparseSelfAdjointView< MatrixType, UpLo >::operator*, SparseSelfAdjointView< MatrixType, UpLo >::operator*(), Transform< Scalar, Dim, Mode, Options >::operator*, Transform< Scalar, Dim, Mode, Options >::operator*(), Translation< _Scalar, _Dim >::operator*(), Translation< Scalar, Dim >::operator*, MatrixBase< Derived >::operator*=(), DenseBase< Derived >::operator=(), PermutationBase< PermutationMatrix >::operator=(), PermutationBase< PermutationMatrix >::operator=(), PlainObjectBase< Array >::operator=(), Transform< Scalar, Dim, Mode, Options >::operator=(), PlainObjectBase< Array >::PlainObjectBase(), PlainObjectBase< Array >::resizeLike(), rows(), SparseMatrixBase< SparseDenseOuterProduct >::rows(), CholmodBase< _MatrixType, _UpLo, CholmodSimplicialLLT >::solve(), IterativeSolverBase< BiCGSTAB >::solve(), SimplicialCholeskyBase< SimplicialLLT >::solve(), SparseLU< _MatrixType, Derived >::solve(), SuperLUBase< _MatrixType, SuperLU >::solve(), UmfPackLU< _MatrixType >::solve(), SparseMatrix< Scalar, RowMajor >::SparseMatrix(), SparseMatrix< Scalar, RowMajor >::SparseMatrix(), PermutationBase< PermutationMatrix >::toDenseMatrix(), SparseMatrixBase< SparseDenseOuterProduct >::topLeftCorner(), SparseMatrixBase< SparseDenseOuterProduct >::topLeftCorner(), Transform< Scalar, Dim, Mode, Options >::Transform(), PermutationBase< PermutationMatrix >::transpose(), and SparseMatrixBase< SparseDenseOuterProduct >::twistedBy().
|
inlineinherited |
|
inherited |
Assigns a triangular or selfadjoint matrix to a dense matrix. If the matrix is triangular, the opposite part is set to zero.
|
inherited |
Assigns a triangular or selfadjoint matrix to a dense matrix. If the matrix is triangular, the opposite part is set to zero.
|
inline |
|
inline |
Efficient triangular matrix times vector/matrix product
|
inline |
|
inline |
|
inline |
|
inline |
| TriangularView & operator= | ( | const TriangularBase< OtherDerived > & | other | ) |
Assigns a triangular matrix to a triangular part of a dense matrix
|
inline |
|
inline |
|
inline |
|
inlineinherited |
References cols(), and rows().
Referenced by PlainObjectBase< Array >::_resize_to_match().
| const internal::triangular_solve_retval< Side, TriangularView< Derived, Mode >, Other > solve | ( | const MatrixBase< Other > & | other | ) | const |
*this with other, *this being triangular.This function computes the inverse-matrix matrix product inverse(*this) * other if Side==OnTheLeft (the default), or the right-inverse-multiply other * inverse(*this) if Side==OnTheRight.
The matrix *this must be triangular and invertible (i.e., all the coefficients of the diagonal must be non zero). It works as a forward (resp. backward) substitution if *this is an upper (resp. lower) triangular matrix.
Example:
Output:
This function returns an expression of the inverse-multiply and can works in-place if it is assigned to the same matrix or vector other.
For users coming from BLAS, this function (and more specifically solveInPlace()) offer all the operations supported by the *TRSV and *TRSM BLAS routines.
| void solveInPlace | ( | const MatrixBase< OtherDerived > & | _other | ) | const |
"in-place" version of TriangularView::solve() where the result is written in other
See TriangularView:solve() for the details.
References Eigen::Lower, Eigen::OnTheLeft, Eigen::OnTheRight, Eigen::RowMajorBit, Eigen::Upper, and Eigen::ZeroDiag.
|
inline |
|
inline |