![]() |
Eigen
3.2.0
|
Base class of any sparse matrices or sparse expressions.
Derived | 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_SPARSEMATRIXBASE_PLUGIN . |
Public Types | |
enum | { RowsAtCompileTime, ColsAtCompileTime, SizeAtCompileTime , IsVectorAtCompileTime, Flags, CoeffReadCost } |
Public Member Functions | |
template<typename CustomBinaryOp , typename OtherDerived > | |
const CwiseBinaryOp < CustomBinaryOp, const Derived, const OtherDerived > | binaryExpr (const Eigen::SparseMatrixBase< OtherDerived > &other, const CustomBinaryOp &func=CustomBinaryOp()) const |
Block< Derived > | block (Index startRow, Index startCol, Index blockRows, Index blockCols) |
const Block< const Derived > | block (Index startRow, Index startCol, Index blockRows, Index blockCols) const |
template<int BlockRows, int BlockCols> | |
Block< Derived, BlockRows, BlockCols > | block (Index startRow, Index startCol) |
template<int BlockRows, int BlockCols> | |
const Block< const Derived, BlockRows, BlockCols > | block (Index startRow, Index startCol) const |
template<int BlockRows, int BlockCols> | |
Block< Derived, BlockRows, BlockCols > | block (Index startRow, Index startCol, Index blockRows, Index blockCols) |
template<int BlockRows, int BlockCols> | |
const Block< const Derived, BlockRows, BlockCols > | block (Index startRow, Index startCol, Index blockRows, Index blockCols) const |
Block< Derived > | bottomLeftCorner (Index cRows, Index cCols) |
const Block< const Derived > | bottomLeftCorner (Index cRows, Index cCols) const |
template<int CRows, int CCols> | |
Block< Derived, CRows, CCols > | bottomLeftCorner () |
template<int CRows, int CCols> | |
const Block< const Derived, CRows, CCols > | bottomLeftCorner () const |
template<int CRows, int CCols> | |
Block< Derived, CRows, CCols > | bottomLeftCorner (Index cRows, Index cCols) |
template<int CRows, int CCols> | |
const Block< const Derived, CRows, CCols > | bottomLeftCorner (Index cRows, Index cCols) const |
Block< Derived > | bottomRightCorner (Index cRows, Index cCols) |
const Block< const Derived > | bottomRightCorner (Index cRows, Index cCols) const |
template<int CRows, int CCols> | |
Block< Derived, CRows, CCols > | bottomRightCorner () |
template<int CRows, int CCols> | |
const Block< const Derived, CRows, CCols > | bottomRightCorner () const |
template<int CRows, int CCols> | |
Block< Derived, CRows, CCols > | bottomRightCorner (Index cRows, Index cCols) |
template<int CRows, int CCols> | |
const Block< const Derived, CRows, CCols > | bottomRightCorner (Index cRows, Index cCols) const |
RowsBlockXpr | bottomRows (Index n) |
ConstRowsBlockXpr | bottomRows (Index n) const |
template<int N> | |
NRowsBlockXpr< N >::Type | bottomRows () |
template<int N> | |
ConstNRowsBlockXpr< N >::Type | bottomRows () const |
template<typename NewType > | |
internal::cast_return_type < Derived, const CwiseUnaryOp < internal::scalar_cast_op < typename internal::traits < Derived >::Scalar, NewType > , const Derived > >::type | cast () const |
ColXpr | col (Index i) |
ConstColXpr | col (Index i) const |
Index | cols () const |
ConjugateReturnType | conjugate () const |
const CwiseUnaryOp < internal::scalar_abs_op < Scalar >, const Derived > | cwiseAbs () const |
const CwiseUnaryOp < internal::scalar_abs2_op < Scalar >, const Derived > | cwiseAbs2 () const |
template<typename OtherDerived > | |
const CwiseBinaryOp < std::equal_to< Scalar > , const Derived, const OtherDerived > | cwiseEqual (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const CwiseUnaryOp < std::binder1st < std::equal_to< Scalar > >, const Derived > | cwiseEqual (const Scalar &s) const |
const CwiseUnaryOp < internal::scalar_inverse_op < Scalar >, const Derived > | cwiseInverse () const |
template<typename OtherDerived > | |
const CwiseBinaryOp < internal::scalar_max_op < Scalar >, const Derived, const OtherDerived > | cwiseMax (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const CwiseBinaryOp < internal::scalar_max_op < Scalar >, const Derived, const ConstantReturnType > | cwiseMax (const Scalar &other) const |
template<typename OtherDerived > | |
const CwiseBinaryOp < internal::scalar_min_op < Scalar >, const Derived, const OtherDerived > | cwiseMin (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const CwiseBinaryOp < internal::scalar_min_op < Scalar >, const Derived, const ConstantReturnType > | cwiseMin (const Scalar &other) const |
template<typename OtherDerived > | |
const CwiseBinaryOp < std::not_equal_to< Scalar > , const Derived, const OtherDerived > | cwiseNotEqual (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
template<typename OtherDerived > | |
const CwiseBinaryOp < internal::scalar_product_op < typename Derived::Scalar, typename OtherDerived::Scalar > , const Derived, const OtherDerived > | cwiseProduct (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
template<typename OtherDerived > | |
const CwiseBinaryOp < internal::scalar_quotient_op < Scalar >, const Derived, const OtherDerived > | cwiseQuotient (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const CwiseUnaryOp < internal::scalar_sqrt_op < Scalar >, const Derived > | cwiseSqrt () const |
Derived & | derived () |
const Derived & | derived () const |
const internal::eval< Derived > ::type | eval () const |
SegmentReturnType | head (Index vecSize) |
ConstSegmentReturnType | head (Index vecSize) const |
template<int Size> | |
FixedSegmentReturnType< Size > ::Type | head () |
template<int Size> | |
ConstFixedSegmentReturnType < Size >::Type | head () const |
const ImagReturnType | imag () const |
NonConstImagReturnType | imag () |
Index | innerSize () const |
InnerVectorReturnType | innerVector (Index outer) |
const ConstInnerVectorReturnType | innerVector (Index outer) const |
Block< Derived, Dynamic, Dynamic, true > | innerVectors (Index outerStart, Index outerSize) |
const Block< const Derived, Dynamic, Dynamic, true > | innerVectors (Index outerStart, Index outerSize) const |
bool | isVector () const |
ColsBlockXpr | leftCols (Index n) |
ConstColsBlockXpr | leftCols (Index n) const |
template<int N> | |
NColsBlockXpr< N >::Type | leftCols () |
template<int N> | |
ConstNColsBlockXpr< N >::Type | leftCols () const |
ColsBlockXpr | middleCols (Index startCol, Index numCols) |
ConstColsBlockXpr | middleCols (Index startCol, Index numCols) const |
template<int N> | |
NColsBlockXpr< N >::Type | middleCols (Index startCol) |
template<int N> | |
ConstNColsBlockXpr< N >::Type | middleCols (Index startCol) const |
RowsBlockXpr | middleRows (Index startRow, Index numRows) |
ConstRowsBlockXpr | middleRows (Index startRow, Index numRows) const |
template<int N> | |
NRowsBlockXpr< N >::Type | middleRows (Index startRow) |
template<int N> | |
ConstNRowsBlockXpr< N >::Type | middleRows (Index startRow) const |
Index | nonZeros () const |
const ScalarMultipleReturnType | operator* (const Scalar &scalar) const |
const CwiseUnaryOp < internal::scalar_multiple2_op < Scalar, std::complex< Scalar > >, const Derived > | operator* (const std::complex< Scalar > &scalar) const |
template<typename OtherDerived > | |
const SparseSparseProductReturnType < Derived, OtherDerived > ::Type | operator* (const SparseMatrixBase< OtherDerived > &other) const |
template<typename OtherDerived > | |
const SparseDenseProductReturnType < Derived, OtherDerived > ::Type | operator* (const MatrixBase< OtherDerived > &other) const |
template<typename OtherDerived > | |
const CwiseBinaryOp < internal::scalar_sum_op < Scalar >, const Derived, const OtherDerived > | operator+ (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
template<typename OtherDerived > | |
const CwiseBinaryOp < internal::scalar_difference_op < Scalar >, const Derived, const OtherDerived > | operator- (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const CwiseUnaryOp < internal::scalar_opposite_op < typename internal::traits < Derived >::Scalar >, const Derived > | operator- () const |
const CwiseUnaryOp < internal::scalar_quotient1_op < typename internal::traits < Derived >::Scalar >, const Derived > | operator/ (const Scalar &scalar) const |
Index | outerSize () const |
RealReturnType | real () const |
NonConstRealReturnType | real () |
ColsBlockXpr | rightCols (Index n) |
ConstColsBlockXpr | rightCols (Index n) const |
template<int N> | |
NColsBlockXpr< N >::Type | rightCols () |
template<int N> | |
ConstNColsBlockXpr< N >::Type | rightCols () const |
RowXpr | row (Index i) |
ConstRowXpr | row (Index i) const |
Index | rows () const |
SegmentReturnType | segment (Index start, Index vecSize) |
ConstSegmentReturnType | segment (Index start, Index vecSize) const |
template<int Size> | |
FixedSegmentReturnType< Size > ::Type | segment (Index start) |
template<int Size> | |
ConstFixedSegmentReturnType < Size >::Type | segment (Index start) const |
Index | size () const |
SegmentReturnType | tail (Index vecSize) |
ConstSegmentReturnType | tail (Index vecSize) const |
template<int Size> | |
FixedSegmentReturnType< Size > ::Type | tail () |
template<int Size> | |
ConstFixedSegmentReturnType < Size >::Type | tail () const |
Block< Derived > | topLeftCorner (Index cRows, Index cCols) |
const Block< const Derived > | topLeftCorner (Index cRows, Index cCols) const |
template<int CRows, int CCols> | |
Block< Derived, CRows, CCols > | topLeftCorner () |
template<int CRows, int CCols> | |
const Block< const Derived, CRows, CCols > | topLeftCorner () const |
template<int CRows, int CCols> | |
Block< Derived, CRows, CCols > | topLeftCorner (Index cRows, Index cCols) |
template<int CRows, int CCols> | |
const Block< const Derived, CRows, CCols > | topLeftCorner (Index cRows, Index cCols) const |
Block< Derived > | topRightCorner (Index cRows, Index cCols) |
const Block< const Derived > | topRightCorner (Index cRows, Index cCols) const |
template<int CRows, int CCols> | |
Block< Derived, CRows, CCols > | topRightCorner () |
template<int CRows, int CCols> | |
const Block< const Derived, CRows, CCols > | topRightCorner () const |
template<int CRows, int CCols> | |
Block< Derived, CRows, CCols > | topRightCorner (Index cRows, Index cCols) |
template<int CRows, int CCols> | |
const Block< const Derived, CRows, CCols > | topRightCorner (Index cRows, Index cCols) const |
RowsBlockXpr | topRows (Index n) |
ConstRowsBlockXpr | topRows (Index n) const |
template<int N> | |
NRowsBlockXpr< N >::Type | topRows () |
template<int N> | |
ConstNRowsBlockXpr< N >::Type | topRows () const |
SparseSymmetricPermutationProduct < Derived, Upper|Lower > | twistedBy (const PermutationMatrix< Dynamic, Dynamic, Index > &perm) const |
template<typename CustomUnaryOp > | |
const CwiseUnaryOp < CustomUnaryOp, const Derived > | unaryExpr (const CustomUnaryOp &func=CustomUnaryOp()) const |
Apply a unary operator coefficient-wise. More... | |
template<typename CustomViewOp > | |
const CwiseUnaryView < CustomViewOp, const Derived > | unaryViewExpr (const CustomViewOp &func=CustomViewOp()) const |
Friends | |
template<typename OtherDerived > | |
const DenseSparseProductReturnType < OtherDerived, Derived > ::Type | operator* (const MatrixBase< OtherDerived > &lhs, const Derived &rhs) |
anonymous enum |
Enumerator | |
---|---|
RowsAtCompileTime |
The number of rows at compile-time. This is just a copy of the value provided by the Derived type. If a value is not known at compile-time, it is set to the Dynamic constant.
|
ColsAtCompileTime |
The number of columns at compile-time. This is just a copy of the value provided by the Derived type. If a value is not known at compile-time, it is set to the Dynamic constant.
|
SizeAtCompileTime |
This is equal to the number of coefficients, i.e. the number of rows times the number of columns, or to Dynamic if this is not known at compile-time.
|
IsVectorAtCompileTime |
This is set to true if either the number of rows or the number of columns is known at compile-time to be equal to 1. Indeed, in that case, we are dealing with a column-vector (if there is only one column) or with a row-vector (if there is only one row). |
Flags |
This stores expression Flags flags which may or may not be inherited by new expressions constructed from this one. See the list of flags. |
CoeffReadCost |
This is a rough measure of how expensive it is to read one coefficient from this expression. |
|
inline |
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)
|
inline |
startRow | the first row in the block |
startCol | the first column in the block |
blockRows | the number of rows in the block |
blockCols | the number of columns in the block |
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.block(1, 1, 2, 2): -6 1 -3 0 Now the matrix m is: 7 9 -5 -3 -2 0 0 0 6 0 0 9 6 6 3 9
|
inline |
This is the const version of block(Index,Index,Index,Index).
|
inline |
The template parameters BlockRows and BlockCols are the number of rows and columns in the block.
startRow | the first row in the block |
startCol | the first column in the block |
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.block<2,2>(1,1): -6 1 -3 0 Now the matrix m is: 7 9 -5 -3 -2 0 0 0 6 0 0 9 6 6 3 9
|
inline |
This is the const version of block<>(Index, Index).
|
inline |
BlockRows | number of rows in block as specified at compile time |
BlockCols | number of columns in block as specified at compile time |
startRow | the first row in the block |
startCol | the first column in the block |
blockRows | number of rows in block as specified at run time |
blockCols | number of columns in block as specified at run time |
This function is mainly useful for blocks where the number of rows is specified at compile time and the number of columns is specified at run time, or vice versa. The compile-time and run-time information should not contradict. In other words, blockRows should equal BlockRows unless BlockRows is Dynamic, and the same for the number of columns.
Example:
Output:
Matrix4i m = Matrix4i::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is the block:" << endl << m.block<2, Dynamic>(1, 1, 2, 3) << endl; m.block<2, Dynamic>(1, 1, 2, 3).setZero(); cout << "Now the matrix m is:" << endl << m << endl;
|
inline |
This is the const version of block<>(Index, Index, Index, Index).
|
inline |
cRows | the number of rows in the corner |
cCols | the number of columns in the corner |
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.bottomLeftCorner(2, 2): 6 -3 6 6 Now the matrix m is: 7 9 -5 -3 -2 -6 1 0 0 0 0 9 0 0 3 9
|
inline |
This is the const version of bottomLeftCorner(Index, Index).
|
inline |
The template parameters CRows and CCols are the number of rows and columns in the corner.
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.bottomLeftCorner<2,2>(): 6 -3 6 6 Now the matrix m is: 7 9 -5 -3 -2 -6 1 0 0 0 0 9 0 0 3 9
|
inline |
This is the const version of bottomLeftCorner<int, int>().
|
inline |
CRows | number of rows in corner as specified at compile time |
CCols | number of columns in corner as specified at compile time |
cRows | number of rows in corner as specified at run time |
cCols | number of columns in corner as specified at run time |
This function is mainly useful for corners where the number of rows is specified at compile time and the number of columns is specified at run time, or vice versa. The compile-time and run-time information should not contradict. In other words, cRows should equal CRows unless CRows is Dynamic, and the same for the number of columns.
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.bottomLeftCorner<2,Dynamic>(2,2): 6 -3 6 6 Now the matrix m is: 7 9 -5 -3 -2 -6 1 0 0 0 0 9 0 0 3 9
|
inline |
This is the const version of bottomLeftCorner<int, int>(Index, Index).
|
inline |
cRows | the number of rows in the corner |
cCols | the number of columns in the corner |
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.bottomRightCorner(2, 2): 0 9 3 9 Now the matrix m is: 7 9 -5 -3 -2 -6 1 0 6 -3 0 0 6 6 0 0
|
inline |
This is the const version of bottomRightCorner(Index, Index).
|
inline |
The template parameters CRows and CCols are the number of rows and columns in the corner.
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.bottomRightCorner<2,2>(): 0 9 3 9 Now the matrix m is: 7 9 -5 -3 -2 -6 1 0 6 -3 0 0 6 6 0 0
|
inline |
This is the const version of bottomRightCorner<int, int>().
|
inline |
CRows | number of rows in corner as specified at compile time |
CCols | number of columns in corner as specified at compile time |
cRows | number of rows in corner as specified at run time |
cCols | number of columns in corner as specified at run time |
This function is mainly useful for corners where the number of rows is specified at compile time and the number of columns is specified at run time, or vice versa. The compile-time and run-time information should not contradict. In other words, cRows should equal CRows unless CRows is Dynamic, and the same for the number of columns.
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.bottomRightCorner<2,Dynamic>(2,2): 0 9 3 9 Now the matrix m is: 7 9 -5 -3 -2 -6 1 0 6 -3 0 0 6 6 0 0
|
inline |
This is the const version of bottomRightCorner<int, int>(Index, Index).
|
inline |
n | the number of rows in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.bottomRows(2): 6 -3 0 9 6 6 3 9 Now the array a is: 7 9 -5 -3 -2 -6 1 0 0 0 0 0 0 0 0 0
|
inline |
This is the const version of bottomRows(Index).
|
inline |
N | the number of rows in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.bottomRows<2>(): 6 -3 0 9 6 6 3 9 Now the array a is: 7 9 -5 -3 -2 -6 1 0 0 0 0 0 0 0 0 0
|
inline |
This is the const version of bottomRows<int>().
|
inline |
The template parameter NewScalar is the type we are casting the scalars to.
|
inline |
Example:
Output:
1 4 0 0 5 0 0 6 1
|
inline |
This is the const version of col().
|
inline |
Referenced by SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::innerSize(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::outerSize(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::size(), and SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::topLeftCorner().
|
inline |
*this
.
|
inline |
*this
Example:
Output:
2 4 6 5 1 0
|
inline |
*this
Example:
Output:
4 16 36 25 1 0
|
inline |
Example:
Output:
Comparing m with identity matrix: 1 1 0 1 Number of coefficients that are equal: 3
|
inline |
*this
and a scalar s
|
inline |
Example:
Output:
0.5 2 1 0.333 4 1
|
inline |
Example:
Output:
4 3 4
|
inline |
|
inline |
Example:
Output:
2 2 3
|
inline |
|
inline |
Example:
Output:
Comparing m with identity matrix: 0 0 1 0 Number of coefficients that are not equal: 1
|
inline |
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
|
inline |
Example:
Output:
0.5 1.5 1.33
|
inline |
Example:
Output:
1 1.41 2
|
inlineinherited |
Referenced by MatrixBase< Derived >::applyOnTheLeft(), MatrixBase< Derived >::applyOnTheRight(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > >::applyTranspositionOnTheLeft(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > >::applyTranspositionOnTheRight(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::binaryExpr(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::bottomLeftCorner(), EigenBase< SparseSymmetricPermutationProduct< MatrixType, UpLo > >::cols(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::cols(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::eval(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > >::indices(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > >::inverse(), RotationBase< Derived, 3 >::operator*(), SparseSelfAdjointView< MatrixType, UpLo >::operator*(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > >::operator*(), SparseMatrixBase< Derived >::operator*(), Transform< Scalar, Dim, Mode, _Options >::operator*(), Eigen::operator*(), MatrixBase< Derived >::operator*=(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > >::operator=(), DenseBase< Derived >::operator=(), Transform< Scalar, Dim, Mode, _Options >::operator=(), PlainObjectBase< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::operator=(), PlainObjectBase< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::PlainObjectBase(), PlainObjectBase< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::resizeLike(), EigenBase< SparseSymmetricPermutationProduct< MatrixType, UpLo > >::rows(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::rows(), SimplicialCholeskyBase< SimplicialLDLT< _MatrixType, _UpLo > >::solve(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::solve(), SparseLU< _MatrixType, _OrderingType >::solve(), UmfPackLU< _MatrixType >::solve(), CholmodBase< _MatrixType, _UpLo, CholmodSimplicialLLT< _MatrixType, _UpLo > >::solve(), SuperLUBase< _MatrixType, SuperILU< _MatrixType > >::solve(), SparseMatrix< Scalar, RowMajor >::SparseMatrix(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > >::toDenseMatrix(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::topLeftCorner(), Transform< Scalar, Dim, Mode, _Options >::Transform(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType > >::transpose(), and SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::unaryViewExpr().
|
inlineinherited |
|
inline |
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.
|
inline |
This is only for vectors (either row-vectors or column-vectors), i.e. matrices which are known at compile-time to have either one row or one column.
vecSize | the number of coefficients in the block |
Example:
Output:
Here is the vector v: 7 -2 6 6 Here is v.head(2): 7 -2 Now the vector v is: 0 0 6 6
|
inline |
This is the const version of head(Index).
|
inline |
This is only for vectors (either row-vectors or column-vectors), i.e. matrices which are known at compile-time to have either one row or one column.
The template parameter Size is the number of coefficients in the block
Example:
Output:
Here is the vector v: 7 -2 6 6 Here is v.head(2): 7 -2 Now the vector v is: 0 0 6 6
|
inline |
This is the const version of head<int>().
|
inline |
*this
.
|
inline |
*this
.
|
inline |
SparseMatrixBase< Derived >::InnerVectorReturnType innerVector | ( | Index | outer) |
*this
if *this
is col-major (resp. row-major). const SparseMatrixBase< Derived >::ConstInnerVectorReturnType innerVector | ( | Index | outer) | const |
*this
if *this
is col-major (resp. row-major). Read-only. *this
if *this
is col-major (resp. row-major). const Block< const Derived, Dynamic, Dynamic, true > innerVectors | ( | Index | outerStart, |
Index | outerSize | ||
) | const |
*this
if *this
is col-major (resp. row-major). Read-only.
|
inline |
|
inline |
n | the number of columns in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.leftCols(2): 7 9 -2 -6 6 -3 6 6 Now the array a is: 0 0 -5 -3 0 0 1 0 0 0 0 9 0 0 3 9
|
inline |
This is the const version of leftCols(Index).
|
inline |
N | the number of columns in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.leftCols<2>(): 7 9 -2 -6 6 -3 6 6 Now the array a is: 0 0 -5 -3 0 0 1 0 0 0 0 9 0 0 3 9
|
inline |
This is the const version of leftCols<int>().
|
inline |
startCol | the index of the first column in the block |
numCols | the number of columns in the block |
Example:
Output:
A = 7 -6 0 9 -10 -2 -3 3 3 -5 6 6 -3 5 -8 6 -5 0 -8 6 9 1 9 2 -7 A(1..3,:) = -6 0 9 -3 3 3 6 -3 5 -5 0 -8 1 9 2
|
inline |
This is the const version of middleCols(Index,Index).
|
inline |
N | the number of columns in the block |
startCol | the index of the first column in the block |
Example:
Output:
A = 7 -6 0 9 -10 -2 -3 3 3 -5 6 6 -3 5 -8 6 -5 0 -8 6 9 1 9 2 -7 A(:,1..3) = -6 0 9 -3 3 3 6 -3 5 -5 0 -8 1 9 2
|
inline |
This is the const version of middleCols<int>().
|
inline |
startRow | the index of the first row in the block |
numRows | the number of rows in the block |
Example:
Output:
A = 7 -6 0 9 -10 -2 -3 3 3 -5 6 6 -3 5 -8 6 -5 0 -8 6 9 1 9 2 -7 A(2..3,:) = 6 6 -3 5 -8 6 -5 0 -8 6
|
inline |
This is the const version of middleRows(Index,Index).
|
inline |
N | the number of rows in the block |
startRow | the index of the first row in the block |
Example:
Output:
A = 7 -6 0 9 -10 -2 -3 3 3 -5 6 6 -3 5 -8 6 -5 0 -8 6 9 1 9 2 -7 A(1..3,:) = -2 -3 3 3 -5 6 6 -3 5 -8 6 -5 0 -8 6
|
inline |
This is the const version of middleRows<int>().
|
inline |
|
inline |
*this
scaled by the scalar factor scalar
|
inline |
Overloaded for efficient real matrix times complex scalar value
|
inline |
ref
is a meaningful non zero reference value. References EigenBase< Derived >::derived().
|
inline |
sparse * dense (returns a dense object unless it is an outer product)
const CwiseBinaryOp< internal::scalar_sum_op <Scalar>, const Derived, const OtherDerived> operator+ | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other) | const |
*this
and other const CwiseBinaryOp< internal::scalar_difference_op <Scalar>, const Derived, const OtherDerived> operator- | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other) | const |
*this
and other
|
inline |
*this
|
inline |
*this
divided by the scalar value scalar
|
inline |
|
inline |
*this
.
|
inline |
*this
.
|
inline |
n | the number of columns in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.rightCols(2): -5 -3 1 0 0 9 3 9 Now the array a is: 7 9 0 0 -2 -6 0 0 6 -3 0 0 6 6 0 0
|
inline |
This is the const version of rightCols(Index).
|
inline |
N | the number of columns in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.rightCols<2>(): -5 -3 1 0 0 9 3 9 Now the array a is: 7 9 0 0 -2 -6 0 0 6 -3 0 0 6 6 0 0
|
inline |
This is the const version of rightCols<int>().
|
inline |
Example:
Output:
1 0 0 4 5 6 0 0 1
Referenced by SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::bottomRightCorner().
|
inline |
This is the const version of row().
|
inline |
Referenced by SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::bottomRightCorner(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::innerSize(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::outerSize(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::size(), SimplicialCholeskyBase< SimplicialLDLT< _MatrixType, _UpLo > >::solve(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::solve(), SparseLU< _MatrixType, _OrderingType >::solve(), UmfPackLU< _MatrixType >::solve(), CholmodBase< _MatrixType, _UpLo, CholmodSimplicialLLT< _MatrixType, _UpLo > >::solve(), SuperLUBase< _MatrixType, SuperILU< _MatrixType > >::solve(), and SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::topLeftCorner().
|
inline |
This is only for vectors (either row-vectors or column-vectors), i.e. matrices which are known at compile-time to have either one row or one column.
start | the first coefficient in the segment |
vecSize | the number of coefficients in the segment |
Example:
Output:
Here is the vector v: 7 -2 6 6 Here is v.segment(1, 2): -2 6 Now the vector v is: 7 0 0 6
|
inline |
This is the const version of segment(Index,Index).
|
inline |
*this
This is only for vectors (either row-vectors or column-vectors), i.e. matrices which are known at compile-time to have either one row or one column.
The template parameter Size is the number of coefficients in the block
start | the index of the first element of the sub-vector |
Example:
Output:
Here is the vector v: 7 -2 6 6 Here is v.segment<2>(1): -2 6 Now the vector v is: 7 -2 0 0
|
inline |
This is the const version of segment<int>(Index).
|
inline |
|
inline |
This is only for vectors (either row-vectors or column-vectors), i.e. matrices which are known at compile-time to have either one row or one column.
vecSize | the number of coefficients in the block |
Example:
Output:
Here is the vector v: 7 -2 6 6 Here is v.tail(2): 6 6 Now the vector v is: 7 -2 0 0
|
inline |
This is the const version of tail(Index).
|
inline |
This is only for vectors (either row-vectors or column-vectors), i.e. matrices which are known at compile-time to have either one row or one column.
The template parameter Size is the number of coefficients in the block
Example:
Output:
Here is the vector v: 7 -2 6 6 Here is v.tail(2): 6 6 Now the vector v is: 7 -2 0 0
|
inline |
This is the const version of tail<int>.
|
inline |
cRows | the number of rows in the corner |
cCols | the number of columns in the corner |
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.topLeftCorner(2, 2): 7 9 -2 -6 Now the matrix m is: 0 0 -5 -3 0 0 1 0 6 -3 0 9 6 6 3 9
|
inline |
This is the const version of topLeftCorner(Index, Index).
|
inline |
The template parameters CRows and CCols are the number of rows and columns in the corner.
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.topLeftCorner<2,2>(): 7 9 -2 -6 Now the matrix m is: 0 0 -5 -3 0 0 1 0 6 -3 0 9 6 6 3 9
|
inline |
This is the const version of topLeftCorner<int, int>().
|
inline |
CRows | number of rows in corner as specified at compile time |
CCols | number of columns in corner as specified at compile time |
cRows | number of rows in corner as specified at run time |
cCols | number of columns in corner as specified at run time |
This function is mainly useful for corners where the number of rows is specified at compile time and the number of columns is specified at run time, or vice versa. The compile-time and run-time information should not contradict. In other words, cRows should equal CRows unless CRows is Dynamic, and the same for the number of columns.
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.topLeftCorner<2,Dynamic>(2,2): 7 9 -2 -6 Now the matrix m is: 0 0 -5 -3 0 0 1 0 6 -3 0 9 6 6 3 9
|
inline |
This is the const version of topLeftCorner<int, int>(Index, Index).
|
inline |
cRows | the number of rows in the corner |
cCols | the number of columns in the corner |
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.topRightCorner(2, 2): -5 -3 1 0 Now the matrix m is: 7 9 0 0 -2 -6 0 0 6 -3 0 9 6 6 3 9
|
inline |
This is the const version of topRightCorner(Index, Index).
|
inline |
CRows | the number of rows in the corner |
CCols | the number of columns in the corner |
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.topRightCorner<2,2>(): -5 -3 1 0 Now the matrix m is: 7 9 0 0 -2 -6 0 0 6 -3 0 9 6 6 3 9
|
inline |
This is the const version of topRightCorner<int, int>().
|
inline |
CRows | number of rows in corner as specified at compile time |
CCols | number of columns in corner as specified at compile time |
cRows | number of rows in corner as specified at run time |
cCols | number of columns in corner as specified at run time |
This function is mainly useful for corners where the number of rows is specified at compile time and the number of columns is specified at run time, or vice versa. The compile-time and run-time information should not contradict. In other words, cRows should equal CRows unless CRows is Dynamic, and the same for the number of columns.
Example:
Output:
Here is the matrix m: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is m.topRightCorner<2,Dynamic>(2,2): -5 -3 1 0 Now the matrix m is: 7 9 0 0 -2 -6 0 0 6 -3 0 9 6 6 3 9
|
inline |
This is the const version of topRightCorner<int, int>(Index, Index).
|
inline |
n | the number of rows in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.topRows(2): 7 9 -5 -3 -2 -6 1 0 Now the array a is: 0 0 0 0 0 0 0 0 6 -3 0 9 6 6 3 9
|
inline |
This is the const version of topRows(Index).
|
inline |
N | the number of rows in the block |
Example:
Output:
Here is the array a: 7 9 -5 -3 -2 -6 1 0 6 -3 0 9 6 6 3 9 Here is a.topRows<2>(): 7 9 -5 -3 -2 -6 1 0 Now the array a is: 0 0 0 0 0 0 0 0 6 -3 0 9 6 6 3 9
|
inline |
This is the const version of topRows<int>().
|
inline |
*this
|
inline |
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
|
inline |
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
|
friend |
dense * sparse (return a dense object unless it is an outer product)