template<typename Scalar_, int Options_, typename StorageIndex_>
class Eigen::SparseMatrix< Scalar_, Options_, StorageIndex_ >
A versatible sparse matrix representation.
This class implements a more versatile variants of the common compressed row/column storage format. Each colmun's (resp. row) non zeros are stored as a pair of value with associated row (resp. colmiun) index. All the non zeros are stored in a single large buffer. Unlike the compressed format, there might be extra space in between the nonzeros of two successive colmuns (resp. rows) such that insertion of new non-zero can be done with limited memory reallocation and copies.
A call to the function makeCompressed() turns the matrix into the standard compressed format compatible with many library.
More details on this storage sceheme are given in the manual pages.
- Template Parameters
-
| Scalar_ | the scalar type, i.e. the type of the coefficients |
| Options_ | Union of bit flags controlling the storage scheme. Currently the only possibility is ColMajor or RowMajor. The default is 0 which means column-major. |
| StorageIndex_ | the type of the indices. It has to be a signed type (e.g., short, int, std::ptrdiff_t). Default is int. |
- Warning
- In Eigen 3.2, the undocumented type
SparseMatrix::Index was improperly defined as the storage index type (e.g., int), whereas it is now (starting from Eigen 3.3) deprecated and always defined as Eigen::Index. Codes making use of SparseMatrix::Index, might thus likely have to be changed to use SparseMatrix::StorageIndex instead.
This class can be extended with the help of the plugin mechanism described on the page Extending MatrixBase (and other classes) by defining the preprocessor symbol EIGEN_SPARSEMATRIX_PLUGIN.
|
| Scalar | coeff (Index row, Index col) const |
| Scalar & | coeffRef (Index row, Index col) |
| Index | cols () const |
| void | conservativeResize (Index rows, Index cols) |
| DiagonalReturnType | diagonal () |
| const ConstDiagonalReturnType | diagonal () const |
| Scalar & | findOrInsertCoeff (Index row, Index col, bool *inserted) |
| StorageIndex * | innerIndexPtr () |
| const StorageIndex * | innerIndexPtr () const |
| StorageIndex * | innerNonZeroPtr () |
| const StorageIndex * | innerNonZeroPtr () const |
| Index | innerSize () const |
| Scalar & | insert (Index row, Index col) |
| template<typename InputIterators> |
| void | insertFromSortedTriplets (const InputIterators &begin, const InputIterators &end) |
| template<typename InputIterators, typename DupFunctor> |
| void | insertFromSortedTriplets (const InputIterators &begin, const InputIterators &end, DupFunctor dup_func) |
| template<typename InputIterators> |
| void | insertFromTriplets (const InputIterators &begin, const InputIterators &end) |
| template<typename InputIterators, typename DupFunctor> |
| void | insertFromTriplets (const InputIterators &begin, const InputIterators &end, DupFunctor dup_func) |
| bool | isCompressed () const |
| void | makeCompressed () |
| Index | nonZeros () const |
| StorageIndex * | outerIndexPtr () |
| const StorageIndex * | outerIndexPtr () const |
| Index | outerSize () const |
| template<typename KeepFunc> |
| void | prune (const KeepFunc &keep=KeepFunc()) |
| void | prune (const Scalar &reference, const RealScalar &epsilon=NumTraits< RealScalar >::dummy_precision()) |
| template<class SizesType> |
| void | reserve (const SizesType &reserveSizes) |
| void | reserve (Index reserveSize) |
| void | resize (Index rows, Index cols) |
| Index | rows () const |
| template<typename InputIterators> |
| void | setFromSortedTriplets (const InputIterators &begin, const InputIterators &end) |
| template<typename InputIterators, typename DupFunctor> |
| void | setFromSortedTriplets (const InputIterators &begin, const InputIterators &end, DupFunctor dup_func) |
| template<typename InputIterators> |
| void | setFromTriplets (const InputIterators &begin, const InputIterators &end) |
| template<typename InputIterators, typename DupFunctor> |
| void | setFromTriplets (const InputIterators &begin, const InputIterators &end, DupFunctor dup_func) |
| void | setIdentity () |
| void | setZero () |
| | SparseMatrix () |
|
template<typename OtherDerived> |
| | SparseMatrix (const DiagonalBase< OtherDerived > &other) |
| | Copy constructor with in-place evaluation.
|
|
template<typename OtherDerived> |
| | SparseMatrix (const ReturnByValue< OtherDerived > &other) |
| | Copy constructor with in-place evaluation.
|
| | SparseMatrix (const SparseMatrix &other) |
| template<typename OtherDerived> |
| | SparseMatrix (const SparseMatrixBase< OtherDerived > &other) |
| template<typename OtherDerived, unsigned int UpLo> |
| | SparseMatrix (const SparseSelfAdjointView< OtherDerived, UpLo > &other) |
| | SparseMatrix (Index rows, Index cols) |
| | SparseMatrix (SparseMatrix &&other) |
| Scalar | sum () const |
| void | swap (SparseMatrix &other) |
| void | uncompress () |
| Scalar * | valuePtr () |
| const Scalar * | valuePtr () const |
| | ~SparseMatrix () |
| const Map< const Array< Scalar, Dynamic, 1 > > | coeffs () const |
| const StorageIndex * | innerIndexPtr () const |
| Index | innerIndicesAreSorted (Index begin, Index end) const |
| const StorageIndex * | innerNonZeroPtr () const |
| bool | isCompressed () const |
| Index | nonZeros () const |
| const StorageIndex * | outerIndexPtr () const |
| void | sortInnerIndices (Index begin, Index end) |
| const Scalar * | valuePtr () const |
| const CwiseBinaryOp< CustomBinaryOp, const SparseMatrix< Scalar_, Options_, StorageIndex_ >, const OtherDerived > | binaryExpr (const Eigen::SparseMatrixBase< OtherDerived > &other, const CustomBinaryOp &func=CustomBinaryOp()) const |
| FixedBlockXpr<...,... >::Type | block (Index startRow, Index startCol, NRowsType blockRows, NColsType blockCols) |
| FixedBlockXpr<...,... >::Type | bottomLeftCorner (NRowsType cRows, NColsType cCols) |
| FixedBlockXpr<...,... >::Type | bottomRightCorner (NRowsType cRows, NColsType cCols) |
| NRowsBlockXpr<... >::Type | bottomRows (NRowsType n) |
| CastXpr< NewType >::Type | cast () const |
| ColXpr | col (Index i) |
| Index | cols () const |
| ConjugateReturnType | conjugate () const |
| std::conditional_t< Cond, ConjugateReturnType, const SparseMatrix< Scalar_, Options_, StorageIndex_ > & > | conjugateIf () const |
| const CwiseAbsReturnType | cwiseAbs () const |
| const CwiseAbs2ReturnType | cwiseAbs2 () const |
| const CwiseArgReturnType | cwiseArg () const |
| const CwiseCbrtReturnType | cwiseCbrt () const |
| const CwiseBinaryEqualReturnType< OtherDerived > | cwiseEqual (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
| const CwiseBinaryGreaterReturnType< OtherDerived > | cwiseGreater (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
| const CwiseBinaryGreaterOrEqualReturnType< OtherDerived > | cwiseGreaterOrEqual (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
| const CwiseInverseReturnType | cwiseInverse () const |
| const CwiseBinaryLessReturnType< OtherDerived > | cwiseLess (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
| const CwiseBinaryLessOrEqualReturnType< OtherDerived > | cwiseLessOrEqual (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
| const CwiseBinaryOp< internal::scalar_max_op< Scalar, Scalar, NaNPropagation >, const SparseMatrix< Scalar_, Options_, StorageIndex_ >, const OtherDerived > | cwiseMax (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
| const CwiseBinaryOp< internal::scalar_min_op< Scalar, Scalar, NaNPropagation >, const SparseMatrix< Scalar_, Options_, StorageIndex_ >, const OtherDerived > | cwiseMin (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
| const CwiseBinaryNotEqualReturnType< OtherDerived > | cwiseNotEqual (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
| const CwiseBinaryOp< internal::scalar_quotient_op< Scalar >, const SparseMatrix< Scalar_, Options_, StorageIndex_ >, const OtherDerived > | cwiseQuotient (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
| const CwiseSignReturnType | cwiseSign () const |
| const CwiseSqrtReturnType | cwiseSqrt () const |
| const CwiseSquareReturnType | cwiseSquare () const |
| const internal::eval< SparseMatrix< Scalar_, Options_, StorageIndex_ > >::type | eval () const |
| FixedSegmentReturnType<... >::Type | head (NType n) |
| const ImagReturnType | imag () const |
| Index | innerSize () const |
| InnerVectorReturnType | innerVector (Index outer) |
| InnerVectorsReturnType | innerVectors (Index outerStart, Index outerSize) |
| bool | isVector () const |
| NColsBlockXpr<... >::Type | leftCols (NColsType n) |
| NColsBlockXpr<... >::Type | middleCols (Index startCol, NColsType numCols) |
| NRowsBlockXpr<... >::Type | middleRows (Index startRow, NRowsType n) |
| const CwiseBinaryOp< internal::scalar_bitwise_and_op< Scalar >, const SparseMatrix< Scalar_, Options_, StorageIndex_ >, const OtherDerived > | operator& (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
| const CwiseBinaryOp< internal::scalar_boolean_and_op< Scalar >, const SparseMatrix< Scalar_, Options_, StorageIndex_ >, const OtherDerived > | operator&& (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
| const CwiseBinaryOp< sum< Scalar >, const SparseMatrix< Scalar_, Options_, StorageIndex_ >, const OtherDerived > | operator+ (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
| const NegativeReturnType | operator- () const |
| const CwiseBinaryOp< internal::scalar_bitwise_xor_op< Scalar >, const SparseMatrix< Scalar_, Options_, StorageIndex_ >, const OtherDerived > | operator^ (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
| const CwiseBinaryOp< internal::scalar_bitwise_or_op< Scalar >, const SparseMatrix< Scalar_, Options_, StorageIndex_ >, const OtherDerived > | operator| (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
| const CwiseBinaryOp< internal::scalar_boolean_or_op< Scalar >, const SparseMatrix< Scalar_, Options_, StorageIndex_ >, const OtherDerived > | operator|| (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
| Index | outerSize () const |
| const SparseView< SparseMatrix< Scalar_, Options_, StorageIndex_ > > | pruned (const Scalar &reference=Scalar(0), const RealScalar &epsilon=NumTraits< Scalar >::dummy_precision()) const |
| RealReturnType | real () const |
| NColsBlockXpr<... >::Type | rightCols (NColsType n) |
| RowXpr | row (Index i) |
| Index | rows () const |
| FixedSegmentReturnType<... >::Type | segment (Index start, NType n) |
| Index | size () const |
| std::conditional_t< Direction==Vertical, ColXpr, RowXpr > | subVector (Index i) |
| constexpr Index | subVectors () const |
| FixedSegmentReturnType<... >::Type | tail (NType n) |
| FixedBlockXpr<...,... >::Type | topLeftCorner (NRowsType cRows, NColsType cCols) |
| FixedBlockXpr<...,... >::Type | topRightCorner (NRowsType cRows, NColsType cCols) |
| NRowsBlockXpr<... >::Type | topRows (NRowsType n) |
| SparseSymmetricPermutationProduct< SparseMatrix< Scalar_, Options_, StorageIndex_ >, Upper|Lower > | twistedBy (const PermutationMatrix< Dynamic, Dynamic, StorageIndex > &perm) const |
| const CwiseUnaryOp< CustomUnaryOp, const SparseMatrix< Scalar_, Options_, StorageIndex_ > > | unaryExpr (const CustomUnaryOp &func=CustomUnaryOp()) const |
| | Apply a unary operator coefficient-wise.
|
| const CwiseUnaryView< CustomViewOp, const SparseMatrix< Scalar_, Options_, StorageIndex_ > > | unaryViewExpr (const CustomViewOp &func=CustomViewOp()) const |
| constexpr Index | cols () const noexcept |
| constexpr SparseMatrix< Scalar_, Options_, StorageIndex_ > & | derived () |
| constexpr Index | rows () const noexcept |
| constexpr Index | size () const noexcept |