Public Types | Public Member Functions | Protected Attributes | Friends
SparseSelfAdjointView< MatrixType, UpLo > Class Template Reference

Pseudo expression to manipulate a triangular sparse matrix as a selfadjoint matrix. More...

#include <SparseSelfAdjointView.h>

+ Inheritance diagram for SparseSelfAdjointView< MatrixType, UpLo >:

List of all members.

Public Types

typedef internal::remove_all
< MatrixTypeNested >::type 
_MatrixTypeNested
typedef MatrixType::Index Index
typedef MatrixType::Nested MatrixTypeNested
typedef MatrixType::Scalar Scalar
typedef internal::traits
< SparseSelfAdjointView
< MatrixType, UpLo >
>::StorageKind 
StorageKind
typedef Matrix< Index, Dynamic, 1 > VectorI

Public Member Functions

void addTo (Dest &dst) const
void applyThisOnTheLeft (Dest &dst) const
void applyThisOnTheRight (Dest &dst) const
Index cols () const
SparseSelfAdjointView
< MatrixType, UpLo > & 
const_cast_derived () const
const SparseSelfAdjointView
< MatrixType, UpLo > & 
const_derived () const
SparseSelfAdjointView
< MatrixType, UpLo > & 
derived ()
const SparseSelfAdjointView
< MatrixType, UpLo > & 
derived () const
void evalTo (Dest &dst) const
template<typename DestScalar , int StorageOrder>
void evalTo (SparseMatrix< DestScalar, StorageOrder, Index > &_dest) const
template<typename DestScalar >
void evalTo (DynamicSparseMatrix< DestScalar, ColMajor, Index > &_dest) const
const _MatrixTypeNestedmatrix () const
_MatrixTypeNestedmatrix ()
template<typename OtherDerived >
SparseSelfAdjointTimeDenseProduct
< MatrixType, OtherDerived,
UpLo > 
operator* (const MatrixBase< OtherDerived > &rhs) const
template<typename SrcMatrixType , int SrcUpLo>
SparseSelfAdjointViewoperator= (const SparseSymmetricPermutationProduct< SrcMatrixType, SrcUpLo > &permutedMatrix)
SparseSelfAdjointViewoperator= (const SparseSelfAdjointView &src)
template<typename SrcMatrixType , unsigned int SrcUpLo>
SparseSelfAdjointViewoperator= (const SparseSelfAdjointView< SrcMatrixType, SrcUpLo > &src)
template<typename DerivedU >
SparseSelfAdjointViewrankUpdate (const SparseMatrixBase< DerivedU > &u, Scalar alpha=Scalar(1))
Index rows () const
Index size () const
 SparseSelfAdjointView (const MatrixType &matrix)
void subTo (Dest &dst) const
SparseSymmetricPermutationProduct
< _MatrixTypeNested, UpLo > 
twistedBy (const PermutationMatrix< Dynamic, Dynamic, Index > &perm) const

Protected Attributes

VectorI m_countPerCol
VectorI m_countPerRow
MatrixType::Nested m_matrix

Friends

template<typename OtherDerived >
DenseTimeSparseSelfAdjointProduct
< OtherDerived, MatrixType,
UpLo > 
operator* (const MatrixBase< OtherDerived > &lhs, const SparseSelfAdjointView &rhs)

Detailed Description

template<typename MatrixType, unsigned int UpLo>
class Eigen::SparseSelfAdjointView< MatrixType, UpLo >

Pseudo expression to manipulate a triangular sparse matrix as a selfadjoint matrix.

Parameters:
MatrixTypethe type of the dense matrix storing the coefficients
UpLocan be either Lower or Upper

This class is an expression of a sefladjoint matrix from a triangular part of a matrix with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView() and most of the time this is the only way that it is used.

See also:
SparseMatrixBase::selfadjointView()

Member Typedef Documentation

typedef internal::remove_all<MatrixTypeNested>::type _MatrixTypeNested
typedef MatrixType::Index Index
typedef MatrixType::Nested MatrixTypeNested
typedef MatrixType::Scalar Scalar
typedef internal::traits<SparseSelfAdjointView< MatrixType, UpLo > >::StorageKind StorageKind [inherited]

Constructor & Destructor Documentation

SparseSelfAdjointView ( const MatrixType &  matrix) [inline]

Member Function Documentation

void addTo ( Dest &  dst) const [inline, inherited]
void applyThisOnTheLeft ( Dest &  dst) const [inline, inherited]
void applyThisOnTheRight ( Dest &  dst) const [inline, inherited]
Index cols ( void  ) const [inline]
SparseSelfAdjointView< MatrixType, UpLo > & const_cast_derived ( ) const [inline, inherited]
const SparseSelfAdjointView< MatrixType, UpLo > & const_derived ( ) const [inline, inherited]
SparseSelfAdjointView< MatrixType, UpLo > & derived ( ) [inline, inherited]
Returns:
a reference to the derived object
const SparseSelfAdjointView< MatrixType, UpLo > & derived ( ) const [inline, inherited]
Returns:
a const reference to the derived object
void evalTo ( Dest &  dst) const [inline, inherited]
void evalTo ( SparseMatrix< DestScalar, StorageOrder, Index > &  _dest) const [inline]
void evalTo ( DynamicSparseMatrix< DestScalar, ColMajor, Index > &  _dest) const [inline]
const _MatrixTypeNested& matrix ( ) const [inline]
_MatrixTypeNested& matrix ( ) [inline]
SparseSelfAdjointTimeDenseProduct<MatrixType,OtherDerived,UpLo> operator* ( const MatrixBase< OtherDerived > &  rhs) const [inline]

Efficient sparse self-adjoint matrix times dense vector/matrix product

References SparseSelfAdjointView< MatrixType, UpLo >::m_matrix.

SparseSelfAdjointView& operator= ( const SparseSymmetricPermutationProduct< SrcMatrixType, SrcUpLo > &  permutedMatrix) [inline]
SparseSelfAdjointView& operator= ( const SparseSelfAdjointView< MatrixType, UpLo > &  src) [inline]
SparseSelfAdjointView& operator= ( const SparseSelfAdjointView< SrcMatrixType, SrcUpLo > &  src) [inline]
SparseSelfAdjointView< MatrixType, UpLo > & rankUpdate ( const SparseMatrixBase< DerivedU > &  u,
Scalar  alpha = Scalar(1) 
)

Perform a symmetric rank K update of the selfadjoint matrix *this: $ this = this + \alpha ( u u^* ) $ where u is a vector or matrix.

Returns:
a reference to *this

To perform $ this = this + \alpha ( u^* u ) $ you can simply call this function with u.adjoint().

References SparseMatrixBase< Derived >::adjoint(), and EigenBase< SparseMatrix< _Scalar, _Options, _Index > >::const_cast_derived().

Index rows ( void  ) const [inline]
Index size ( ) const [inline, inherited]
Returns:
the number of coefficients, which is rows()*cols().
See also:
rows(), cols(), SizeAtCompileTime.
void subTo ( Dest &  dst) const [inline, inherited]

Friends And Related Function Documentation

DenseTimeSparseSelfAdjointProduct<OtherDerived,MatrixType,UpLo> operator* ( const MatrixBase< OtherDerived > &  lhs,
const SparseSelfAdjointView< MatrixType, UpLo > &  rhs 
) [friend]

Efficient dense vector/matrix times sparse self-adjoint matrix product


Member Data Documentation

VectorI m_countPerCol [mutable, protected]
VectorI m_countPerRow [mutable, protected]
MatrixType::Nested m_matrix [protected]

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