WPILibC++ 2023.4.3-108-ge5452e3
|
Pseudo expression to manipulate a triangular sparse matrix as a selfadjoint matrix. More...
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 EigenBase< SparseSelfAdjointView > | Base |
typedef MatrixType::Scalar | Scalar |
typedef MatrixType::StorageIndex | StorageIndex |
typedef Matrix< StorageIndex, Dynamic, 1 > | VectorI |
typedef internal::ref_selector< MatrixType >::non_const_type | MatrixTypeNested |
typedef internal::remove_all< MatrixTypeNested >::type | _MatrixTypeNested |
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 | |
SparseSelfAdjointView (MatrixType &matrix) | |
Index | rows () const |
Index | cols () const |
const _MatrixTypeNested & | matrix () 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 |
Efficient sparse self-adjoint matrix times dense vector/matrix product. More... | |
template<typename DerivedU > | |
SparseSelfAdjointView & | 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. More... | |
SparseSymmetricPermutationProduct< _MatrixTypeNested, Mode > | twistedBy (const PermutationMatrix< Dynamic, Dynamic, StorageIndex > &perm) const |
template<typename SrcMatrixType , int SrcMode> | |
SparseSelfAdjointView & | operator= (const SparseSymmetricPermutationProduct< SrcMatrixType, SrcMode > &permutedMatrix) |
SparseSelfAdjointView & | operator= (const SparseSelfAdjointView &src) |
template<typename SrcMatrixType , unsigned int SrcMode> | |
SparseSelfAdjointView & | operator= (const SparseSelfAdjointView< SrcMatrixType, SrcMode > &src) |
void | resize (Index rows, Index cols) |
template<typename DerivedU > | |
SparseSelfAdjointView< MatrixType, Mode > & | rankUpdate (const SparseMatrixBase< DerivedU > &u, const Scalar &alpha) |
Public Member Functions inherited from Eigen::EigenBase< SparseSelfAdjointView< MatrixType, _Mode > > | |
EIGEN_DEVICE_FUNC SparseSelfAdjointView< MatrixType, _Mode > & | derived () |
EIGEN_DEVICE_FUNC const SparseSelfAdjointView< MatrixType, _Mode > & | derived () const |
EIGEN_DEVICE_FUNC SparseSelfAdjointView< MatrixType, _Mode > & | const_cast_derived () const |
EIGEN_DEVICE_FUNC const SparseSelfAdjointView< MatrixType, _Mode > & | const_derived () const |
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index | rows () const EIGEN_NOEXCEPT |
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index | cols () const EIGEN_NOEXCEPT |
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index | size () const EIGEN_NOEXCEPT |
EIGEN_DEVICE_FUNC void | evalTo (Dest &dst) const |
EIGEN_DEVICE_FUNC void | addTo (Dest &dst) const |
EIGEN_DEVICE_FUNC void | subTo (Dest &dst) const |
EIGEN_DEVICE_FUNC void | applyThisOnTheRight (Dest &dst) const |
EIGEN_DEVICE_FUNC void | applyThisOnTheLeft (Dest &dst) const |
Protected Attributes | |
MatrixTypeNested | m_matrix |
Friends | |
template<typename OtherDerived > | |
Product< OtherDerived, SparseSelfAdjointView > | operator* (const SparseMatrixBase< OtherDerived > &lhs, const SparseSelfAdjointView &rhs) |
template<typename OtherDerived > | |
Product< OtherDerived, SparseSelfAdjointView > | operator* (const MatrixBase< OtherDerived > &lhs, const SparseSelfAdjointView &rhs) |
Efficient dense vector/matrix times sparse self-adjoint matrix product. More... | |
Pseudo expression to manipulate a triangular sparse matrix as a selfadjoint matrix.
MatrixType | the type of the dense matrix storing the coefficients |
Mode | can 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.
typedef internal::remove_all<MatrixTypeNested>::type Eigen::SparseSelfAdjointView< MatrixType, _Mode >::_MatrixTypeNested |
typedef EigenBase<SparseSelfAdjointView> Eigen::SparseSelfAdjointView< MatrixType, _Mode >::Base |
typedef internal::ref_selector<MatrixType>::non_const_type Eigen::SparseSelfAdjointView< MatrixType, _Mode >::MatrixTypeNested |
typedef MatrixType::Scalar Eigen::SparseSelfAdjointView< MatrixType, _Mode >::Scalar |
typedef MatrixType::StorageIndex Eigen::SparseSelfAdjointView< MatrixType, _Mode >::StorageIndex |
typedef Matrix<StorageIndex,Dynamic,1> Eigen::SparseSelfAdjointView< MatrixType, _Mode >::VectorI |
anonymous enum |
|
inlineexplicit |
|
inline |
|
inline |
|
inline |
|
inline |
Efficient sparse self-adjoint matrix times dense vector/matrix product.
|
inline |
*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.
|
inline |
|
inline |
|
inline |
SparseSelfAdjointView< MatrixType, Mode > & Eigen::SparseSelfAdjointView< MatrixType, _Mode >::rankUpdate | ( | const SparseMatrixBase< DerivedU > & | u, |
const Scalar & | alpha | ||
) |
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.
*this
To perform \( this = this + \alpha ( u^* u ) \) you can simply call this function with u.adjoint().
|
inline |
|
inline |
|
inline |
|
friend |
Efficient dense vector/matrix times sparse self-adjoint matrix product.
|
friend |
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.
|
protected |