Public Member Functions | Friends

TriangularView< _MatrixType, _Mode > Class Template Reference

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

Inherits Eigen::TriangularBase< TriangularView< _MatrixType, _Mode > >.

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
const TriangularView
< Transpose< MatrixType >
, TransposeMode > 
transpose () const
TriangularView< Transpose
< MatrixType >, TransposeMode > 
transpose ()

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: