$treeview $search $mathjax
Eigen
3.2.5
$projectbrief
|
$projectbrief
|
$searchbox |
Base class of any sparse matrices or sparse expressions. More...
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 |
template<int BlockRows, int BlockCols> | |
const Block< const Derived, BlockRows, BlockCols > | block (Index startRow, Index startCol, Index blockRows, Index blockCols) 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) const |
template<int BlockRows, int BlockCols> | |
Block< Derived, BlockRows, BlockCols > | block (Index startRow, Index startCol) |
const Block< const Derived > | block (Index startRow, Index startCol, Index blockRows, Index blockCols) const |
Block< Derived > | block (Index startRow, Index startCol, Index blockRows, Index blockCols) |
template<int CRows, int CCols> | |
const Block< const Derived, CRows, CCols > | bottomLeftCorner (Index cRows, Index cCols) 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 () const |
template<int CRows, int CCols> | |
Block< Derived, CRows, CCols > | bottomLeftCorner () |
const Block< const Derived > | bottomLeftCorner (Index cRows, Index cCols) const |
Block< Derived > | bottomLeftCorner (Index cRows, Index cCols) |
template<int CRows, int CCols> | |
const Block< const Derived, CRows, CCols > | bottomRightCorner (Index cRows, Index cCols) 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 () const |
template<int CRows, int CCols> | |
Block< Derived, CRows, CCols > | bottomRightCorner () |
const Block< const Derived > | bottomRightCorner (Index cRows, Index cCols) const |
Block< Derived > | bottomRightCorner (Index cRows, Index cCols) |
template<int N> | |
ConstNRowsBlockXpr< N >::Type | bottomRows (Index n=N) const |
template<int N> | |
NRowsBlockXpr< N >::Type | bottomRows (Index n=N) |
ConstRowsBlockXpr | bottomRows (Index n) const |
RowsBlockXpr | bottomRows (Index n) |
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 |
ConstColXpr | col (Index i) const |
ColXpr | col (Index i) |
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 |
const CwiseScalarEqualReturnType | cwiseEqual (const Scalar &s) const |
template<typename OtherDerived > | |
const CwiseBinaryOp < std::equal_to< Scalar > , const Derived, const OtherDerived > | cwiseEqual (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const CwiseUnaryOp < internal::scalar_inverse_op < Scalar >, const Derived > | cwiseInverse () const |
const CwiseBinaryOp < internal::scalar_max_op < Scalar >, const Derived, const ConstantReturnType > | cwiseMax (const Scalar &other) 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_min_op < Scalar >, const Derived, const ConstantReturnType > | cwiseMin (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 |
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 |
const Derived & | derived () const |
Derived & | derived () |
const internal::eval< Derived > ::type | eval () const |
template<int N> | |
ConstFixedSegmentReturnType< N > ::Type | head (Index n=N) const |
template<int N> | |
FixedSegmentReturnType< N >::Type | head (Index n=N) |
ConstSegmentReturnType | head (Index n) const |
SegmentReturnType | head (Index n) |
NonConstImagReturnType | imag () |
const ImagReturnType | imag () const |
Index | innerSize () const |
const ConstInnerVectorReturnType | innerVector (Index outer) const |
InnerVectorReturnType | innerVector (Index outer) |
const ConstInnerVectorsReturnType | innerVectors (Index outerStart, Index outerSize) const |
InnerVectorsReturnType | innerVectors (Index outerStart, Index outerSize) |
bool | isVector () const |
template<int N> | |
ConstNColsBlockXpr< N >::Type | leftCols (Index n=N) const |
template<int N> | |
NColsBlockXpr< N >::Type | leftCols (Index n=N) |
ConstColsBlockXpr | leftCols (Index n) const |
ColsBlockXpr | leftCols (Index n) |
template<int N> | |
ConstNColsBlockXpr< N >::Type | middleCols (Index startCol, Index n=N) const |
template<int N> | |
NColsBlockXpr< N >::Type | middleCols (Index startCol, Index n=N) |
ConstColsBlockXpr | middleCols (Index startCol, Index numCols) const |
ColsBlockXpr | middleCols (Index startCol, Index numCols) |
template<int N> | |
ConstNRowsBlockXpr< N >::Type | middleRows (Index startRow, Index n=N) const |
template<int N> | |
NRowsBlockXpr< N >::Type | middleRows (Index startRow, Index n=N) |
ConstRowsBlockXpr | middleRows (Index startRow, Index n) const |
RowsBlockXpr | middleRows (Index startRow, Index n) |
Index | nonZeros () const |
template<typename OtherDerived > | |
const SparseDenseProductReturnType < Derived, OtherDerived > ::Type | operator* (const MatrixBase< OtherDerived > &other) const |
template<typename OtherDerived > | |
const SparseSparseProductReturnType < Derived, OtherDerived > ::Type | operator* (const SparseMatrixBase< OtherDerived > &other) const |
const CwiseUnaryOp < internal::scalar_multiple2_op < Scalar, std::complex< Scalar > >, const Derived > | operator* (const std::complex< Scalar > &scalar) const |
const ScalarMultipleReturnType | operator* (const Scalar &scalar) 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 |
NonConstRealReturnType | real () |
RealReturnType | real () const |
template<int N> | |
ConstNColsBlockXpr< N >::Type | rightCols (Index n=N) const |
template<int N> | |
NColsBlockXpr< N >::Type | rightCols (Index n=N) |
ConstColsBlockXpr | rightCols (Index n) const |
ColsBlockXpr | rightCols (Index n) |
ConstRowXpr | row (Index i) const |
RowXpr | row (Index i) |
Index | rows () const |
template<int N> | |
ConstFixedSegmentReturnType< N > ::Type | segment (Index start, Index n=N) const |
template<int N> | |
FixedSegmentReturnType< N >::Type | segment (Index start, Index n=N) |
ConstSegmentReturnType | segment (Index start, Index n) const |
SegmentReturnType | segment (Index start, Index n) |
Index | size () const |
template<int N> | |
ConstFixedSegmentReturnType< N > ::Type | tail (Index n=N) const |
template<int N> | |
FixedSegmentReturnType< N >::Type | tail (Index n=N) |
ConstSegmentReturnType | tail (Index n) const |
SegmentReturnType | tail (Index n) |
template<int CRows, int CCols> | |
const Block< const Derived, CRows, CCols > | topLeftCorner (Index cRows, Index cCols) 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 () const |
template<int CRows, int CCols> | |
Block< Derived, CRows, CCols > | topLeftCorner () |
const Block< const Derived > | topLeftCorner (Index cRows, Index cCols) const |
Block< Derived > | topLeftCorner (Index cRows, Index cCols) |
template<int CRows, int CCols> | |
const Block< const Derived, CRows, CCols > | topRightCorner (Index cRows, Index cCols) 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 () const |
template<int CRows, int CCols> | |
Block< Derived, CRows, CCols > | topRightCorner () |
const Block< const Derived > | topRightCorner (Index cRows, Index cCols) const |
Block< Derived > | topRightCorner (Index cRows, Index cCols) |
template<int N> | |
ConstNRowsBlockXpr< N >::Type | topRows (Index n=N) const |
template<int N> | |
NRowsBlockXpr< N >::Type | topRows (Index n=N) |
ConstRowsBlockXpr | topRows (Index n) const |
RowsBlockXpr | topRows (Index n) |
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. | |
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) |
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 . |
anonymous enum |
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. |
const CwiseBinaryOp<CustomBinaryOp, const Derived, const OtherDerived> binaryExpr | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other, | |
const CustomBinaryOp & | func = CustomBinaryOp() | |||
) | const [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:
#include <Eigen/Core> #include <iostream> using namespace Eigen; using namespace std; // define a custom template binary functor template<typename Scalar> struct MakeComplexOp { EIGEN_EMPTY_STRUCT_CTOR(MakeComplexOp) typedef complex<Scalar> result_type; complex<Scalar> operator()(const Scalar& a, const Scalar& b) const { return complex<Scalar>(a,b); } }; int main(int, char**) { Matrix4d m1 = Matrix4d::Random(), m2 = Matrix4d::Random(); cout << m1.binaryExpr(m2, MakeComplexOp<double>()) << endl; return 0; }
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)
const Block<const Derived, BlockRows, BlockCols> block | ( | Index | startRow, | |
Index | startCol, | |||
Index | blockRows, | |||
Index | blockCols | |||
) | const [inline] |
This is the const version of block<>(Index, Index, Index, Index).
Block<Derived, BlockRows, BlockCols> block | ( | Index | startRow, | |
Index | startCol, | |||
Index | blockRows, | |||
Index | blockCols | |||
) | [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:
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;
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;
const Block<const Derived, BlockRows, BlockCols> block | ( | Index | startRow, | |
Index | startCol | |||
) | const [inline] |
This is the const version of block<>(Index, Index).
Block<Derived, BlockRows, BlockCols> block | ( | Index | startRow, | |
Index | startCol | |||
) | [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:
Matrix4i m = Matrix4i::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is m.block<2,2>(1,1):" << endl << m.block<2,2>(1,1) << endl; m.block<2,2>(1,1).setZero(); cout << "Now the matrix m is:" << endl << m << endl;
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
m.template block<3,3>(1,1);
const Block<const Derived> block | ( | Index | startRow, | |
Index | startCol, | |||
Index | blockRows, | |||
Index | blockCols | |||
) | const [inline] |
This is the const version of block(Index,Index,Index,Index).
Block<Derived> block | ( | Index | startRow, | |
Index | startCol, | |||
Index | blockRows, | |||
Index | blockCols | |||
) | [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:
Matrix4i m = Matrix4i::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is m.block(1, 1, 2, 2):" << endl << m.block(1, 1, 2, 2) << endl; m.block(1, 1, 2, 2).setZero(); cout << "Now the matrix m is:" << endl << m << endl;
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
const Block<const Derived, CRows, CCols> bottomLeftCorner | ( | Index | cRows, | |
Index | cCols | |||
) | const [inline] |
This is the const version of bottomLeftCorner<int, int>(Index, Index).
Block<Derived, CRows, CCols> bottomLeftCorner | ( | Index | cRows, | |
Index | cCols | |||
) | [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:
Matrix4i m = Matrix4i::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is m.bottomLeftCorner<2,Dynamic>(2,2):" << endl; cout << m.bottomLeftCorner<2,Dynamic>(2,2) << endl; m.bottomLeftCorner<2,Dynamic>(2,2).setZero(); cout << "Now the matrix m is:" << endl << m << endl;
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
const Block<const Derived, CRows, CCols> bottomLeftCorner | ( | ) | const [inline] |
This is the const version of bottomLeftCorner<int, int>().
Block<Derived, CRows, CCols> bottomLeftCorner | ( | ) | [inline] |
The template parameters CRows and CCols are the number of rows and columns in the corner.
Example:
Matrix4i m = Matrix4i::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is m.bottomLeftCorner<2,2>():" << endl; cout << m.bottomLeftCorner<2,2>() << endl; m.bottomLeftCorner<2,2>().setZero(); cout << "Now the matrix m is:" << endl << m << endl;
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
const Block<const Derived> bottomLeftCorner | ( | Index | cRows, | |
Index | cCols | |||
) | const [inline] |
This is the const version of bottomLeftCorner(Index, Index).
Block<Derived> bottomLeftCorner | ( | Index | cRows, | |
Index | cCols | |||
) | [inline] |
cRows | the number of rows in the corner | |
cCols | the number of columns in the corner |
Example:
Matrix4i m = Matrix4i::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is m.bottomLeftCorner(2, 2):" << endl; cout << m.bottomLeftCorner(2, 2) << endl; m.bottomLeftCorner(2, 2).setZero(); cout << "Now the matrix m is:" << endl << m << endl;
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
const Block<const Derived, CRows, CCols> bottomRightCorner | ( | Index | cRows, | |
Index | cCols | |||
) | const [inline] |
This is the const version of bottomRightCorner<int, int>(Index, Index).
Block<Derived, CRows, CCols> bottomRightCorner | ( | Index | cRows, | |
Index | cCols | |||
) | [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:
Matrix4i m = Matrix4i::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is m.bottomRightCorner<2,Dynamic>(2,2):" << endl; cout << m.bottomRightCorner<2,Dynamic>(2,2) << endl; m.bottomRightCorner<2,Dynamic>(2,2).setZero(); cout << "Now the matrix m is:" << endl << m << endl;
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
const Block<const Derived, CRows, CCols> bottomRightCorner | ( | ) | const [inline] |
This is the const version of bottomRightCorner<int, int>().
Block<Derived, CRows, CCols> bottomRightCorner | ( | ) | [inline] |
The template parameters CRows and CCols are the number of rows and columns in the corner.
Example:
Matrix4i m = Matrix4i::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is m.bottomRightCorner<2,2>():" << endl; cout << m.bottomRightCorner<2,2>() << endl; m.bottomRightCorner<2,2>().setZero(); cout << "Now the matrix m is:" << endl << m << endl;
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
const Block<const Derived> bottomRightCorner | ( | Index | cRows, | |
Index | cCols | |||
) | const [inline] |
This is the const version of bottomRightCorner(Index, Index).
Block<Derived> bottomRightCorner | ( | Index | cRows, | |
Index | cCols | |||
) | [inline] |
cRows | the number of rows in the corner | |
cCols | the number of columns in the corner |
Example:
Matrix4i m = Matrix4i::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is m.bottomRightCorner(2, 2):" << endl; cout << m.bottomRightCorner(2, 2) << endl; m.bottomRightCorner(2, 2).setZero(); cout << "Now the matrix m is:" << endl << m << endl;
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
ConstNRowsBlockXpr<N>::Type bottomRows | ( | Index | n = N |
) | const [inline] |
This is the const version of bottomRows<int>().
NRowsBlockXpr<N>::Type bottomRows | ( | Index | n = N |
) | [inline] |
N | the number of rows in the block as specified at compile-time |
n | the number of rows in the block as specified at run-time |
The compile-time and run-time information should not contradict. In other words, n should equal N unless N is Dynamic.
Example:
Array44i a = Array44i::Random(); cout << "Here is the array a:" << endl << a << endl; cout << "Here is a.bottomRows<2>():" << endl; cout << a.bottomRows<2>() << endl; a.bottomRows<2>().setZero(); cout << "Now the array a is:" << endl << a << endl;
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
ConstRowsBlockXpr bottomRows | ( | Index | n | ) | const [inline] |
This is the const version of bottomRows(Index).
RowsBlockXpr bottomRows | ( | Index | n | ) | [inline] |
n | the number of rows in the block |
Example:
Array44i a = Array44i::Random(); cout << "Here is the array a:" << endl << a << endl; cout << "Here is a.bottomRows(2):" << endl; cout << a.bottomRows(2) << endl; a.bottomRows(2).setZero(); cout << "Now the array a is:" << endl << a << endl;
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
internal::cast_return_type<Derived,const CwiseUnaryOp<internal::scalar_cast_op<typename internal::traits<Derived>::Scalar, NewType>, const Derived> >::type cast | ( | ) | const [inline] |
The template parameter NewScalar is the type we are casting the scalars to.
ConstColXpr col | ( | Index | i | ) | const [inline] |
This is the const version of col().
ColXpr col | ( | Index | i | ) | [inline] |
Example:
Matrix3d m = Matrix3d::Identity(); m.col(1) = Vector3d(4,5,6); cout << m << endl;
Output:
1 4 0 0 5 0 0 6 1
Referenced by SparseQR< _MatrixType, _OrderingType >::factorize().
Index cols | ( | void | ) | const [inline] |
Reimplemented from EigenBase< Derived >.
Reimplemented in MappedSparseMatrix< _Scalar, _Flags, _Index >, BlockImpl< XprType, BlockRows, BlockCols, InnerPanel, Sparse >, SparseMatrix< _Scalar, _Options, _Index >, SparseVector< _Scalar, _Options, _Index >, MappedSparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar >, SparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar, ColMajor, int >, SparseMatrix< Scalar, RowMajor, Index >, and SparseMatrix< Scalar, RowMajor >.
Referenced by SparseMatrixBase< Derived >::innerVectors(), and SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::operator*().
ConjugateReturnType conjugate | ( | ) | const [inline] |
*this
.const CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived> cwiseAbs | ( | ) | const [inline] |
*this
Example:
MatrixXd m(2,3); m << 2, -4, 6, -5, 1, 0; cout << m.cwiseAbs() << endl;
Output:
2 4 6 5 1 0
const CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived> cwiseAbs2 | ( | ) | const [inline] |
*this
Example:
MatrixXd m(2,3); m << 2, -4, 6, -5, 1, 0; cout << m.cwiseAbs2() << endl;
Output:
4 16 36 25 1 0
const CwiseScalarEqualReturnType cwiseEqual | ( | const Scalar & | s | ) | const [inline] |
*this
and a scalar s const CwiseBinaryOp<std::equal_to<Scalar>, const Derived, const OtherDerived> cwiseEqual | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other | ) | const [inline] |
Example:
MatrixXi m(2,2); m << 1, 0, 1, 1; cout << "Comparing m with identity matrix:" << endl; cout << m.cwiseEqual(MatrixXi::Identity(2,2)) << endl; int count = m.cwiseEqual(MatrixXi::Identity(2,2)).count(); cout << "Number of coefficients that are equal: " << count << endl;
Output:
Comparing m with identity matrix: 1 1 0 1 Number of coefficients that are equal: 3
const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived> cwiseInverse | ( | ) | const [inline] |
Example:
MatrixXd m(2,3); m << 2, 0.5, 1, 3, 0.25, 1; cout << m.cwiseInverse() << endl;
Output:
0.5 2 1 0.333 4 1
const CwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived, const ConstantReturnType> cwiseMax | ( | const Scalar & | other | ) | const [inline] |
const CwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived, const OtherDerived> cwiseMax | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other | ) | const [inline] |
Example:
Vector3d v(2,3,4), w(4,2,3); cout << v.cwiseMax(w) << endl;
Output:
4 3 4
const CwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived, const ConstantReturnType> cwiseMin | ( | const Scalar & | other | ) | const [inline] |
const CwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived, const OtherDerived> cwiseMin | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other | ) | const [inline] |
Example:
Vector3d v(2,3,4), w(4,2,3); cout << v.cwiseMin(w) << endl;
Output:
2 2 3
const CwiseBinaryOp<std::not_equal_to<Scalar>, const Derived, const OtherDerived> cwiseNotEqual | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other | ) | const [inline] |
Example:
MatrixXi m(2,2); m << 1, 0, 1, 1; cout << "Comparing m with identity matrix:" << endl; cout << m.cwiseNotEqual(MatrixXi::Identity(2,2)) << endl; int count = m.cwiseNotEqual(MatrixXi::Identity(2,2)).count(); cout << "Number of coefficients that are not equal: " << count << endl;
Output:
Comparing m with identity matrix: 0 0 1 0 Number of coefficients that are not equal: 1
const CwiseBinaryOp<internal::scalar_product_op<typename Derived ::Scalar, typename OtherDerived ::Scalar >, const Derived , const OtherDerived > cwiseProduct | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other | ) | const [inline] |
Example:
Matrix3i a = Matrix3i::Random(), b = Matrix3i::Random(); Matrix3i c = a.cwiseProduct(b); cout << "a:\n" << a << "\nb:\n" << b << "\nc:\n" << c << endl;
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
const CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived> cwiseQuotient | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other | ) | const [inline] |
Example:
Vector3d v(2,3,4), w(4,2,3); cout << v.cwiseQuotient(w) << endl;
Output:
0.5 1.5 1.33
const CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived> cwiseSqrt | ( | ) | const [inline] |
Example:
Vector3d v(1,2,4); cout << v.cwiseSqrt() << endl;
Output:
1 1.41 2
const Derived& derived | ( | ) | const [inline, inherited] |
Derived& derived | ( | ) | [inline, inherited] |
Referenced by PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::applyTranspositionOnTheLeft(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::applyTranspositionOnTheRight(), EigenBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::cols(), MatrixBase< TriangularProduct< Mode, true, Lhs, false, Rhs, true > >::cwiseEqual(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::cwiseSqrt(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::indices(), SparseMatrixBase< Derived >::innerVector(), SparseMatrixBase< Derived >::innerVectors(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::inverse(), Translation< _Scalar, _Dim >::operator*(), Transform< _Scalar, _Dim, _Mode, _Options >::operator*(), SparseSelfAdjointView< MatrixType, UpLo >::operator*(), SparseMatrixBase< Derived >::operator*(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::operator*(), RotationBase< Derived, 3 >::operator*(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::operator*(), Transform< _Scalar, _Dim, _Mode, _Options >::operator=(), PlainObjectBase< Matrix< int, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::operator=(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::operator=(), DenseBase< Derived >::operator=(), MatrixBase< Derived >::operator=(), PlainObjectBase< Matrix< int, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::PlainObjectBase(), PlainObjectBase< Matrix< int, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::resizeLike(), EigenBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::rows(), UmfPackLU< _MatrixType >::solve(), SuperLUBase< _MatrixType, SuperILU< _MatrixType > >::solve(), SparseLU< _MatrixType, _OrderingType >::solve(), SimplicialCholeskyBase< SimplicialLDLT< _MatrixType, _UpLo, _Ordering > >::solve(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::solve(), CholmodBase< _MatrixType, _UpLo, CholmodSimplicialLLT< _MatrixType, _UpLo > >::solve(), SparseMatrix< Scalar, RowMajor >::SparseMatrix(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::toDenseMatrix(), Transform< _Scalar, _Dim, _Mode, _Options >::Transform(), and PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::transpose().
const internal::eval<Derived>::type eval | ( | ) | const [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.
ConstFixedSegmentReturnType<N>::Type head | ( | Index | n = N |
) | const [inline] |
This is the const version of head<int>().
FixedSegmentReturnType<N>::Type head | ( | Index | n = N |
) | [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.
N | the number of coefficients in the segment as specified at compile-time |
n | the number of coefficients in the segment as specified at run-time |
The compile-time and run-time information should not contradict. In other words, n should equal N unless N is Dynamic.
Example:
RowVector4i v = RowVector4i::Random(); cout << "Here is the vector v:" << endl << v << endl; cout << "Here is v.head(2):" << endl << v.head<2>() << endl; v.head<2>().setZero(); cout << "Now the vector v is:" << endl << v << endl;
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
ConstSegmentReturnType head | ( | Index | n | ) | const [inline] |
This is the const version of head(Index).
SegmentReturnType head | ( | Index | n | ) | [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.
n | the number of coefficients in the segment |
Example:
RowVector4i v = RowVector4i::Random(); cout << "Here is the vector v:" << endl << v << endl; cout << "Here is v.head(2):" << endl << v.head(2) << endl; v.head(2).setZero(); cout << "Now the vector v is:" << endl << v << endl;
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
NonConstImagReturnType imag | ( | ) | [inline] |
*this
.const ImagReturnType imag | ( | ) | const [inline] |
*this
.Index innerSize | ( | ) | const [inline] |
Reimplemented in MappedSparseMatrix< _Scalar, _Flags, _Index >, SparseMatrix< _Scalar, _Options, _Index >, SparseVector< _Scalar, _Options, _Index >, MappedSparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar >, SparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar, ColMajor, int >, SparseMatrix< Scalar, RowMajor, Index >, and SparseMatrix< Scalar, RowMajor >.
const SparseMatrixBase< Derived >::ConstInnerVectorReturnType innerVector | ( | Index | outer | ) | const [inline] |
*this
if *this
is col-major (resp. row-major). Read-only. References EigenBase< Derived >::derived().
SparseMatrixBase< Derived >::InnerVectorReturnType innerVector | ( | Index | outer | ) | [inline] |
*this
if *this
is col-major (resp. row-major). References EigenBase< Derived >::derived().
const SparseMatrixBase< Derived >::ConstInnerVectorsReturnType innerVectors | ( | Index | outerStart, | |
Index | outerSize | |||
) | const [inline] |
*this
if *this
is col-major (resp. row-major). Read-only. References SparseMatrixBase< Derived >::cols(), EigenBase< Derived >::derived(), and SparseMatrixBase< Derived >::rows().
SparseMatrixBase< Derived >::InnerVectorsReturnType innerVectors | ( | Index | outerStart, | |
Index | outerSize | |||
) | [inline] |
*this
if *this
is col-major (resp. row-major). References SparseMatrixBase< Derived >::cols(), EigenBase< Derived >::derived(), and SparseMatrixBase< Derived >::rows().
bool isVector | ( | ) | const [inline] |
ConstNColsBlockXpr<N>::Type leftCols | ( | Index | n = N |
) | const [inline] |
This is the const version of leftCols<int>().
NColsBlockXpr<N>::Type leftCols | ( | Index | n = N |
) | [inline] |
N | the number of columns in the block as specified at compile-time |
n | the number of columns in the block as specified at run-time |
The compile-time and run-time information should not contradict. In other words, n should equal N unless N is Dynamic.
Example:
Array44i a = Array44i::Random(); cout << "Here is the array a:" << endl << a << endl; cout << "Here is a.leftCols<2>():" << endl; cout << a.leftCols<2>() << endl; a.leftCols<2>().setZero(); cout << "Now the array a is:" << endl << a << endl;
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
ConstColsBlockXpr leftCols | ( | Index | n | ) | const [inline] |
This is the const version of leftCols(Index).
ColsBlockXpr leftCols | ( | Index | n | ) | [inline] |
n | the number of columns in the block |
Example:
Array44i a = Array44i::Random(); cout << "Here is the array a:" << endl << a << endl; cout << "Here is a.leftCols(2):" << endl; cout << a.leftCols(2) << endl; a.leftCols(2).setZero(); cout << "Now the array a is:" << endl << a << endl;
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
ConstNColsBlockXpr<N>::Type middleCols | ( | Index | startCol, | |
Index | n = N | |||
) | const [inline] |
This is the const version of middleCols<int>().
NColsBlockXpr<N>::Type middleCols | ( | Index | startCol, | |
Index | n = N | |||
) | [inline] |
N | the number of columns in the block as specified at compile-time |
startCol | the index of the first column in the block | |
n | the number of columns in the block as specified at run-time |
The compile-time and run-time information should not contradict. In other words, n should equal N unless N is Dynamic.
Example:
#include <Eigen/Core> #include <iostream> using namespace Eigen; using namespace std; int main(void) { int const N = 5; MatrixXi A(N,N); A.setRandom(); cout << "A =\n" << A << '\n' << endl; cout << "A(:,1..3) =\n" << A.middleCols<3>(1) << endl; return 0; }
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
ConstColsBlockXpr middleCols | ( | Index | startCol, | |
Index | numCols | |||
) | const [inline] |
This is the const version of middleCols(Index,Index).
ColsBlockXpr middleCols | ( | Index | startCol, | |
Index | numCols | |||
) | [inline] |
startCol | the index of the first column in the block | |
numCols | the number of columns in the block |
Example:
#include <Eigen/Core> #include <iostream> using namespace Eigen; using namespace std; int main(void) { int const N = 5; MatrixXi A(N,N); A.setRandom(); cout << "A =\n" << A << '\n' << endl; cout << "A(1..3,:) =\n" << A.middleCols(1,3) << endl; return 0; }
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
ConstNRowsBlockXpr<N>::Type middleRows | ( | Index | startRow, | |
Index | n = N | |||
) | const [inline] |
This is the const version of middleRows<int>().
NRowsBlockXpr<N>::Type middleRows | ( | Index | startRow, | |
Index | n = N | |||
) | [inline] |
N | the number of rows in the block as specified at compile-time |
startRow | the index of the first row in the block | |
n | the number of rows in the block as specified at run-time |
The compile-time and run-time information should not contradict. In other words, n should equal N unless N is Dynamic.
Example:
#include <Eigen/Core> #include <iostream> using namespace Eigen; using namespace std; int main(void) { int const N = 5; MatrixXi A(N,N); A.setRandom(); cout << "A =\n" << A << '\n' << endl; cout << "A(1..3,:) =\n" << A.middleRows<3>(1) << endl; return 0; }
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
ConstRowsBlockXpr middleRows | ( | Index | startRow, | |
Index | n | |||
) | const [inline] |
This is the const version of middleRows(Index,Index).
RowsBlockXpr middleRows | ( | Index | startRow, | |
Index | n | |||
) | [inline] |
startRow | the index of the first row in the block | |
n | the number of rows in the block |
Example:
#include <Eigen/Core> #include <iostream> using namespace Eigen; using namespace std; int main(void) { int const N = 5; MatrixXi A(N,N); A.setRandom(); cout << "A =\n" << A << '\n' << endl; cout << "A(2..3,:) =\n" << A.middleRows(2,2) << endl; return 0; }
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
Index nonZeros | ( | ) | const [inline] |
Reimplemented in MappedSparseMatrix< _Scalar, _Flags, _Index >, SparseMatrix< _Scalar, _Options, _Index >, SparseVector< _Scalar, _Options, _Index >, MappedSparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar >, SparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar, ColMajor, int >, SparseMatrix< Scalar, RowMajor, Index >, and SparseMatrix< Scalar, RowMajor >.
const SparseDenseProductReturnType<Derived,OtherDerived>::Type operator* | ( | const MatrixBase< OtherDerived > & | other | ) | const [inline] |
sparse * dense (returns a dense object unless it is an outer product)
const SparseSparseProductReturnType< Derived, OtherDerived >::Type operator* | ( | const SparseMatrixBase< OtherDerived > & | other | ) | const [inline] |
C = (A*B).pruned(); // supress numerical zeros (exact)
C = (A*B).pruned(ref);
C = (A*B).pruned(ref,epsilon);
ref
is a meaningful non zero reference value. References EigenBase< Derived >::derived().
const CwiseUnaryOp<internal::scalar_multiple2_op<Scalar,std::complex<Scalar> >, const Derived> operator* | ( | const std::complex< Scalar > & | scalar | ) | const [inline] |
Overloaded for efficient real matrix times complex scalar value
const ScalarMultipleReturnType operator* | ( | const Scalar & | scalar | ) | const [inline] |
*this
scaled by the scalar factor scalar const CwiseBinaryOp< internal::scalar_sum_op <Scalar>, const Derived, const OtherDerived> operator+ | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other | ) | const [inline] |
*this
and other const CwiseBinaryOp< internal::scalar_difference_op <Scalar>, const Derived, const OtherDerived> operator- | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other | ) | const [inline] |
*this
and other const CwiseUnaryOp<internal::scalar_opposite_op<typename internal::traits<Derived>::Scalar>, const Derived> operator- | ( | ) | const [inline] |
*this
const CwiseUnaryOp<internal::scalar_quotient1_op<typename internal::traits<Derived>::Scalar>, const Derived> operator/ | ( | const Scalar & | scalar | ) | const [inline] |
*this
divided by the scalar value scalar Index outerSize | ( | ) | const [inline] |
Reimplemented in MappedSparseMatrix< _Scalar, _Flags, _Index >, SparseMatrix< _Scalar, _Options, _Index >, SparseVector< _Scalar, _Options, _Index >, MappedSparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar >, SparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar, ColMajor, int >, SparseMatrix< Scalar, RowMajor, Index >, and SparseMatrix< Scalar, RowMajor >.
Referenced by SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::operator/().
NonConstRealReturnType real | ( | ) | [inline] |
*this
.RealReturnType real | ( | ) | const [inline] |
*this
.ConstNColsBlockXpr<N>::Type rightCols | ( | Index | n = N |
) | const [inline] |
This is the const version of rightCols<int>().
NColsBlockXpr<N>::Type rightCols | ( | Index | n = N |
) | [inline] |
N | the number of columns in the block as specified at compile-time |
n | the number of columns in the block as specified at run-time |
The compile-time and run-time information should not contradict. In other words, n should equal N unless N is Dynamic.
Example:
Array44i a = Array44i::Random(); cout << "Here is the array a:" << endl << a << endl; cout << "Here is a.rightCols<2>():" << endl; cout << a.rightCols<2>() << endl; a.rightCols<2>().setZero(); cout << "Now the array a is:" << endl << a << endl;
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
ConstColsBlockXpr rightCols | ( | Index | n | ) | const [inline] |
This is the const version of rightCols(Index).
ColsBlockXpr rightCols | ( | Index | n | ) | [inline] |
n | the number of columns in the block |
Example:
Array44i a = Array44i::Random(); cout << "Here is the array a:" << endl << a << endl; cout << "Here is a.rightCols(2):" << endl; cout << a.rightCols(2) << endl; a.rightCols(2).setZero(); cout << "Now the array a is:" << endl << a << endl;
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
ConstRowXpr row | ( | Index | i | ) | const [inline] |
This is the const version of row().
RowXpr row | ( | Index | i | ) | [inline] |
Example:
Matrix3d m = Matrix3d::Identity(); m.row(1) = Vector3d(4,5,6); cout << m << endl;
Output:
1 0 0 4 5 6 0 0 1
Index rows | ( | void | ) | const [inline] |
Reimplemented from EigenBase< Derived >.
Reimplemented in MappedSparseMatrix< _Scalar, _Flags, _Index >, BlockImpl< XprType, BlockRows, BlockCols, InnerPanel, Sparse >, SparseMatrix< _Scalar, _Options, _Index >, SparseVector< _Scalar, _Options, _Index >, MappedSparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar >, SparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar, ColMajor, int >, SparseMatrix< Scalar, RowMajor, Index >, and SparseMatrix< Scalar, RowMajor >.
Referenced by SparseMatrixBase< Derived >::innerVectors(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::operator*(), UmfPackLU< _MatrixType >::solve(), SuperLUBase< _MatrixType, SuperILU< _MatrixType > >::solve(), SparseLU< _MatrixType, _OrderingType >::solve(), SimplicialCholeskyBase< SimplicialLDLT< _MatrixType, _UpLo, _Ordering > >::solve(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::solve(), and CholmodBase< _MatrixType, _UpLo, CholmodSimplicialLLT< _MatrixType, _UpLo > >::solve().
ConstFixedSegmentReturnType<N>::Type segment | ( | Index | start, | |
Index | n = N | |||
) | const [inline] |
This is the const version of segment<int>(Index).
FixedSegmentReturnType<N>::Type segment | ( | Index | start, | |
Index | n = N | |||
) | [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.
N | the number of coefficients in the segment as specified at compile-time |
start | the index of the first element in the segment | |
n | the number of coefficients in the segment as specified at compile-time |
The compile-time and run-time information should not contradict. In other words, n should equal N unless N is Dynamic.
Example:
RowVector4i v = RowVector4i::Random(); cout << "Here is the vector v:" << endl << v << endl; cout << "Here is v.segment<2>(1):" << endl << v.segment<2>(1) << endl; v.segment<2>(2).setZero(); cout << "Now the vector v is:" << endl << v << endl;
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
ConstSegmentReturnType segment | ( | Index | start, | |
Index | n | |||
) | const [inline] |
This is the const version of segment(Index,Index).
SegmentReturnType segment | ( | Index | start, | |
Index | n | |||
) | [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 | |
n | the number of coefficients in the segment |
Example:
RowVector4i v = RowVector4i::Random(); cout << "Here is the vector v:" << endl << v << endl; cout << "Here is v.segment(1, 2):" << endl << v.segment(1, 2) << endl; v.segment(1, 2).setZero(); cout << "Now the vector v is:" << endl << v << endl;
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
Index size | ( | ) | const [inline] |
Reimplemented from EigenBase< Derived >.
ConstFixedSegmentReturnType<N>::Type tail | ( | Index | n = N |
) | const [inline] |
This is the const version of tail<int>.
FixedSegmentReturnType<N>::Type tail | ( | Index | n = N |
) | [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.
N | the number of coefficients in the segment as specified at compile-time |
n | the number of coefficients in the segment as specified at run-time |
The compile-time and run-time information should not contradict. In other words, n should equal N unless N is Dynamic.
Example:
RowVector4i v = RowVector4i::Random(); cout << "Here is the vector v:" << endl << v << endl; cout << "Here is v.tail(2):" << endl << v.tail<2>() << endl; v.tail<2>().setZero(); cout << "Now the vector v is:" << endl << v << endl;
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
ConstSegmentReturnType tail | ( | Index | n | ) | const [inline] |
This is the const version of tail(Index).
SegmentReturnType tail | ( | Index | n | ) | [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.
n | the number of coefficients in the segment |
Example:
RowVector4i v = RowVector4i::Random(); cout << "Here is the vector v:" << endl << v << endl; cout << "Here is v.tail(2):" << endl << v.tail(2) << endl; v.tail(2).setZero(); cout << "Now the vector v is:" << endl << v << endl;
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
const Block<const Derived, CRows, CCols> topLeftCorner | ( | Index | cRows, | |
Index | cCols | |||
) | const [inline] |
This is the const version of topLeftCorner<int, int>(Index, Index).
Block<Derived, CRows, CCols> topLeftCorner | ( | Index | cRows, | |
Index | cCols | |||
) | [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:
Matrix4i m = Matrix4i::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is m.topLeftCorner<2,Dynamic>(2,2):" << endl; cout << m.topLeftCorner<2,Dynamic>(2,2) << endl; m.topLeftCorner<2,Dynamic>(2,2).setZero(); cout << "Now the matrix m is:" << endl << m << endl;
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
const Block<const Derived, CRows, CCols> topLeftCorner | ( | ) | const [inline] |
This is the const version of topLeftCorner<int, int>().
Block<Derived, CRows, CCols> topLeftCorner | ( | ) | [inline] |
The template parameters CRows and CCols are the number of rows and columns in the corner.
Example:
Matrix4i m = Matrix4i::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is m.topLeftCorner<2,2>():" << endl; cout << m.topLeftCorner<2,2>() << endl; m.topLeftCorner<2,2>().setZero(); cout << "Now the matrix m is:" << endl << m << endl;
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
const Block<const Derived> topLeftCorner | ( | Index | cRows, | |
Index | cCols | |||
) | const [inline] |
This is the const version of topLeftCorner(Index, Index).
Block<Derived> topLeftCorner | ( | Index | cRows, | |
Index | cCols | |||
) | [inline] |
cRows | the number of rows in the corner | |
cCols | the number of columns in the corner |
Example:
Matrix4i m = Matrix4i::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is m.topLeftCorner(2, 2):" << endl; cout << m.topLeftCorner(2, 2) << endl; m.topLeftCorner(2, 2).setZero(); cout << "Now the matrix m is:" << endl << m << endl;
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
const Block<const Derived, CRows, CCols> topRightCorner | ( | Index | cRows, | |
Index | cCols | |||
) | const [inline] |
This is the const version of topRightCorner<int, int>(Index, Index).
Block<Derived, CRows, CCols> topRightCorner | ( | Index | cRows, | |
Index | cCols | |||
) | [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:
Matrix4i m = Matrix4i::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is m.topRightCorner<2,Dynamic>(2,2):" << endl; cout << m.topRightCorner<2,Dynamic>(2,2) << endl; m.topRightCorner<2,Dynamic>(2,2).setZero(); cout << "Now the matrix m is:" << endl << m << endl;
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
const Block<const Derived, CRows, CCols> topRightCorner | ( | ) | const [inline] |
This is the const version of topRightCorner<int, int>().
Block<Derived, CRows, CCols> topRightCorner | ( | ) | [inline] |
CRows | the number of rows in the corner | |
CCols | the number of columns in the corner |
Example:
Matrix4i m = Matrix4i::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is m.topRightCorner<2,2>():" << endl; cout << m.topRightCorner<2,2>() << endl; m.topRightCorner<2,2>().setZero(); cout << "Now the matrix m is:" << endl << m << endl;
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
const Block<const Derived> topRightCorner | ( | Index | cRows, | |
Index | cCols | |||
) | const [inline] |
This is the const version of topRightCorner(Index, Index).
Block<Derived> topRightCorner | ( | Index | cRows, | |
Index | cCols | |||
) | [inline] |
cRows | the number of rows in the corner | |
cCols | the number of columns in the corner |
Example:
Matrix4i m = Matrix4i::Random(); cout << "Here is the matrix m:" << endl << m << endl; cout << "Here is m.topRightCorner(2, 2):" << endl; cout << m.topRightCorner(2, 2) << endl; m.topRightCorner(2, 2).setZero(); cout << "Now the matrix m is:" << endl << m << endl;
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
ConstNRowsBlockXpr<N>::Type topRows | ( | Index | n = N |
) | const [inline] |
This is the const version of topRows<int>().
NRowsBlockXpr<N>::Type topRows | ( | Index | n = N |
) | [inline] |
N | the number of rows in the block as specified at compile-time |
n | the number of rows in the block as specified at run-time |
The compile-time and run-time information should not contradict. In other words, n should equal N unless N is Dynamic.
Example:
Array44i a = Array44i::Random(); cout << "Here is the array a:" << endl << a << endl; cout << "Here is a.topRows<2>():" << endl; cout << a.topRows<2>() << endl; a.topRows<2>().setZero(); cout << "Now the array a is:" << endl << a << endl;
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
ConstRowsBlockXpr topRows | ( | Index | n | ) | const [inline] |
This is the const version of topRows(Index).
RowsBlockXpr topRows | ( | Index | n | ) | [inline] |
n | the number of rows in the block |
Example:
Array44i a = Array44i::Random(); cout << "Here is the array a:" << endl << a << endl; cout << "Here is a.topRows(2):" << endl; cout << a.topRows(2) << endl; a.topRows(2).setZero(); cout << "Now the array a is:" << endl << a << endl;
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
SparseSymmetricPermutationProduct<Derived,Upper|Lower> twistedBy | ( | const PermutationMatrix< Dynamic, Dynamic, Index > & | perm | ) | const [inline] |
*this
const CwiseUnaryOp<CustomUnaryOp, const Derived> unaryExpr | ( | const CustomUnaryOp & | func = CustomUnaryOp() |
) | const [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:
#include <Eigen/Core> #include <iostream> using namespace Eigen; using namespace std; // define function to be applied coefficient-wise double ramp(double x) { if (x > 0) return x; else return 0; } int main(int, char**) { Matrix4d m1 = Matrix4d::Random(); cout << m1 << endl << "becomes: " << endl << m1.unaryExpr(ptr_fun(ramp)) << endl; return 0; }
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:
#include <Eigen/Core> #include <iostream> using namespace Eigen; using namespace std; // define a custom template unary functor template<typename Scalar> struct CwiseClampOp { CwiseClampOp(const Scalar& inf, const Scalar& sup) : m_inf(inf), m_sup(sup) {} const Scalar operator()(const Scalar& x) const { return x<m_inf ? m_inf : (x>m_sup ? m_sup : x); } Scalar m_inf, m_sup; }; int main(int, char**) { Matrix4d m1 = Matrix4d::Random(); cout << m1 << endl << "becomes: " << endl << m1.unaryExpr(CwiseClampOp<double>(-0.5,0.5)) << endl; return 0; }
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
const CwiseUnaryView<CustomViewOp, const Derived> unaryViewExpr | ( | const CustomViewOp & | func = CustomViewOp() |
) | const [inline] |
The template parameter CustomUnaryOp is the type of the functor of the custom unary operator.
Example:
#include <Eigen/Core> #include <iostream> using namespace Eigen; using namespace std; // define a custom template unary functor template<typename Scalar> struct CwiseClampOp { CwiseClampOp(const Scalar& inf, const Scalar& sup) : m_inf(inf), m_sup(sup) {} const Scalar operator()(const Scalar& x) const { return x<m_inf ? m_inf : (x>m_sup ? m_sup : x); } Scalar m_inf, m_sup; }; int main(int, char**) { Matrix4d m1 = Matrix4d::Random(); cout << m1 << endl << "becomes: " << endl << m1.unaryExpr(CwiseClampOp<double>(-0.5,0.5)) << endl; return 0; }
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
const DenseSparseProductReturnType<OtherDerived,Derived>::Type operator* | ( | const MatrixBase< OtherDerived > & | lhs, | |
const Derived & | rhs | |||
) | [friend] |
dense * sparse (return a dense object unless it is an outer product)