template<typename MatrixType, unsigned int _Mode>
SparseSelfAdjointView class
Pseudo expression to manipulate a triangular sparse matrix as a selfadjoint matrix.
Contents
- Reference
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.
Base classes
-
template<typename Derived>class EigenBase
Public functions
-
template<typename OtherDerived>auto operator*(const SparseMatrixBase<OtherDerived>& rhs) const -> Product<SparseSelfAdjointView, OtherDerived>
-
template<typename OtherDerived>auto operator*(const MatrixBase<OtherDerived>& rhs) const -> Product<SparseSelfAdjointView, OtherDerived>
-
template<typename DerivedU>auto rankUpdate(const SparseMatrixBase<DerivedU>& u, const Scalar& alpha = Scalar(1)) -> SparseSelfAdjointView&
- auto twistedBy(const PermutationMatrix<Dynamic, Dynamic, StorageIndex>& perm) const -> SparseSymmetricPermutationProduct<_MatrixTypeNested, Mode>
Friends
-
template<typename OtherDerived>auto operator*(const SparseMatrixBase<OtherDerived>& lhs, const SparseSelfAdjointView& rhs) -> Product<OtherDerived, SparseSelfAdjointView>
-
template<typename OtherDerived>auto operator*(const MatrixBase<OtherDerived>& lhs, const SparseSelfAdjointView& rhs) -> Product<OtherDerived, SparseSelfAdjointView>
Function documentation
template<typename MatrixType, unsigned int _Mode>
template<typename OtherDerived>
Product<SparseSelfAdjointView, OtherDerived> Eigen:: SparseSelfAdjointView<MatrixType, _Mode>:: operator*(const SparseMatrixBase<OtherDerived>& rhs) const
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.
template<typename MatrixType, unsigned int _Mode>
template<typename OtherDerived>
Product<SparseSelfAdjointView, OtherDerived> Eigen:: SparseSelfAdjointView<MatrixType, _Mode>:: operator*(const MatrixBase<OtherDerived>& rhs) const
Efficient sparse self-adjoint matrix times dense vector/matrix product
template<typename MatrixType, unsigned int _Mode>
template<typename DerivedU>
SparseSelfAdjointView& Eigen:: SparseSelfAdjointView<MatrixType, _Mode>:: rankUpdate(const SparseMatrixBase<DerivedU>& u,
const Scalar& alpha = Scalar(1))
Returns | a reference to *this |
---|
Perform a symmetric rank K update of the selfadjoint matrix *this
: where u is a vector or matrix.
To perform you can simply call this function with u.adjoint().
template<typename MatrixType, unsigned int _Mode>
SparseSymmetricPermutationProduct<_MatrixTypeNested, Mode> Eigen:: SparseSelfAdjointView<MatrixType, _Mode>:: twistedBy(const PermutationMatrix<Dynamic, Dynamic, StorageIndex>& perm) const
Returns | an expression of P H P^-1 |
---|
template<typename MatrixType, unsigned int _Mode>
template<typename OtherDerived>
Product<OtherDerived, SparseSelfAdjointView> operator*(const SparseMatrixBase<OtherDerived>& lhs,
const SparseSelfAdjointView& rhs)
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.
template<typename MatrixType, unsigned int _Mode>
template<typename OtherDerived>
Product<OtherDerived, SparseSelfAdjointView> operator*(const MatrixBase<OtherDerived>& lhs,
const SparseSelfAdjointView& rhs)
Efficient dense vector/matrix times sparse self-adjoint matrix product