|
enum | { Options = _Options
} |
|
typedef MappedSparseMatrix< Scalar, Flags > | Map |
|
typedef Diagonal< SparseMatrix > | DiagonalReturnType |
|
typedef Diagonal< const SparseMatrix > | ConstDiagonalReturnType |
|
typedef Base::InnerIterator | InnerIterator |
|
typedef Base::ReverseInnerIterator | ReverseInnerIterator |
|
typedef internal::CompressedStorage< Scalar, StorageIndex > | Storage |
|
typedef Base::IndexVector | IndexVector |
|
typedef Base::ScalarVector | ScalarVector |
|
typedef SparseMatrixBase< SparseMatrix< _Scalar, _Options, _Index > > | Base |
|
enum | {
RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime
, ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime
, SizeAtCompileTime
, MaxRowsAtCompileTime = RowsAtCompileTime
,
MaxColsAtCompileTime = ColsAtCompileTime
, MaxSizeAtCompileTime
, IsVectorAtCompileTime = RowsAtCompileTime == 1 || ColsAtCompileTime == 1
, Flags = internal::traits<Derived>::Flags
,
IsRowMajor = Flags&RowMajorBit ? 1 : 0
, InnerSizeAtCompileTime
, _HasDirectAccess = (int(Flags)&DirectAccessBit) ? 1 : 0
} |
|
typedef internal::traits< Derived >::Scalar | Scalar |
|
typedef Scalar | value_type |
| The numeric type of the expression' coefficients, e.g.
|
|
typedef internal::packet_traits< Scalar >::type | PacketScalar |
|
typedef internal::traits< Derived >::StorageKind | StorageKind |
|
typedef internal::traits< Derived >::StorageIndex | StorageIndex |
|
typedef internal::add_const_on_value_type_if_arithmetic< typenameinternal::packet_traits< Scalar >::type >::type | PacketReturnType |
|
typedef SparseMatrixBase | StorageBaseType |
|
typedef Matrix< StorageIndex, Dynamic, 1 > | IndexVector |
|
typedef Matrix< Scalar, Dynamic, 1 > | ScalarVector |
|
typedef internal::conditional< NumTraits< Scalar >::IsComplex, CwiseUnaryOp< internal::scalar_conjugate_op< Scalar >, Eigen::Transpose< constDerived > >, Transpose< constDerived > >::type | AdjointReturnType |
|
typedef Transpose< Derived > | TransposeReturnType |
|
typedef internal::add_const< Transpose< constDerived > >::type | ConstTransposeReturnType |
|
typedef SparseMatrix< Scalar, Flags &RowMajorBit ? RowMajor :ColMajor, StorageIndex > | PlainObject |
|
typedef NumTraits< Scalar >::Real | RealScalar |
| This is the "real scalar" type; if the Scalar type is already real numbers (e.g.
|
|
typedef internal::conditional< _HasDirectAccess, constScalar &, Scalar >::type | CoeffReturnType |
|
typedef CwiseNullaryOp< internal::scalar_constant_op< Scalar >, Matrix< Scalar, Dynamic, Dynamic > > | ConstantReturnType |
|
typedef Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTime > | DenseMatrixType |
| type of the equivalent dense matrix
|
|
typedef Matrix< Scalar, EIGEN_SIZE_MAX(RowsAtCompileTime, ColsAtCompileTime), EIGEN_SIZE_MAX(RowsAtCompileTime, ColsAtCompileTime)> | SquareMatrixType |
| type of the equivalent square matrix
|
|
typedef internal::special_scalar_op_base< Derived, Scalar, RealScalar, EigenBase< Derived > > | Base |
|
typedef Block< Derived, IsRowMajor?1:Dynamic, IsRowMajor?Dynamic:1, true > | InnerVectorReturnType |
|
typedef Block< const Derived, IsRowMajor?1:Dynamic, IsRowMajor?Dynamic:1, true > | ConstInnerVectorReturnType |
|
typedef Block< Derived, Dynamic, Dynamic, true > | InnerVectorsReturnType |
|
typedef Block< const Derived, Dynamic, Dynamic, true > | ConstInnerVectorsReturnType |
|
typedef Eigen::Index | Index |
| The interface type of indices.
|
|
typedef internal::traits< Derived >::StorageKind | StorageKind |
|
|
Index | rows () const |
|
Index | cols () const |
|
Index | innerSize () const |
|
Index | outerSize () const |
|
const Scalar * | valuePtr () const |
|
Scalar * | valuePtr () |
|
const StorageIndex * | innerIndexPtr () const |
|
StorageIndex * | innerIndexPtr () |
|
const StorageIndex * | outerIndexPtr () const |
|
StorageIndex * | outerIndexPtr () |
|
const StorageIndex * | innerNonZeroPtr () const |
|
StorageIndex * | innerNonZeroPtr () |
|
Storage & | data () |
|
const Storage & | data () const |
|
Scalar | coeff (Index row, Index col) const |
|
Scalar & | coeffRef (Index row, Index col) |
|
Scalar & | insert (Index row, Index col) |
|
void | setZero () |
| Removes all non zeros but keep allocated memory.
|
|
void | reserve (Index reserveSize) |
| Preallocates reserveSize non zeros.
|
|
template<class SizesType > |
void | reserve (const SizesType &reserveSizes, const typename SizesType::value_type &enableif=typename SizesType::value_type()) |
|
Scalar & | insertBack (Index row, Index col) |
|
Scalar & | insertBackByOuterInner (Index outer, Index inner) |
|
Scalar & | insertBackByOuterInnerUnordered (Index outer, Index inner) |
|
void | startVec (Index outer) |
|
void | finalize () |
|
template<typename InputIterators > |
void | setFromTriplets (const InputIterators &begin, const InputIterators &end) |
| Fill the matrix *this with the list of triplets defined by the iterator range begin - end.
|
|
template<typename InputIterators , typename DupFunctor > |
void | setFromTriplets (const InputIterators &begin, const InputIterators &end, DupFunctor dup_func) |
| The same as setFromTriplets but when duplicates are met the functor dup_func is applied:
|
|
void | sumupDuplicates () |
|
template<typename DupFunctor > |
void | collapseDuplicates (DupFunctor dup_func=DupFunctor()) |
|
Scalar & | insertByOuterInner (Index j, Index i) |
|
void | makeCompressed () |
| Turns the matrix into the compressed format.
|
|
void | uncompress () |
| Turns the matrix into the uncompressed mode.
|
|
void | prune (const Scalar &reference, const RealScalar &epsilon=NumTraits< RealScalar >::dummy_precision()) |
| Suppresses all nonzeros which are much smaller than reference under the tolerence epsilon.
|
|
template<typename KeepFunc > |
void | prune (const KeepFunc &keep=KeepFunc()) |
| Turns the matrix into compressed format, and suppresses all nonzeros which do not satisfy the predicate keep.
|
|
void | conservativeResize (Index rows, Index cols) |
| Resizes the matrix to a rows x cols matrix leaving old values untouched.
|
|
void | resize (Index rows, Index cols) |
| Resizes the matrix to a rows x cols matrix and initializes it to zero.
|
|
void | resizeNonZeros (Index size) |
|
const ConstDiagonalReturnType | diagonal () const |
|
DiagonalReturnType | diagonal () |
|
| SparseMatrix () |
| Default constructor yielding an empty 0 x 0 matrix.
|
|
| SparseMatrix (Index rows, Index cols) |
| Constructs a rows x cols empty matrix.
|
|
template<typename OtherDerived > |
| SparseMatrix (const SparseMatrixBase< OtherDerived > &other) |
| Constructs a sparse matrix from the sparse expression other.
|
|
template<typename OtherDerived , unsigned int UpLo> |
| SparseMatrix (const SparseSelfAdjointView< OtherDerived, UpLo > &other) |
| Constructs a sparse matrix from the sparse selfadjoint view other.
|
|
| SparseMatrix (const SparseMatrix &other) |
| Copy constructor (it performs a deep copy)
|
|
template<typename OtherDerived > |
| SparseMatrix (const ReturnByValue< OtherDerived > &other) |
| Copy constructor with in-place evaluation.
|
|
template<typename OtherDerived > |
| SparseMatrix (const DiagonalBase< OtherDerived > &other) |
| Copy constructor with in-place evaluation.
|
|
void | swap (SparseMatrix &other) |
| Swaps the content of two sparse matrices of the same type.
|
|
void | setIdentity () |
| Sets *this to the identity matrix.
|
|
SparseMatrix & | operator= (const SparseMatrix &other) |
|
template<typename OtherDerived > |
SparseMatrix & | operator= (const EigenBase< OtherDerived > &other) |
|
template<typename OtherDerived > |
EIGEN_DONT_INLINE SparseMatrix & | operator= (const SparseMatrixBase< OtherDerived > &other) |
|
| ~SparseMatrix () |
| Destructor.
|
|
Scalar | sum () const |
| Overloaded for performance.
|
|
EIGEN_STRONG_INLINE Scalar & | insertBackUncompressed (Index row, Index col) |
|
template<typename OtherDerived > |
EIGEN_DONT_INLINE SparseMatrix< Scalar, _Options, _Index > & | operator= (const SparseMatrixBase< OtherDerived > &other) |
|
bool | isCompressed () const |
|
Index | nonZeros () const |
|
Index | nonZeros () const |
|
const Scalar * | valuePtr () const |
|
Scalar * | valuePtr () |
|
const StorageIndex * | innerIndexPtr () const |
|
StorageIndex * | innerIndexPtr () |
|
const StorageIndex * | outerIndexPtr () const |
|
StorageIndex * | outerIndexPtr () |
|
const StorageIndex * | innerNonZeroPtr () const |
|
StorageIndex * | innerNonZeroPtr () |
|
bool | isCompressed () const |
|
SparseMatrix< _Scalar, _Options, _Index > & | operator= (const EigenBase< OtherDerived > &other) |
|
SparseMatrix< _Scalar, _Options, _Index > & | operator= (const ReturnByValue< OtherDerived > &other) |
|
SparseMatrix< _Scalar, _Options, _Index > & | operator= (const SparseMatrixBase< OtherDerived > &other) |
|
SparseMatrix< _Scalar, _Options, _Index > & | operator= (const SparseMatrix< _Scalar, _Options, _Index > &other) |
|
template<typename OtherDerived > |
Derived & | operator= (const EigenBase< OtherDerived > &other) |
|
const Derived & | derived () const |
|
Derived & | derived () |
|
Derived & | const_cast_derived () const |
|
Index | rows () const |
|
Index | cols () const |
|
Index | size () const |
|
bool | isVector () const |
|
Index | outerSize () const |
|
Index | innerSize () const |
|
bool | isRValue () const |
|
Derived & | markAsRValue () |
|
template<typename OtherDerived > |
Derived & | operator= (const ReturnByValue< OtherDerived > &other) |
|
template<typename OtherDerived > |
Derived & | operator= (const SparseMatrixBase< OtherDerived > &other) |
|
Derived & | operator= (const Derived &other) |
|
template<typename OtherDerived > |
Derived & | operator+= (const SparseMatrixBase< OtherDerived > &other) |
|
template<typename OtherDerived > |
Derived & | operator-= (const SparseMatrixBase< OtherDerived > &other) |
|
template<typename OtherDerived > |
Derived & | operator+= (const DiagonalBase< OtherDerived > &other) |
|
template<typename OtherDerived > |
Derived & | operator-= (const DiagonalBase< OtherDerived > &other) |
|
Derived & | operator*= (const Scalar &other) |
|
Derived & | operator/= (const Scalar &other) |
|
template<typename OtherDerived > |
EIGEN_STRONG_INLINE const CwiseProductDenseReturnType< OtherDerived >::Type | cwiseProduct (const MatrixBase< OtherDerived > &other) const |
|
template<typename OtherDerived > |
const Product< Derived, OtherDerived > | operator* (const DiagonalBase< OtherDerived > &other) const |
|
template<typename OtherDerived > |
const Product< Derived, OtherDerived, AliasFreeProduct > | operator* (const SparseMatrixBase< OtherDerived > &other) const |
|
template<typename OtherDerived > |
const Product< Derived, OtherDerived > | operator* (const MatrixBase< OtherDerived > &other) const |
|
SparseSymmetricPermutationProduct< Derived, Upper|Lower > | twistedBy (const PermutationMatrix< Dynamic, Dynamic, StorageIndex > &perm) const |
|
template<typename OtherDerived > |
Derived & | operator*= (const SparseMatrixBase< OtherDerived > &other) |
|
template<int Mode> |
const TriangularView< const Derived, Mode > | triangularView () const |
|
template<unsigned int UpLo> |
ConstSelfAdjointViewReturnType< UpLo >::Type | selfadjointView () const |
|
template<unsigned int UpLo> |
SelfAdjointViewReturnType< UpLo >::Type | selfadjointView () |
|
template<typename OtherDerived > |
Scalar | dot (const MatrixBase< OtherDerived > &other) const |
|
template<typename OtherDerived > |
Scalar | dot (const SparseMatrixBase< OtherDerived > &other) const |
|
RealScalar | squaredNorm () const |
|
RealScalar | norm () const |
|
RealScalar | blueNorm () const |
|
TransposeReturnType | transpose () |
|
const ConstTransposeReturnType | transpose () const |
|
const AdjointReturnType | adjoint () const |
|
InnerVectorReturnType | innerVector (Index outer) |
|
const ConstInnerVectorReturnType | innerVector (Index outer) const |
|
InnerVectorsReturnType | innerVectors (Index outerStart, Index outerSize) |
|
const ConstInnerVectorsReturnType | innerVectors (Index outerStart, Index outerSize) const |
|
DenseMatrixType | toDense () const |
|
template<typename OtherDerived > |
bool | isApprox (const SparseMatrixBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const |
|
template<typename OtherDerived > |
bool | isApprox (const MatrixBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const |
|
const internal::eval< Derived >::type | eval () const |
|
Scalar | sum () const |
|
const SparseView< Derived > | pruned (const Scalar &reference=Scalar(0), const RealScalar &epsilon=NumTraits< Scalar >::dummy_precision()) const |
|
template<typename OtherDerived > |
EIGEN_STRONG_INLINE Derived & | operator-= (const SparseMatrixBase< OtherDerived > &other) |
|
template<typename OtherDerived > |
EIGEN_STRONG_INLINE Derived & | operator+= (const SparseMatrixBase< OtherDerived > &other) |
|
template<typename OtherDerived > |
EIGEN_STRONG_INLINE const SparseMatrixBase< Derived >::template CwiseProductDenseReturnType< OtherDerived >::Type | cwiseProduct (const MatrixBase< OtherDerived > &other) const |
|
template<typename OtherDerived > |
internal::traits< Derived >::Scalar | dot (const MatrixBase< OtherDerived > &other) const |
|
template<typename OtherDerived > |
internal::traits< Derived >::Scalar | dot (const SparseMatrixBase< OtherDerived > &other) const |
|
template<unsigned int UpLo> |
SparseMatrixBase< Derived >::template ConstSelfAdjointViewReturnType< UpLo >::Type | selfadjointView () const |
|
template<unsigned int UpLo> |
SparseMatrixBase< Derived >::template SelfAdjointViewReturnType< UpLo >::Type | selfadjointView () |
|
void | operator* (dummy) const |
|
void | operator/ (dummy) const |
|
void | operator* (dummy) const |
|
void | operator/ (dummy) const |
|
EIGEN_DEVICE_FUNC Derived & | derived () |
|
EIGEN_DEVICE_FUNC const Derived & | derived () const |
|
EIGEN_DEVICE_FUNC Derived & | const_cast_derived () const |
|
EIGEN_DEVICE_FUNC const Derived & | const_derived () const |
|
EIGEN_DEVICE_FUNC Index | rows () const |
|
EIGEN_DEVICE_FUNC Index | cols () const |
|
EIGEN_DEVICE_FUNC Index | size () const |
|
template<typename Dest > |
EIGEN_DEVICE_FUNC void | evalTo (Dest &dst) const |
|
template<typename Dest > |
EIGEN_DEVICE_FUNC void | addTo (Dest &dst) const |
|
template<typename Dest > |
EIGEN_DEVICE_FUNC void | subTo (Dest &dst) const |
|
template<typename Dest > |
EIGEN_DEVICE_FUNC void | applyThisOnTheRight (Dest &dst) const |
|
template<typename Dest > |
EIGEN_DEVICE_FUNC void | applyThisOnTheLeft (Dest &dst) const |
|
template<
typename _Scalar, int _Options,
typename _Index>
class Eigen::SparseMatrix< _Scalar, _Options, _Index >
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 inbetween 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. |
_Index | the type of the indices. It has to be a signed type (e.g., short, int, std::ptrdiff_t). Default is int . |
This class can be extended with the help of the plugin mechanism described on the page TopicCustomizingEigen by defining the preprocessor symbol EIGEN_SPARSEMATRIX_PLUGIN
.