A versatible sparse matrix representation. More...
#include <SparseMatrix.h>
Classes | |
class | SingletonVector |
Public Types | |
enum | { Options } |
enum | |
typedef internal::conditional < NumTraits< Scalar > ::IsComplex, CwiseUnaryOp < internal::scalar_conjugate_op < Scalar >, Eigen::Transpose < const SparseMatrix< _Scalar, _Options, _Index > > >, Transpose< const SparseMatrix< _Scalar, _Options, _Index > > >::type | AdjointReturnType |
typedef EigenBase < SparseMatrix< _Scalar, _Options, _Index > > | Base |
typedef internal::traits < SparseMatrix< _Scalar, _Options, _Index > >::Index | Index |
typedef MappedSparseMatrix < Scalar, Flags > | Map |
typedef internal::add_const_on_value_type_if_arithmetic < typename internal::packet_traits < Scalar >::type >::type | PacketReturnType |
typedef internal::packet_traits < Scalar >::type | PacketScalar |
typedef SparseMatrix< Scalar, Flags &RowMajorBit?RowMajor:ColMajor > | PlainObject |
typedef internal::traits < SparseMatrix< _Scalar, _Options, _Index > >::Scalar | Scalar |
typedef internal::CompressedStorage < Scalar, Index > | Storage |
typedef SparseMatrixBase | StorageBaseType |
typedef internal::traits < SparseMatrix< _Scalar, _Options, _Index > >::StorageKind | StorageKind |
Public Member Functions | |
void | addTo (Dest &dst) const |
const AdjointReturnType | adjoint () const |
void | applyThisOnTheLeft (Dest &dst) const |
void | applyThisOnTheRight (Dest &dst) const |
const CwiseBinaryOp < CustomBinaryOp, const SparseMatrix< _Scalar, _Options, _Index >, const OtherDerived > | binaryExpr (const Eigen::SparseMatrixBase< OtherDerived > &other, const CustomBinaryOp &func=CustomBinaryOp()) const |
internal::cast_return_type < SparseMatrix< _Scalar, _Options, _Index >, const CwiseUnaryOp < internal::scalar_cast_op < typename internal::traits < SparseMatrix< _Scalar, _Options, _Index > >::Scalar, NewType >, const SparseMatrix < _Scalar, _Options, _Index > > >::type | cast () const |
Scalar | coeff (Index row, Index col) const |
Scalar & | coeffRef (Index row, Index col) |
SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, 1 > | col (Index j) |
const SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, 1 > | col (Index j) const |
Index | cols () const |
ConjugateReturnType | conjugate () const |
SparseMatrix< _Scalar, _Options, _Index > & | const_cast_derived () const |
const SparseMatrix< _Scalar, _Options, _Index > & | const_derived () const |
const CwiseUnaryOp < internal::scalar_abs_op < Scalar >, const SparseMatrix < _Scalar, _Options, _Index > > | cwiseAbs () const |
const CwiseUnaryOp < internal::scalar_abs2_op < Scalar >, const SparseMatrix < _Scalar, _Options, _Index > > | cwiseAbs2 () const |
const CwiseBinaryOp < std::equal_to< Scalar > , const SparseMatrix< _Scalar, _Options, _Index >, const OtherDerived > | cwiseEqual (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const CwiseUnaryOp < std::binder1st < std::equal_to< Scalar > >, const SparseMatrix < _Scalar, _Options, _Index > > | cwiseEqual (const Scalar &s) const |
const CwiseUnaryOp < internal::scalar_inverse_op < Scalar >, const SparseMatrix < _Scalar, _Options, _Index > > | cwiseInverse () const |
const CwiseBinaryOp < internal::scalar_max_op < Scalar >, const SparseMatrix < _Scalar, _Options, _Index > , const OtherDerived > | cwiseMax (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const CwiseBinaryOp < internal::scalar_max_op < Scalar >, const SparseMatrix < _Scalar, _Options, _Index > , const ConstantReturnType > | cwiseMax (const Scalar &other) const |
const CwiseBinaryOp < internal::scalar_min_op < Scalar >, const SparseMatrix < _Scalar, _Options, _Index > , const OtherDerived > | cwiseMin (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const CwiseBinaryOp < internal::scalar_min_op < Scalar >, const SparseMatrix < _Scalar, _Options, _Index > , const ConstantReturnType > | cwiseMin (const Scalar &other) const |
const CwiseBinaryOp < std::not_equal_to< Scalar > , const SparseMatrix< _Scalar, _Options, _Index >, const OtherDerived > | cwiseNotEqual (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const EIGEN_SPARSE_CWISE_PRODUCT_RETURN_TYPE | cwiseProduct (const MatrixBase< OtherDerived > &other) const |
const CwiseBinaryOp < internal::scalar_quotient_op < Scalar >, const SparseMatrix < _Scalar, _Options, _Index > , const OtherDerived > | cwiseQuotient (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const CwiseUnaryOp < internal::scalar_sqrt_op < Scalar >, const SparseMatrix < _Scalar, _Options, _Index > > | cwiseSqrt () const |
Storage & | data () |
const Storage & | data () const |
SparseMatrix< _Scalar, _Options, _Index > & | derived () |
const SparseMatrix< _Scalar, _Options, _Index > & | derived () const |
const Diagonal< const SparseMatrix > | diagonal () const |
Scalar | dot (const MatrixBase< OtherDerived > &other) const |
Scalar | dot (const SparseMatrixBase< OtherDerived > &other) const |
const | EIGEN_CWISE_PRODUCT_RETURN_TYPE (SparseMatrix< _Scalar, _Options, _Index >, OtherDerived) cwiseProduct(const Eigen |
const internal::eval < SparseMatrix< _Scalar, _Options, _Index > >::type | eval () const |
void | evalTo (Dest &dst) const |
void | evalTo (MatrixBase< DenseDerived > &dst) const |
void | finalize () |
const ImagReturnType | imag () const |
NonConstImagReturnType | imag () |
const Index * | innerIndexPtr () const |
Index * | innerIndexPtr () |
const Index * | innerNonZeroPtr () const |
Index * | innerNonZeroPtr () |
Index | innerSize () const |
SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, 1 > | innerVector (Index outer) |
const SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, 1 > | innerVector (Index outer) const |
SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, Dynamic > | innerVectors (Index outerStart, Index outerSize) |
const SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, Dynamic > | innerVectors (Index outerStart, Index outerSize) const |
EIGEN_DONT_INLINE Scalar & | insert (Index row, Index col) |
Scalar & | insertBack (Index row, Index col) |
Scalar & | insertBackByOuterInner (Index outer, Index inner) |
Scalar & | insertBackByOuterInnerUnordered (Index outer, Index inner) |
Scalar & | insertBackUncompressed (Index row, Index col) |
EIGEN_DONT_INLINE Scalar & | insertByOuterInner (Index j, Index i) |
bool | isApprox (const SparseMatrixBase< OtherDerived > &other, RealScalar prec=NumTraits< Scalar >::dummy_precision()) const |
bool | isApprox (const MatrixBase< OtherDerived > &other, RealScalar prec=NumTraits< Scalar >::dummy_precision()) const |
bool | isCompressed () const |
bool | isRValue () const |
bool | isVector () const |
void | makeCompressed () |
SparseMatrix< _Scalar, _Options, _Index > & | markAsRValue () |
SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, Dynamic > | middleCols (Index start, Index size) |
const SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, Dynamic > | middleCols (Index start, Index size) const |
SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, Dynamic > | middleRows (Index start, Index size) |
const SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, Dynamic > | middleRows (Index start, Index size) const |
Index | nonZeros () const |
RealScalar | norm () const |
const ScalarMultipleReturnType | operator* (const Scalar &scalar) const |
const ScalarMultipleReturnType | operator* (const RealScalar &scalar) const |
const CwiseUnaryOp < internal::scalar_multiple2_op < Scalar, std::complex< Scalar > >, const SparseMatrix < _Scalar, _Options, _Index > > | operator* (const std::complex< Scalar > &scalar) const |
const SparseSparseProductReturnType < SparseMatrix< _Scalar, _Options, _Index > , OtherDerived >::Type | operator* (const SparseMatrixBase< OtherDerived > &other) const |
const SparseDiagonalProduct < SparseMatrix< _Scalar, _Options, _Index > , OtherDerived > | operator* (const DiagonalBase< OtherDerived > &other) const |
const SparseDenseProductReturnType < SparseMatrix< _Scalar, _Options, _Index > , OtherDerived >::Type | operator* (const MatrixBase< OtherDerived > &other) const |
SparseMatrix< _Scalar, _Options, _Index > & | operator*= (const Scalar &other) |
SparseMatrix< _Scalar, _Options, _Index > & | operator*= (const SparseMatrixBase< OtherDerived > &other) |
SparseMatrix< _Scalar, _Options, _Index > & | operator+= (const SparseMatrixBase< OtherDerived > &other) |
const CwiseUnaryOp < internal::scalar_opposite_op < typename internal::traits < SparseMatrix< _Scalar, _Options, _Index > >::Scalar > , const SparseMatrix< _Scalar, _Options, _Index > > | operator- () const |
SparseMatrix< _Scalar, _Options, _Index > & | operator-= (const SparseMatrixBase< OtherDerived > &other) |
const CwiseUnaryOp < internal::scalar_quotient1_op < typename internal::traits < SparseMatrix< _Scalar, _Options, _Index > >::Scalar > , const SparseMatrix< _Scalar, _Options, _Index > > | operator/ (const Scalar &scalar) const |
SparseMatrix< _Scalar, _Options, _Index > & | operator/= (const Scalar &other) |
SparseMatrix & | operator= (const SparseMatrix &other) |
template<typename OtherDerived > | |
EIGEN_DONT_INLINE SparseMatrix & | operator= (const SparseMatrixBase< OtherDerived > &other) |
const Index * | outerIndexPtr () const |
Index * | outerIndexPtr () |
Index | outerSize () const |
void | prune (Scalar reference, RealScalar epsilon=NumTraits< RealScalar >::dummy_precision()) |
template<typename KeepFunc > | |
void | prune (const KeepFunc &keep=KeepFunc()) |
RealReturnType | real () const |
NonConstRealReturnType | real () |
void | reserve (Index reserveSize) |
template<class SizesType > | |
void | reserve (const SizesType &reserveSizes) |
void | resize (Index rows, Index cols) |
void | resizeNonZeros (Index size) |
SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, 1 > | row (Index i) |
const SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, 1 > | row (Index i) const |
Index | rows () const |
const SparseSelfAdjointView < SparseMatrix< _Scalar, _Options, _Index >, UpLo > | selfadjointView () const |
SparseSelfAdjointView < SparseMatrix< _Scalar, _Options, _Index >, UpLo > | selfadjointView () |
template<typename InputIterators > | |
void | setFromTriplets (const InputIterators &begin, const InputIterators &end) |
void | setZero () |
Index | size () const |
SparseMatrix () | |
SparseMatrix (Index rows, Index cols) | |
template<typename OtherDerived > | |
SparseMatrix (const SparseMatrixBase< OtherDerived > &other) | |
SparseMatrix (const SparseMatrix &other) | |
RealScalar | squaredNorm () const |
void | startVec (Index outer) |
SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, Dynamic > | subcols (Index start, Index size) |
const SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, Dynamic > | subcols (Index start, Index size) const |
SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, Dynamic > | subrows (Index start, Index size) |
const SparseInnerVectorSet < SparseMatrix< _Scalar, _Options, _Index >, Dynamic > | subrows (Index start, Index size) const |
void | subTo (Dest &dst) const |
Scalar | sum () const |
void | sumupDuplicates () |
void | swap (SparseMatrix &other) |
Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTime > | toDense () const |
Transpose< SparseMatrix < _Scalar, _Options, _Index > > | transpose () |
const Transpose< const SparseMatrix< _Scalar, _Options, _Index > > | transpose () const |
const SparseTriangularView < SparseMatrix< _Scalar, _Options, _Index >, Mode > | triangularView () const |
SparseSymmetricPermutationProduct < SparseMatrix< _Scalar, _Options, _Index >, Upper|Lower > | twistedBy (const PermutationMatrix< Dynamic, Dynamic, Index > &perm) const |
const CwiseUnaryOp < CustomUnaryOp, const SparseMatrix< _Scalar, _Options, _Index > > | unaryExpr (const CustomUnaryOp &func=CustomUnaryOp()) const |
Apply a unary operator coefficient-wise. | |
const CwiseUnaryView < CustomViewOp, const SparseMatrix< _Scalar, _Options, _Index > > | unaryViewExpr (const CustomViewOp &func=CustomViewOp()) const |
const Scalar * | valuePtr () const |
Scalar * | valuePtr () |
~SparseMatrix () |
Protected Types | |
typedef SparseMatrix< Scalar,(Flags &~RowMajorBit)|(IsRowMajor?RowMajorBit:0)> | TransposedSparseMatrix |
Protected Member Functions | |
SparseMatrix< _Scalar, _Options, _Index > & | assign (const OtherDerived &other) |
void | assignGeneric (const OtherDerived &other) |
template<typename Other > | |
void | initAssignment (const Other &other) |
Eigen::Map< Matrix< Index, Dynamic, 1 > > | innerNonZeros () |
const Eigen::Map< const Matrix < Index, Dynamic, 1 > > | innerNonZeros () const |
EIGEN_DONT_INLINE Scalar & | insertCompressed (Index row, Index col) |
EIGEN_DONT_INLINE Scalar & | insertUncompressed (Index row, Index col) |
template<class SizesType > | |
void | reserveInnerVectors (const SizesType &reserveSizes) |
Protected Attributes | |
Storage | m_data |
Index * | m_innerNonZeros |
Index | m_innerSize |
bool | m_isRValue |
Index * | m_outerIndex |
Index | m_outerSize |
Friends | |
std::ostream & | operator<< (std::ostream &s, const SparseMatrix &m) |
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.
_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 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 Customizing/Extending Eigen by defining the preprocessor symbol EIGEN_SPARSEMATRIX_PLUGIN
.
|
inherited |
|
inherited |
|
inherited |
typedef MappedSparseMatrix<Scalar,Flags> Map |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
protected |
|
inherited |
|
inline |
Default constructor yielding an empty 0
x
0
matrix
|
inline |
Constructs a rows x
cols empty matrix
|
inline |
Constructs a sparse matrix from the sparse expression other
|
inline |
Copy constructor (it performs a deep copy)
|
inline |
Destructor
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
*this
and other *this
and other The template parameter CustomBinaryOp is the type of the functor of the custom operator (see class CwiseBinaryOp for an example)
Here is an example illustrating the use of custom functors:
Output:
(0.68,0.271) (0.823,-0.967) (-0.444,-0.687) (-0.27,0.998) (-0.211,0.435) (-0.605,-0.514) (0.108,-0.198) (0.0268,-0.563) (0.566,-0.717) (-0.33,-0.726) (-0.0452,-0.74) (0.904,0.0259) (0.597,0.214) (0.536,0.608) (0.258,-0.782) (0.832,0.678)
|
inlineinherited |
The template parameter NewScalar is the type we are casting the scalars to.
If the element does not exist then it is inserted via the insert(Index,Index) function which itself turns the matrix into a non compressed form if that was not the case.
This is a O(log(nnz_j)) operation (binary search) plus the cost of insert(Index,Index) function if the element does not already exist.
|
inherited |
*this
. For column-major matrix only. Referenced by IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::_solve_sparse(), SparseMatrix< Scalar, RowMajor >::coeff(), SparseMatrix< Scalar, RowMajor >::coeffRef(), SparseMatrix< Scalar, RowMajor >::insertBackUncompressed(), SparseMatrix< Scalar, RowMajor >::insertCompressed(), and SparseMatrix< Scalar, RowMajor >::insertUncompressed().
|
inherited |
*this
. For column-major matrix only. (read-only version)
|
inline |
Reimplemented from SparseMatrixBase< SparseMatrix< _Scalar, _Options, _Index > >.
Referenced by IncompleteLUT< _Scalar >::cols(), SimplicialCholeskyBase< SimplicialLDLT< _MatrixType, _UpLo > >::cols(), UmfPackLU< _MatrixType >::cols(), SuperLUBase< _MatrixType, SuperILU< _MatrixType > >::cols(), PastixBase< Derived >::compute(), SimplicialCholeskyBase< Derived >::factorize_preordered(), Eigen::internal::minimum_degree_ordering(), SparseMatrix< Scalar, RowMajor >::resize(), and Eigen::viewAsCholmod().
|
inlineinherited |
*this
.
|
inlineinherited |
Referenced by SparseSelfAdjointView< MatrixType, UpLo >::rankUpdate(), and Eigen::viewAsCholmod().
|
inlineinherited |
|
inlineinherited |
*this
Example:
Output:
2 4 6 5 1 0
|
inlineinherited |
*this
Example:
Output:
4 16 36 25 1 0
|
inlineinherited |
Example:
Output:
Comparing m with identity matrix: 1 1 0 1 Number of coefficients that are equal: 3
|
inlineinherited |
*this
and a scalar s
|
inlineinherited |
Example:
Output:
0.5 2 1 0.333 4 1
|
inlineinherited |
Example:
Output:
4 3 4
|
inlineinherited |
|
inlineinherited |
Example:
Output:
2 2 3
|
inlineinherited |
|
inlineinherited |
Example:
Output:
Comparing m with identity matrix: 0 0 1 0 Number of coefficients that are not equal: 1
|
inlineinherited |
|
inlineinherited |
Example:
Output:
0.5 1.5 1.33
|
inlineinherited |
Example:
Output:
1 1.41 2
|
inline |
|
inline |
|
inlineinherited |
Referenced by Eigen::internal::permute_symm_to_fullsymm(), and Eigen::internal::permute_symm_to_symm().
|
inlineinherited |
|
inline |
Referenced by SimplicialLLT< _MatrixType, _UpLo >::determinant().
|
inherited |
|
inherited |
|
inlineinherited |
Example:
Output:
a: 7 6 -3 -2 9 6 6 -6 -5 b: 1 -3 9 0 0 3 3 9 5 c: 7 -18 -27 0 0 18 18 -54 -25
|
inlineinherited |
Notice that in the case of a plain matrix or vector (not an expression) this function just returns a const reference, in order to avoid a useless copy.
|
inlineinherited |
|
inlineinherited |
|
inline |
|
inlineinherited |
*this
.
|
inlineinherited |
*this
.
|
inlineprotected |
Referenced by SparseMatrix< Scalar, RowMajor >::operator=().
|
inline |
Referenced by PastixBase< Derived >::analyzePattern(), PastixBase< Derived >::factorize(), UmfPackLU< _MatrixType >::grapInput(), Eigen::internal::minimum_degree_ordering(), and Eigen::viewAsCholmod().
|
inline |
|
inline |
Referenced by Eigen::viewAsCholmod().
|
inline |
|
inlineprotected |
Referenced by SparseMatrix< Scalar, RowMajor >::nonZeros().
|
inlineprotected |
|
inline |
Reimplemented from SparseMatrixBase< SparseMatrix< _Scalar, _Options, _Index > >.
|
inherited |
*this
if *this
is col-major (resp. row-major). Referenced by SparseInnerVectorSet< SparseMatrix< _Scalar, _Options, _Index >, Size >::operator=().
|
inherited |
*this
if *this
is col-major (resp. row-major). Read-only.
|
inherited |
*this
if *this
is col-major (resp. row-major).
|
inherited |
*this
if *this
is col-major (resp. row-major). Read-only.
|
inline |
If the matrix *this
is in compressed mode, then *this
is turned into uncompressed mode while reserving room for 2 non zeros per inner vector. It is strongly recommended to first call reserve(const SizesType &) to reserve a more appropriate number of elements per inner vector that better match your scenario.
This function performs a sorted insertion in O(1) if the elements of each inner vector are inserted in increasing inner index order, and in O(nnz_j) for a random insertion.
Referenced by SparseMatrix< Scalar, RowMajor >::coeffRef(), and SparseMatrix< Scalar, RowMajor >::insertByOuterInner().
Referenced by SparseMatrix< Scalar, RowMajor >::insertBack().
|
inline |
|
inlineprotected |
|
inlineprotected |
Referenced by SparseMatrix< Scalar, RowMajor >::insert().
|
inlineinherited |
|
inlineinherited |
|
inline |
*this
is in compressed form. Referenced by SparseMatrix< Scalar, RowMajor >::finalize(), SparseMatrix< Scalar, RowMajor >::insert(), SparseMatrix< Scalar, RowMajor >::insertBackUncompressed(), SparseMatrix< Scalar, RowMajor >::insertCompressed(), SparseMatrix< Scalar, RowMajor >::insertUncompressed(), SparseMatrix< Scalar, RowMajor >::makeCompressed(), SparseMatrix< Scalar, RowMajor >::operator=(), SparseMatrix< Scalar, RowMajor >::reserve(), SparseMatrix< Scalar, RowMajor >::reserveInnerVectors(), and Eigen::viewAsCholmod().
|
inlineinherited |
|
inlineinherited |
|
inline |
Turns the matrix into the compressed format.
Referenced by SparseMatrix< Scalar, RowMajor >::prune().
|
inlineinherited |
|
inherited |
*this
. For column-major matrix only. Referenced by PastixBase< PastixLU< _MatrixType > >::_solve_sparse(), and PardisoImpl< PardisoLU< MatrixType > >::_solve_sparse().
|
inherited |
*this
. For column-major matrix only. (read-only version)
|
inherited |
*this
. For row-major matrix only.
|
inherited |
*this
. For row-major matrix only. (read-only version)
|
inline |
Reimplemented from SparseMatrixBase< SparseMatrix< _Scalar, _Options, _Index > >.
Referenced by Eigen::internal::minimum_degree_ordering(), SparseInnerVectorSet< SparseMatrix< _Scalar, _Options, _Index >, Size >::operator=(), and Eigen::viewAsCholmod().
|
inherited |
|
inlineinherited |
*this
scaled by the scalar factor scalar
|
inherited |
|
inlineinherited |
Overloaded for efficient real matrix times complex scalar value
|
inherited |
ref
is a meaningful non zero reference value.
|
inherited |
|
inherited |
sparse * dense (returns a dense object unless it is an outer product)
|
inherited |
|
inherited |
|
inherited |
|
inlineinherited |
*this
|
inherited |
|
inlineinherited |
*this
divided by the scalar value scalar
|
inherited |
|
inline |
Referenced by SparseMatrix< Scalar, RowMajor >::operator=().
|
inline |
Reimplemented from SparseMatrixBase< SparseMatrix< _Scalar, _Options, _Index > >.
|
inline |
Referenced by PastixBase< Derived >::analyzePattern(), PastixBase< Derived >::factorize(), UmfPackLU< _MatrixType >::grapInput(), Eigen::internal::minimum_degree_ordering(), and Eigen::viewAsCholmod().
|
inline |
|
inline |
Reimplemented from SparseMatrixBase< SparseMatrix< _Scalar, _Options, _Index > >.
Referenced by PastixLU< _MatrixType, IsStrSym >::grabMatrix(), SparseMatrix< Scalar, RowMajor >::insert(), SparseMatrix< Scalar, RowMajor >::operator=(), SparseMatrix< Scalar, RowMajor >::resize(), and SparseInnerVectorSet< SparseMatrix< _Scalar, _Options, _Index >, Size >::SparseInnerVectorSet().
|
inline |
Suppresses all nonzeros which are much smaller than reference under the tolerence epsilon
Referenced by IncompleteLUT< _Scalar >::analyzePattern(), and SparseMatrix< Scalar, RowMajor >::prune().
|
inline |
Turns the matrix into compressed format, and suppresses all nonzeros which do not satisfy the predicate keep. The functor type KeepFunc must implement the following function:
|
inlineinherited |
*this
.
|
inlineinherited |
*this
.
|
inline |
Preallocates reserveSize non zeros.
Precondition: the matrix must be in compressed mode.
Referenced by SparseMatrix< Scalar, RowMajor >::insert(), and SparseMatrix< Scalar, RowMajor >::insertUncompressed().
|
inline |
Preallocates reserveSize[j
] non zeros for each column (resp. row) j
.
This function turns the matrix in non-compressed mode
|
inlineprotected |
Resizes the matrix to a rows x cols matrix and initializes it to zero.
Referenced by PardisoLLT< MatrixType, _UpLo >::getMatrix(), PardisoLDLT< MatrixType, Options >::getMatrix(), UmfPackLU< _MatrixType >::grapInput(), SparseMatrix< Scalar, RowMajor >::initAssignment(), SimplicialCholeskyBase< Derived >::ordering(), and SparseMatrix< Scalar, RowMajor >::SparseMatrix().
|
inline |
Referenced by Eigen::internal::minimum_degree_ordering().
|
inherited |
*this
. For row-major matrix only. Referenced by SparseMatrix< Scalar, RowMajor >::coeff(), SparseMatrix< Scalar, RowMajor >::coeffRef(), SparseMatrix< Scalar, RowMajor >::insertBackUncompressed(), SparseMatrix< Scalar, RowMajor >::insertCompressed(), and SparseMatrix< Scalar, RowMajor >::insertUncompressed().
|
inherited |
*this
. For row-major matrix only. (read-only version)
|
inline |
Reimplemented from SparseMatrixBase< SparseMatrix< _Scalar, _Options, _Index > >.
Referenced by PastixBase< Derived >::analyzePattern(), SimplicialCholeskyBase< Derived >::analyzePattern_preordered(), PastixBase< Derived >::compute(), PastixBase< Derived >::factorize(), SimplicialCholeskyBase< Derived >::factorize_preordered(), SparseMatrix< Scalar, RowMajor >::resize(), IncompleteLUT< _Scalar >::rows(), SimplicialCholeskyBase< SimplicialLDLT< _MatrixType, _UpLo > >::rows(), UmfPackLU< _MatrixType >::rows(), SuperLUBase< _MatrixType, SuperILU< _MatrixType > >::rows(), and Eigen::viewAsCholmod().
|
inlineinherited |
|
inlineinherited |
void setFromTriplets | ( | const InputIterators & | begin, |
const InputIterators & | end | ||
) |
Fill the matrix *this
with the list of triplets defined by the iterator range begin - .
A triplet is a tuple (i,j,value) defining a non-zero element. The input list of triplets does not have to be sorted, and can contains duplicated elements. In any case, the result is a sorted and compressed sparse matrix where the duplicates have been summed up. This is a O(n) operation, with n the number of triplet elements. The initial contents of *this
is destroyed. The matrix *this
must be properly resized beforehand using the SparseMatrix(Index,Index) constructor, or the resize(Index,Index) method. The sizes are not extracted from the triplet list.
The InputIterators value_type must provide the following interface:
See for instance the Eigen::Triplet template class.
Here is a typical usage example:
References Eigen::internal::set_from_triplets().
|
inline |
Removes all non zeros but keep allocated memory
Referenced by SparseMatrix< Scalar, RowMajor >::operator=().
|
inlineinherited |
Reimplemented from EigenBase< SparseMatrix< _Scalar, _Options, _Index > >.
Referenced by SparseMatrix< Scalar, RowMajor >::finalize().
|
inherited |
|
inline |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inlineinherited |
|
inherited |
void sumupDuplicates | ( | ) |
References eigen_assert, and PlainObjectBase< Derived >::resize().
|
inline |
Swaps the content of two sparse matrices of the same type. This is a fast operation that simply swaps the underlying pointers and parameters.
Referenced by SparseMatrix< Scalar, RowMajor >::operator=(), SparseMatrix< Scalar, RowMajor >::reserveInnerVectors(), and SparseMatrix< Scalar, RowMajor >::swap().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
*this
|
inlineinherited |
Apply a unary operator coefficient-wise.
[in] | func | Functor implementing the unary operator |
CustomUnaryOp | Type of func |
The function ptr_fun()
from the C++ standard library can be used to make functors out of normal functions.
Example:
Output:
0.68 0.823 -0.444 -0.27 -0.211 -0.605 0.108 0.0268 0.566 -0.33 -0.0452 0.904 0.597 0.536 0.258 0.832 becomes: 0.68 0.823 0 0 0 0 0.108 0.0268 0.566 0 0 0.904 0.597 0.536 0.258 0.832
Genuine functors allow for more possibilities, for instance it may contain a state.
Example:
Output:
0.68 0.823 -0.444 -0.27 -0.211 -0.605 0.108 0.0268 0.566 -0.33 -0.0452 0.904 0.597 0.536 0.258 0.832 becomes: 0.5 0.5 -0.444 -0.27 -0.211 -0.5 0.108 0.0268 0.5 -0.33 -0.0452 0.5 0.5 0.5 0.258 0.5
|
inlineinherited |
The template parameter CustomUnaryOp is the type of the functor of the custom unary operator.
Example:
Output:
0.68 0.823 -0.444 -0.27 -0.211 -0.605 0.108 0.0268 0.566 -0.33 -0.0452 0.904 0.597 0.536 0.258 0.832 becomes: 0.5 0.5 -0.444 -0.27 -0.211 -0.5 0.108 0.0268 0.5 -0.33 -0.0452 0.5 0.5 0.5 0.258 0.5
|
inline |
Referenced by PastixBase< Derived >::analyzePattern(), PastixBase< Derived >::factorize(), UmfPackLU< _MatrixType >::grapInput(), and Eigen::viewAsCholmod().
|
inline |
|
friend |
|
protected |
Referenced by SparseMatrix< Scalar, RowMajor >::coeff(), SparseMatrix< Scalar, RowMajor >::coeffRef(), SparseMatrix< Scalar, RowMajor >::data(), SparseMatrix< Scalar, RowMajor >::finalize(), SparseMatrix< Scalar, RowMajor >::innerIndexPtr(), SparseMatrix< Scalar, RowMajor >::insertBackByOuterInner(), SparseMatrix< Scalar, RowMajor >::insertBackByOuterInnerUnordered(), SparseMatrix< Scalar, RowMajor >::insertBackUncompressed(), SparseMatrix< Scalar, RowMajor >::insertCompressed(), SparseMatrix< Scalar, RowMajor >::insertUncompressed(), SparseMatrix< Scalar, RowMajor >::makeCompressed(), SparseMatrix< Scalar, RowMajor >::nonZeros(), SparseMatrix< Scalar, RowMajor >::operator=(), SparseMatrix< Scalar, RowMajor >::prune(), SparseMatrix< Scalar, RowMajor >::reserve(), SparseMatrix< Scalar, RowMajor >::reserveInnerVectors(), SparseMatrix< Scalar, RowMajor >::resize(), SparseMatrix< Scalar, RowMajor >::resizeNonZeros(), SparseMatrix< Scalar, RowMajor >::setZero(), SparseMatrix< Scalar, RowMajor >::startVec(), SparseMatrix< Scalar, RowMajor >::swap(), and SparseMatrix< Scalar, RowMajor >::valuePtr().
|
protected |
Referenced by SparseMatrix< Scalar, RowMajor >::coeff(), SparseMatrix< Scalar, RowMajor >::coeffRef(), SparseMatrix< Scalar, RowMajor >::initAssignment(), SparseMatrix< Scalar, RowMajor >::innerNonZeroPtr(), SparseMatrix< Scalar, RowMajor >::innerNonZeros(), SparseMatrix< Scalar, RowMajor >::insertBackUncompressed(), SparseMatrix< Scalar, RowMajor >::insertUncompressed(), SparseMatrix< Scalar, RowMajor >::isCompressed(), SparseMatrix< Scalar, RowMajor >::makeCompressed(), SparseMatrix< Scalar, RowMajor >::nonZeros(), SparseMatrix< Scalar, RowMajor >::reserveInnerVectors(), SparseMatrix< Scalar, RowMajor >::resize(), SparseMatrix< Scalar, RowMajor >::setZero(), SparseMatrix< Scalar, RowMajor >::swap(), and SparseMatrix< Scalar, RowMajor >::~SparseMatrix().
|
protected |
|
protectedinherited |
|
protected |
Referenced by SparseMatrix< Scalar, RowMajor >::coeff(), SparseMatrix< Scalar, RowMajor >::coeffRef(), SparseMatrix< Scalar, RowMajor >::finalize(), SparseMatrix< Scalar, RowMajor >::insertBackByOuterInner(), SparseMatrix< Scalar, RowMajor >::insertBackByOuterInnerUnordered(), SparseMatrix< Scalar, RowMajor >::insertBackUncompressed(), SparseMatrix< Scalar, RowMajor >::insertCompressed(), SparseMatrix< Scalar, RowMajor >::insertUncompressed(), SparseMatrix< Scalar, RowMajor >::makeCompressed(), SparseMatrix< Scalar, RowMajor >::operator=(), SparseMatrix< Scalar, RowMajor >::outerIndexPtr(), SparseMatrix< Scalar, RowMajor >::prune(), SparseMatrix< Scalar, RowMajor >::reserveInnerVectors(), SparseMatrix< Scalar, RowMajor >::resize(), SparseMatrix< Scalar, RowMajor >::setZero(), SparseMatrix< Scalar, RowMajor >::startVec(), SparseMatrix< Scalar, RowMajor >::swap(), and SparseMatrix< Scalar, RowMajor >::~SparseMatrix().
|
protected |
Referenced by SparseMatrix< Scalar, RowMajor >::cols(), SparseMatrix< Scalar, RowMajor >::finalize(), SparseMatrix< Scalar, RowMajor >::innerNonZeros(), SparseMatrix< Scalar, RowMajor >::insertCompressed(), SparseMatrix< Scalar, RowMajor >::makeCompressed(), SparseMatrix< Scalar, RowMajor >::operator=(), SparseMatrix< Scalar, RowMajor >::outerSize(), SparseMatrix< Scalar, RowMajor >::prune(), SparseMatrix< Scalar, RowMajor >::reserveInnerVectors(), SparseMatrix< Scalar, RowMajor >::resize(), SparseMatrix< Scalar, RowMajor >::rows(), SparseMatrix< Scalar, RowMajor >::setZero(), and SparseMatrix< Scalar, RowMajor >::swap().