Public Types | Public Member Functions | Protected Attributes | Private Member Functions | Friends | List of all members
Eigen::SparseSelfAdjointView< MatrixType, _Mode > Class Template Reference

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

#include <SparseSelfAdjointView.h>

Inheritance diagram for Eigen::SparseSelfAdjointView< MatrixType, _Mode >:
Inheritance graph
[legend]

Public Types

enum  { Mode = _Mode, TransposeMode = ((Mode & Upper) ? Lower : 0) | ((Mode & Lower) ? Upper : 0), RowsAtCompileTime = internal::traits<SparseSelfAdjointView>::RowsAtCompileTime, ColsAtCompileTime = internal::traits<SparseSelfAdjointView>::ColsAtCompileTime }
 
typedef internal::remove_all< MatrixTypeNested >::type _MatrixTypeNested
 
typedef EigenBase< SparseSelfAdjointViewBase
 
typedef internal::ref_selector< MatrixType >::non_const_type MatrixTypeNested
 
typedef MatrixType::Scalar Scalar
 
typedef MatrixType::StorageIndex StorageIndex
 
typedef Matrix< StorageIndex, Dynamic, 1 > VectorI
 
- Public Types inherited from Eigen::EigenBase< SparseSelfAdjointView< MatrixType, _Mode > >
typedef Eigen::Index Index
 The interface type of indices. More...
 
typedef internal::traits< SparseSelfAdjointView< MatrixType, _Mode > >::StorageKind StorageKind
 

Public Member Functions

Index cols () const
 
const _MatrixTypeNestedmatrix () const
 
internal::remove_reference< MatrixTypeNested >::type & matrix ()
 
template<typename OtherDerived >
Product< SparseSelfAdjointView, OtherDerived > operator* (const SparseMatrixBase< OtherDerived > &rhs) const
 
template<typename OtherDerived >
Product< SparseSelfAdjointView, OtherDerived > operator* (const MatrixBase< OtherDerived > &rhs) const
 
template<typename SrcMatrixType , int SrcMode>
SparseSelfAdjointViewoperator= (const SparseSymmetricPermutationProduct< SrcMatrixType, SrcMode > &permutedMatrix)
 
SparseSelfAdjointViewoperator= (const SparseSelfAdjointView &src)
 
template<typename SrcMatrixType , unsigned int SrcMode>
SparseSelfAdjointViewoperator= (const SparseSelfAdjointView< SrcMatrixType, SrcMode > &src)
 
template<typename DerivedU >
SparseSelfAdjointViewrankUpdate (const SparseMatrixBase< DerivedU > &u, const Scalar &alpha=Scalar(1))
 
template<typename DerivedU >
SparseSelfAdjointView< MatrixType, Mode > & rankUpdate (const SparseMatrixBase< DerivedU > &u, const Scalar &alpha)
 
void resize (Index rows, Index cols)
 
Index rows () const
 
 SparseSelfAdjointView (MatrixType &matrix)
 
SparseSymmetricPermutationProduct< _MatrixTypeNested, ModetwistedBy (const PermutationMatrix< Dynamic, Dynamic, StorageIndex > &perm) const
 
- Public Member Functions inherited from Eigen::EigenBase< SparseSelfAdjointView< MatrixType, _Mode > >
EIGEN_DEVICE_FUNC void addTo (Dest &dst) const
 
EIGEN_DEVICE_FUNC void applyThisOnTheLeft (Dest &dst) const
 
EIGEN_DEVICE_FUNC void applyThisOnTheRight (Dest &dst) const
 
EIGEN_DEVICE_FUNC Index cols () const
 
EIGEN_DEVICE_FUNC SparseSelfAdjointView< MatrixType, _Mode > & const_cast_derived () const
 
EIGEN_DEVICE_FUNC const SparseSelfAdjointView< MatrixType, _Mode > & const_derived () const
 
EIGEN_DEVICE_FUNC SparseSelfAdjointView< MatrixType, _Mode > & derived ()
 
EIGEN_DEVICE_FUNC const SparseSelfAdjointView< MatrixType, _Mode > & derived () const
 
EIGEN_DEVICE_FUNC void evalTo (Dest &dst) const
 
EIGEN_DEVICE_FUNC Index rows () const
 
EIGEN_DEVICE_FUNC Index size () const
 
EIGEN_DEVICE_FUNC void subTo (Dest &dst) const
 

Protected Attributes

MatrixTypeNested m_matrix
 

Private Member Functions

template<typename Dest >
void evalTo (Dest &) const
 

Friends

template<typename OtherDerived >
Product< OtherDerived, SparseSelfAdjointViewoperator* (const SparseMatrixBase< OtherDerived > &lhs, const SparseSelfAdjointView &rhs)
 
template<typename OtherDerived >
Product< OtherDerived, SparseSelfAdjointViewoperator* (const MatrixBase< OtherDerived > &lhs, const SparseSelfAdjointView &rhs)
 

Detailed Description

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

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

Parameters
MatrixTypethe type of the dense matrix storing the coefficients
Modecan 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()

Definition at line 43 of file SparseSelfAdjointView.h.

Member Typedef Documentation

template<typename MatrixType, unsigned int _Mode>
typedef internal::remove_all<MatrixTypeNested>::type Eigen::SparseSelfAdjointView< MatrixType, _Mode >::_MatrixTypeNested

Definition at line 60 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
typedef EigenBase<SparseSelfAdjointView> Eigen::SparseSelfAdjointView< MatrixType, _Mode >::Base

Definition at line 55 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
typedef internal::ref_selector<MatrixType>::non_const_type Eigen::SparseSelfAdjointView< MatrixType, _Mode >::MatrixTypeNested

Definition at line 59 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
typedef MatrixType::Scalar Eigen::SparseSelfAdjointView< MatrixType, _Mode >::Scalar

Definition at line 56 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
typedef MatrixType::StorageIndex Eigen::SparseSelfAdjointView< MatrixType, _Mode >::StorageIndex

Definition at line 57 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
typedef Matrix<StorageIndex,Dynamic,1> Eigen::SparseSelfAdjointView< MatrixType, _Mode >::VectorI

Definition at line 58 of file SparseSelfAdjointView.h.

Member Enumeration Documentation

template<typename MatrixType, unsigned int _Mode>
anonymous enum
Enumerator
Mode 
TransposeMode 
RowsAtCompileTime 
ColsAtCompileTime 

Definition at line 48 of file SparseSelfAdjointView.h.

Constructor & Destructor Documentation

template<typename MatrixType, unsigned int _Mode>
Eigen::SparseSelfAdjointView< MatrixType, _Mode >::SparseSelfAdjointView ( MatrixType &  matrix)
inlineexplicit

Definition at line 62 of file SparseSelfAdjointView.h.

Member Function Documentation

template<typename MatrixType, unsigned int _Mode>
Index Eigen::SparseSelfAdjointView< MatrixType, _Mode >::cols ( void  ) const
inline

Definition at line 68 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
template<typename Dest >
void Eigen::SparseSelfAdjointView< MatrixType, _Mode >::evalTo ( Dest &  ) const
private
template<typename MatrixType, unsigned int _Mode>
const _MatrixTypeNested& Eigen::SparseSelfAdjointView< MatrixType, _Mode >::matrix ( ) const
inline

Definition at line 71 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
internal::remove_reference<MatrixTypeNested>::type& Eigen::SparseSelfAdjointView< MatrixType, _Mode >::matrix ( )
inline

Definition at line 72 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
template<typename OtherDerived >
Product<SparseSelfAdjointView, OtherDerived> Eigen::SparseSelfAdjointView< MatrixType, _Mode >::operator* ( const SparseMatrixBase< OtherDerived > &  rhs) const
inline
Returns
an expression of the matrix product between a sparse self-adjoint matrix *this and a sparse matrix rhs.

Note that there is no algorithmic advantage of performing such a product compared to a general sparse-sparse matrix product. Indeed, the SparseSelfadjointView operand is first copied into a temporary SparseMatrix before computing the product.

Definition at line 81 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
template<typename OtherDerived >
Product<SparseSelfAdjointView,OtherDerived> Eigen::SparseSelfAdjointView< MatrixType, _Mode >::operator* ( const MatrixBase< OtherDerived > &  rhs) const
inline

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

Definition at line 101 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
template<typename SrcMatrixType , int SrcMode>
SparseSelfAdjointView& Eigen::SparseSelfAdjointView< MatrixType, _Mode >::operator= ( const SparseSymmetricPermutationProduct< SrcMatrixType, SrcMode > &  permutedMatrix)
inline

Definition at line 133 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
SparseSelfAdjointView& Eigen::SparseSelfAdjointView< MatrixType, _Mode >::operator= ( const SparseSelfAdjointView< MatrixType, _Mode > &  src)
inline

Definition at line 139 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
template<typename SrcMatrixType , unsigned int SrcMode>
SparseSelfAdjointView& Eigen::SparseSelfAdjointView< MatrixType, _Mode >::operator= ( const SparseSelfAdjointView< SrcMatrixType, SrcMode > &  src)
inline

Definition at line 146 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
template<typename DerivedU >
SparseSelfAdjointView& Eigen::SparseSelfAdjointView< MatrixType, _Mode >::rankUpdate ( const SparseMatrixBase< DerivedU > &  u,
const 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().

template<typename MatrixType, unsigned int _Mode>
template<typename DerivedU >
SparseSelfAdjointView<MatrixType,Mode>& Eigen::SparseSelfAdjointView< MatrixType, _Mode >::rankUpdate ( const SparseMatrixBase< DerivedU > &  u,
const Scalar alpha 
)

Definition at line 194 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
void Eigen::SparseSelfAdjointView< MatrixType, _Mode >::resize ( Index  rows,
Index  cols 
)
inline

Definition at line 152 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
Index Eigen::SparseSelfAdjointView< MatrixType, _Mode >::rows ( void  ) const
inline

Definition at line 67 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
SparseSymmetricPermutationProduct<_MatrixTypeNested,Mode> Eigen::SparseSelfAdjointView< MatrixType, _Mode >::twistedBy ( const PermutationMatrix< Dynamic, Dynamic, StorageIndex > &  perm) const
inline
Returns
an expression of P H P^-1

Definition at line 127 of file SparseSelfAdjointView.h.

Friends And Related Function Documentation

template<typename MatrixType, unsigned int _Mode>
template<typename OtherDerived >
Product<OtherDerived, SparseSelfAdjointView> operator* ( const SparseMatrixBase< OtherDerived > &  lhs,
const SparseSelfAdjointView< MatrixType, _Mode > &  rhs 
)
friend
Returns
an expression of the matrix product between a sparse matrix lhs and a sparse self-adjoint matrix rhs.

Note that there is no algorithmic advantage of performing such a product compared to a general sparse-sparse matrix product. Indeed, the SparseSelfadjointView operand is first copied into a temporary SparseMatrix before computing the product.

Definition at line 93 of file SparseSelfAdjointView.h.

template<typename MatrixType, unsigned int _Mode>
template<typename OtherDerived >
Product<OtherDerived,SparseSelfAdjointView> operator* ( const MatrixBase< OtherDerived > &  lhs,
const SparseSelfAdjointView< MatrixType, _Mode > &  rhs 
)
friend

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

Definition at line 109 of file SparseSelfAdjointView.h.

Member Data Documentation

template<typename MatrixType, unsigned int _Mode>
MatrixTypeNested Eigen::SparseSelfAdjointView< MatrixType, _Mode >::m_matrix
protected

Definition at line 162 of file SparseSelfAdjointView.h.


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


hebiros
Author(s): Xavier Artache , Matthew Tesch
autogenerated on Thu Sep 3 2020 04:10:21