Public Member Functions | Friends
TriangularView< _MatrixType, _Mode > Class Template Reference

Base class for triangular part in a matrix. More...

Inherits TriangularBase< Derived >.

List of all members.

Public Member Functions

TriangularView< typename
MatrixType::AdjointReturnType,
TransposeMode > 
adjoint ()
const TriangularView< typename
MatrixType::AdjointReturnType,
TransposeMode > 
adjoint () const
Scalar coeff (Index row, Index col) const
Scalar & coeffRef (Index row, Index col)
Index cols () const
TriangularView
< MatrixConjugateReturnType,
Mode > 
conjugate ()
const TriangularView
< MatrixConjugateReturnType,
Mode > 
conjugate () const
void fill (const Scalar &value)
template<typename OtherDerived >
TriangularProduct< Mode, true,
MatrixType, false,
OtherDerived,
OtherDerived::IsVectorAtCompileTime > 
operator* (const MatrixBase< OtherDerived > &rhs) const
TriangularViewoperator*= (const typename internal::traits< MatrixType >::Scalar &other)
template<typename Other >
TriangularViewoperator+= (const DenseBase< Other > &other)
template<typename Other >
TriangularViewoperator-= (const DenseBase< Other > &other)
TriangularViewoperator/= (const typename internal::traits< MatrixType >::Scalar &other)
template<typename OtherDerived >
TriangularViewoperator= (const TriangularBase< OtherDerived > &other)
Index rows () const
TriangularViewsetConstant (const Scalar &value)
TriangularViewsetOnes ()
TriangularViewsetZero ()
template<int Side, typename Other >
const
internal::triangular_solve_retval
< Side, TriangularView, 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
- Public Member Functions inherited from TriangularBase< Derived >
template<typename Other >
void copyCoeff (Index row, Index col, Other &other)
template<typename DenseDerived >
void evalTo (MatrixBase< DenseDerived > &other) const
template<typename DenseDerived >
void evalToLazy (MatrixBase< DenseDerived > &other) const
- Public Member Functions inherited from EigenBase< Derived >
Derived & derived ()
const Derived & derived () const
Index size () const

Friends

template<typename OtherDerived >
TriangularProduct< Mode, false,
OtherDerived,
OtherDerived::IsVectorAtCompileTime,
MatrixType, false > 
operator* (const MatrixBase< OtherDerived > &lhs, const TriangularView &rhs)

Detailed Description

template<typename _MatrixType, unsigned int _Mode>
class Eigen::TriangularView< _MatrixType, _Mode >

Base class for triangular part in a matrix.

Parameters:
MatrixTypethe type of the object in which we are taking the triangular part
Modethe 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.

See also:
MatrixBase::triangularView()

Member Function Documentation

TriangularView<typename MatrixType::AdjointReturnType,TransposeMode> adjoint ( )
inline
const TriangularView<typename MatrixType::AdjointReturnType,TransposeMode> adjoint ( ) const
inline
Scalar coeff ( Index  row,
Index  col 
) const
inline
See also:
MatrixBase::coeff()
Warning:
the coordinates must fit into the referenced triangular part
Scalar& coeffRef ( Index  row,
Index  col 
)
inline
See also:
MatrixBase::coeffRef()
Warning:
the coordinates must fit into the referenced triangular part
Index cols ( void  ) const
inline
Returns:
the number of columns.
See also:
rows(), ColsAtCompileTime

Reimplemented from EigenBase< Derived >.

TriangularView<MatrixConjugateReturnType,Mode> conjugate ( )
inline
const TriangularView<MatrixConjugateReturnType,Mode> conjugate ( ) const
inline
void fill ( const Scalar &  value)
inline
TriangularProduct<Mode,true,MatrixType,false,OtherDerived,OtherDerived::IsVectorAtCompileTime> operator* ( const MatrixBase< OtherDerived > &  rhs) const
inline

Efficient triangular matrix times vector/matrix product

TriangularView& operator*= ( const typename internal::traits< MatrixType >::Scalar &  other)
inline
TriangularView& operator+= ( const DenseBase< Other > &  other)
inline
TriangularView& operator-= ( const DenseBase< Other > &  other)
inline
TriangularView& operator/= ( const typename internal::traits< MatrixType >::Scalar &  other)
inline
See also:
MatrixBase::operator/=()
TriangularView< MatrixType, Mode > & operator= ( const TriangularBase< OtherDerived > &  other)
inline

Assigns a triangular matrix to a triangular part of a dense matrix

Index rows ( void  ) const
inline
Returns:
the number of rows.
See also:
cols(), RowsAtCompileTime

Reimplemented from EigenBase< Derived >.

TriangularView& setConstant ( const Scalar &  value)
inline
TriangularView& setOnes ( )
inline
TriangularView& setZero ( )
inline
const internal::triangular_solve_retval< Side, TriangularView< Derived, Mode >, Other > solve ( const MatrixBase< Other > &  other) const
inline
Returns:
the product of the inverse of *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:

#ifndef _MSC_VER
#warning deprecated
#endif
/*
Matrix3d m = Matrix3d::Zero();
m.part<Eigen::UpperTriangular>().setOnes();
cout << "Here is the matrix m:" << endl << m << endl;
Matrix3d n = Matrix3d::Ones();
n.part<Eigen::LowerTriangular>() *= 2;
cout << "Here is the matrix n:" << endl << n << endl;
cout << "And now here is m.inverse()*n, taking advantage of the fact that"
" m is upper-triangular:" << endl
<< m.marked<Eigen::UpperTriangular>().solveTriangular(n);
*/

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.

See also:
TriangularView::solveInPlace()
void solveInPlace ( const MatrixBase< OtherDerived > &  _other) const

"in-place" version of TriangularView::solve() where the result is written in other

Warning:
The parameter is only marked 'const' to make the C++ compiler accept a temporary expression here. This function will const_cast it, so constness isn't honored here.

See TriangularView:solve() for the details.

TriangularView<Transpose<MatrixType>,TransposeMode> transpose ( )
inline
const TriangularView<Transpose<MatrixType>,TransposeMode> transpose ( ) const
inline

Friends And Related Function Documentation

TriangularProduct<Mode,false,OtherDerived,OtherDerived::IsVectorAtCompileTime,MatrixType,false> operator* ( const MatrixBase< OtherDerived > &  lhs,
const TriangularView< _MatrixType, _Mode > &  rhs 
)
friend

Efficient vector/matrix times triangular matrix product


The documentation for this class was generated from the following files: