Base class of any sparse matrices or sparse expressions. More...
#include <SparseMatrixBase.h>
Public Types | |
enum | { RowsAtCompileTime, ColsAtCompileTime, SizeAtCompileTime, MaxRowsAtCompileTime, MaxColsAtCompileTime, MaxSizeAtCompileTime, IsVectorAtCompileTime, Flags, CoeffReadCost, IsRowMajor } |
typedef internal::conditional < NumTraits< Scalar > ::IsComplex, CwiseUnaryOp < internal::scalar_conjugate_op < Scalar >, Eigen::Transpose < const Derived > >, Transpose < const Derived > >::type | AdjointReturnType |
typedef EigenBase< Derived > | Base |
typedef internal::traits < Derived >::Index | Index |
typedef internal::add_const_on_value_type_if_arithmetic < typename internal::packet_traits < Scalar >::type >::type | PacketReturnType |
typedef internal::packet_traits < Scalar >::type | PacketScalar |
typedef SparseMatrix< Scalar, Flags &RowMajorBit?RowMajor:ColMajor > | PlainObject |
typedef internal::traits < Derived >::Scalar | Scalar |
typedef SparseMatrixBase | StorageBaseType |
typedef internal::traits < Derived >::StorageKind | StorageKind |
Public Member Functions | |
template<typename Dest > | |
void | addTo (Dest &dst) const |
const AdjointReturnType | adjoint () const |
template<typename Dest > | |
void | applyThisOnTheLeft (Dest &dst) const |
template<typename Dest > | |
void | applyThisOnTheRight (Dest &dst) const |
template<typename CustomBinaryOp , typename OtherDerived > | |
const CwiseBinaryOp < CustomBinaryOp, const Derived, const OtherDerived > | binaryExpr (const Eigen::SparseMatrixBase< OtherDerived > &other, const CustomBinaryOp &func=CustomBinaryOp()) 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 |
SparseInnerVectorSet< Derived, 1 > | col (Index j) |
const SparseInnerVectorSet < Derived, 1 > | col (Index j) const |
Index | cols () const |
ConjugateReturnType | conjugate () const |
Derived & | const_cast_derived () const |
const Derived & | const_derived () 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 EIGEN_SPARSE_CWISE_PRODUCT_RETURN_TYPE | cwiseProduct (const MatrixBase< 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 |
template<typename OtherDerived > | |
Scalar | dot (const MatrixBase< OtherDerived > &other) const |
template<typename OtherDerived > | |
Scalar | dot (const SparseMatrixBase< OtherDerived > &other) const |
template<typename OtherDerived > | |
const | EIGEN_CWISE_PRODUCT_RETURN_TYPE (Derived, OtherDerived) cwiseProduct(const Eigen |
const internal::eval< Derived > ::type | eval () const |
template<typename Dest > | |
void | evalTo (Dest &dst) const |
template<typename DenseDerived > | |
void | evalTo (MatrixBase< DenseDerived > &dst) const |
const ImagReturnType | imag () const |
NonConstImagReturnType | imag () |
Index | innerSize () const |
SparseInnerVectorSet< Derived, 1 > | innerVector (Index outer) |
const SparseInnerVectorSet < Derived, 1 > | innerVector (Index outer) const |
SparseInnerVectorSet< Derived, Dynamic > | innerVectors (Index outerStart, Index outerSize) |
const SparseInnerVectorSet < Derived, Dynamic > | innerVectors (Index outerStart, Index outerSize) const |
template<typename OtherDerived > | |
bool | isApprox (const SparseMatrixBase< OtherDerived > &other, RealScalar prec=NumTraits< Scalar >::dummy_precision()) const |
template<typename OtherDerived > | |
bool | isApprox (const MatrixBase< OtherDerived > &other, RealScalar prec=NumTraits< Scalar >::dummy_precision()) const |
bool | isRValue () const |
bool | isVector () const |
Derived & | markAsRValue () |
SparseInnerVectorSet< Derived, Dynamic > | middleCols (Index start, Index size) |
const SparseInnerVectorSet < Derived, Dynamic > | middleCols (Index start, Index size) const |
SparseInnerVectorSet< Derived, Dynamic > | middleRows (Index start, Index size) |
const SparseInnerVectorSet < Derived, Dynamic > | middleRows (Index start, Index size) const |
Index | nonZeros () const |
RealScalar | norm () const |
const ScalarMultipleReturnType | operator* (const Scalar &scalar) const |
const ScalarMultipleReturnType | operator* (const RealScalar &scalar) const |
const CwiseUnaryOp < internal::scalar_multiple2_op < Scalar, std::complex< Scalar > >, const 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 SparseDiagonalProduct < Derived, OtherDerived > | operator* (const DiagonalBase< OtherDerived > &other) const |
template<typename OtherDerived > | |
const SparseDenseProductReturnType < Derived, OtherDerived > ::Type | operator* (const MatrixBase< OtherDerived > &other) const |
Derived & | operator*= (const Scalar &other) |
template<typename OtherDerived > | |
Derived & | operator*= (const SparseMatrixBase< OtherDerived > &other) |
template<typename OtherDerived > | |
Derived & | operator+= (const SparseMatrixBase< OtherDerived > &other) |
const CwiseUnaryOp < internal::scalar_opposite_op < typename internal::traits < Derived >::Scalar >, const Derived > | operator- () const |
template<typename OtherDerived > | |
Derived & | operator-= (const SparseMatrixBase< OtherDerived > &other) |
const CwiseUnaryOp < internal::scalar_quotient1_op < typename internal::traits < Derived >::Scalar >, const Derived > | operator/ (const Scalar &scalar) const |
Derived & | operator/= (const Scalar &other) |
template<typename OtherDerived > | |
Derived & | operator= (const EigenBase< OtherDerived > &other) |
template<typename OtherDerived > | |
Derived & | operator= (const ReturnByValue< OtherDerived > &other) |
template<typename OtherDerived > | |
Derived & | operator= (const SparseMatrixBase< OtherDerived > &other) |
Derived & | operator= (const Derived &other) |
template<typename Lhs , typename Rhs > | |
Derived & | operator= (const SparseSparseProduct< Lhs, Rhs > &product) |
Index | outerSize () const |
RealReturnType | real () const |
NonConstRealReturnType | real () |
SparseInnerVectorSet< Derived, 1 > | row (Index i) |
const SparseInnerVectorSet < Derived, 1 > | row (Index i) const |
Index | rows () const |
template<unsigned int UpLo> | |
const SparseSelfAdjointView < Derived, UpLo > | selfadjointView () const |
template<unsigned int UpLo> | |
SparseSelfAdjointView< Derived, UpLo > | selfadjointView () |
Index | size () const |
SparseMatrixBase () | |
RealScalar | squaredNorm () const |
SparseInnerVectorSet< Derived, Dynamic > | subcols (Index start, Index size) |
const SparseInnerVectorSet < Derived, Dynamic > | subcols (Index start, Index size) const |
SparseInnerVectorSet< Derived, Dynamic > | subrows (Index start, Index size) |
const SparseInnerVectorSet < Derived, Dynamic > | subrows (Index start, Index size) const |
template<typename Dest > | |
void | subTo (Dest &dst) const |
Scalar | sum () const |
Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTime > | toDense () const |
Transpose< Derived > | transpose () |
const Transpose< const Derived > | transpose () const |
template<int Mode> | |
const SparseTriangularView < Derived, Mode > | triangularView () 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. | |
template<typename CustomViewOp > | |
const CwiseUnaryView < CustomViewOp, const Derived > | unaryViewExpr (const CustomViewOp &func=CustomViewOp()) const |
Protected Member Functions | |
template<typename OtherDerived > | |
Derived & | assign (const OtherDerived &other) |
template<typename OtherDerived > | |
void | assignGeneric (const OtherDerived &other) |
Protected Attributes | |
bool | m_isRValue |
Friends | |
const ScalarMultipleReturnType | operator* (const Scalar &scalar, const StorageBaseType &matrix) |
const CwiseUnaryOp < internal::scalar_multiple2_op < Scalar, std::complex< Scalar > >, const Derived > | operator* (const std::complex< Scalar > &scalar, const StorageBaseType &matrix) |
template<typename OtherDerived > | |
const SparseDiagonalProduct < OtherDerived, Derived > | operator* (const DiagonalBase< OtherDerived > &lhs, const SparseMatrixBase &rhs) |
template<typename OtherDerived > | |
const DenseSparseProductReturnType < OtherDerived, Derived > ::Type | operator* (const MatrixBase< OtherDerived > &lhs, const Derived &rhs) |
std::ostream & | operator<< (std::ostream &s, const SparseMatrixBase &m) |
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 . |
typedef internal::conditional<NumTraits<Scalar>::IsComplex, CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, Eigen::Transpose<const Derived> >, Transpose<const Derived> >::type AdjointReturnType |
Reimplemented in SparseSparseProduct< LhsNested, RhsNested >, and SparseDenseOuterProduct< Lhs, Rhs, Tr >.
Reimplemented from EigenBase< Derived >.
typedef internal::add_const_on_value_type_if_arithmetic< typename internal::packet_traits<Scalar>::type >::type PacketReturnType |
typedef internal::packet_traits<Scalar>::type PacketScalar |
typedef SparseMatrix<Scalar, Flags&RowMajorBit ? RowMajor : ColMajor> PlainObject |
typedef SparseMatrixBase StorageBaseType |
typedef internal::traits<Derived>::StorageKind StorageKind |
Reimplemented from EigenBase< Derived >.
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.
|
MaxRowsAtCompileTime | |
MaxColsAtCompileTime | |
MaxSizeAtCompileTime | |
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. |
IsRowMajor |
SparseMatrixBase | ( | ) | [inline] |
void addTo | ( | Dest & | dst | ) | const [inline, inherited] |
const AdjointReturnType adjoint | ( | ) | const [inline] |
Referenced by SparseSelfAdjointView< MatrixType, UpLo >::rankUpdate().
void applyThisOnTheLeft | ( | Dest & | dst | ) | const [inline, inherited] |
Reimplemented in HouseholderSequence< VectorsType, CoeffsType, Side >.
void applyThisOnTheRight | ( | Dest & | dst | ) | const [inline, inherited] |
Reimplemented in HouseholderSequence< VectorsType, CoeffsType, Side >.
Derived& assign | ( | const OtherDerived & | other | ) | [inline, protected] |
void assignGeneric | ( | const OtherDerived & | other | ) | [inline, protected] |
const CwiseBinaryOp<CustomBinaryOp, const Derived, const OtherDerived> binaryExpr | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other, |
const CustomBinaryOp & | func = CustomBinaryOp() |
||
) | const [inline] |
*this
and other *this
and other The template parameter CustomBinaryOp is the type of the functor of the custom operator (see class CwiseBinaryOp for an example)
Here is an example illustrating the use of custom functors:
#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)
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.
SparseInnerVectorSet< Derived, 1 > col | ( | Index | i | ) |
*this
. For column-major matrix only. References EIGEN_STATIC_ASSERT.
const SparseInnerVectorSet< Derived, 1 > col | ( | Index | i | ) | const |
*this
. For column-major matrix only. (read-only version) References EIGEN_STATIC_ASSERT.
Reimplemented from EigenBase< Derived >.
Reimplemented in SparseInnerVectorSet< SparseMatrix< _Scalar, _Options, _Index >, Size >, SparseSparseProduct< LhsNested, RhsNested >, SparseMatrix< _Scalar, _Options, _Index >, SparseMatrix< Scalar >, SparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar, ColMajor >, SparseMatrix< Scalar, ColMajor, int >, SparseMatrix< Scalar, RowMajor, Index >, SparseMatrix< Scalar, RowMajor >, SparseDenseOuterProduct< Lhs, Rhs, Tr >, SparseInnerVectorSet< MatrixType, Size >, SparseDiagonalProduct< Lhs, Rhs >, SparseVector< _Scalar, _Options, _Index >, MappedSparseMatrix< _Scalar, _Flags, _Index >, SparseView< MatrixType >, and SparseTriangularView< MatrixType, Mode >.
Referenced by SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::assign(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::assignGeneric(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::innerSize(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::isVector(), SluMatrix::Map(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::outerSize(), and SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::size().
ConjugateReturnType conjugate | ( | ) | const [inline] |
*this
.Derived& const_cast_derived | ( | ) | const [inline, inherited] |
const Derived& const_derived | ( | ) | const [inline, inherited] |
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 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<std::binder1st<std::equal_to<Scalar> >, const Derived> cwiseEqual | ( | const Scalar & | s | ) | const [inline] |
*this
and a scalar s 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 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_max_op<Scalar>, const Derived, const ConstantReturnType> cwiseMax | ( | 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<internal::scalar_min_op<Scalar>, const Derived, const ConstantReturnType> cwiseMin | ( | const Scalar & | other | ) | const [inline] |
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 EIGEN_SPARSE_CWISE_PRODUCT_RETURN_TYPE cwiseProduct | ( | const MatrixBase< OtherDerived > & | other | ) | const [inline] |
References EIGEN_SPARSE_CWISE_PRODUCT_RETURN_TYPE.
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
Derived& derived | ( | ) | [inline, inherited] |
Referenced by MatrixBase< Derived >::applyOnTheLeft(), MatrixBase< Derived >::applyOnTheRight(), EigenBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::applyThisOnTheLeft(), EigenBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::applyThisOnTheRight(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::applyTranspositionOnTheLeft(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::applyTranspositionOnTheRight(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::assign(), SparseVector< _Scalar, _Options, _Index >::assign(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::assignGeneric(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::binaryExpr(), TriangularBase< SelfAdjointView< MatrixType, UpLo > >::coeff(), TriangularBase< SelfAdjointView< MatrixType, UpLo > >::coeffRef(), EigenBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::cols(), TriangularBase< SelfAdjointView< MatrixType, UpLo > >::cols(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::cols(), TriangularBase< SelfAdjointView< MatrixType, UpLo > >::copyCoeff(), SparseMatrixBase< Derived >::dot(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::eval(), EigenBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::evalTo(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::evalTo(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::indices(), TriangularBase< SelfAdjointView< MatrixType, UpLo > >::innerStride(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::inverse(), TriangularView< _MatrixType, _Mode >::lazyAssign(), SluMatrix::Map(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::markAsRValue(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::nonZeros(), RotationBase< Derived, 3 >::operator*(), Translation< _Scalar, _Dim >::operator*(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::operator*(), SparseMatrixBase< Derived >::operator*(), Transform< _Scalar, _Dim, _Mode, _Options >::operator*(), Eigen::operator*(), MatrixBase< Derived >::operator*=(), DenseBase< Derived >::operator+=(), SparseMatrixBase< Derived >::operator+=(), DenseBase< Derived >::operator-=(), SparseMatrixBase< Derived >::operator-=(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::operator=(), MatrixBase< Derived >::operator=(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::operator=(), TriangularView< _MatrixType, _Mode >::operator=(), DenseBase< Derived >::operator=(), Transform< _Scalar, _Dim, _Mode, _Options >::operator=(), Map< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, IndexType >, _PacketAccess >::operator=(), PlainObjectBase< Matrix< int, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::operator=(), SparseMatrix< Scalar, RowMajor >::operator=(), TriangularBase< SelfAdjointView< MatrixType, UpLo > >::outerStride(), PlainObjectBase< Matrix< int, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::PlainObjectBase(), PlainObjectBase< Matrix< int, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::resizeLike(), EigenBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::rows(), TriangularBase< SelfAdjointView< MatrixType, UpLo > >::rows(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::rows(), SimplicialCholeskyBase< SimplicialLDLT< _MatrixType, _UpLo > >::solve(), PardisoImpl< PardisoLU< MatrixType > >::solve(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::solve(), CholmodBase< _MatrixType, _UpLo, CholmodSimplicialLLT< _MatrixType, _UpLo > >::solve(), PastixBase< PastixLU< _MatrixType > >::solve(), SparseTriangularView< MatrixType, Mode >::solveInPlace(), SparseMatrix< Scalar, RowMajor >::SparseMatrix(), SparseVector< _Scalar, _Options, _Index >::SparseVector(), TriangularView< _MatrixType, _Mode >::swap(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::toDense(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::toDenseMatrix(), Transform< _Scalar, _Dim, _Mode, _Options >::Transform(), PermutationBase< PermutationMatrix< SizeAtCompileTime, MaxSizeAtCompileTime, Index > >::transpose(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::transpose(), and SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::twistedBy().
const Derived& derived | ( | ) | const [inline, inherited] |
internal::traits< Derived >::Scalar dot | ( | const MatrixBase< OtherDerived > & | other | ) | const |
internal::traits< Derived >::Scalar dot | ( | const SparseMatrixBase< OtherDerived > & | other | ) | const |
const EIGEN_CWISE_PRODUCT_RETURN_TYPE | ( | Derived | , |
OtherDerived | |||
) | 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 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.
void evalTo | ( | Dest & | dst | ) | const [inline, inherited] |
void evalTo | ( | MatrixBase< DenseDerived > & | dst | ) | const [inline] |
const ImagReturnType imag | ( | ) | const [inline] |
*this
.NonConstImagReturnType imag | ( | ) | [inline] |
*this
.Reimplemented in SparseMatrix< _Scalar, _Options, _Index >, SparseMatrix< Scalar >, SparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar, ColMajor >, SparseMatrix< Scalar, ColMajor, int >, SparseMatrix< Scalar, RowMajor, Index >, SparseMatrix< Scalar, RowMajor >, SparseVector< _Scalar, _Options, _Index >, MappedSparseMatrix< _Scalar, _Flags, _Index >, and SparseView< MatrixType >.
SparseInnerVectorSet< Derived, 1 > innerVector | ( | Index | outer | ) |
*this
if *this
is col-major (resp. row-major). const SparseInnerVectorSet< Derived, 1 > innerVector | ( | Index | outer | ) | const |
*this
if *this
is col-major (resp. row-major). Read-only. SparseInnerVectorSet< Derived, Dynamic > innerVectors | ( | Index | outerStart, |
Index | outerSize | ||
) |
*this
if *this
is col-major (resp. row-major). const SparseInnerVectorSet< Derived, Dynamic > innerVectors | ( | Index | outerStart, |
Index | outerSize | ||
) | const |
*this
if *this
is col-major (resp. row-major). Read-only. bool isApprox | ( | const SparseMatrixBase< OtherDerived > & | other, |
RealScalar | prec = NumTraits<Scalar>::dummy_precision() |
||
) | const [inline] |
bool isApprox | ( | const MatrixBase< OtherDerived > & | other, |
RealScalar | prec = NumTraits<Scalar>::dummy_precision() |
||
) | const [inline] |
Derived& markAsRValue | ( | ) | [inline] |
SparseInnerVectorSet< Derived, Dynamic > middleCols | ( | Index | start, |
Index | size | ||
) |
*this
. For column-major matrix only. References EIGEN_STATIC_ASSERT.
const SparseInnerVectorSet< Derived, Dynamic > middleCols | ( | Index | start, |
Index | size | ||
) | const |
*this
. For column-major matrix only. (read-only version) References EIGEN_STATIC_ASSERT.
SparseInnerVectorSet< Derived, Dynamic > middleRows | ( | Index | start, |
Index | size | ||
) |
*this
. For row-major matrix only. References EIGEN_STATIC_ASSERT.
const SparseInnerVectorSet< Derived, Dynamic > middleRows | ( | Index | start, |
Index | size | ||
) | const |
*this
. For row-major matrix only. (read-only version) References EIGEN_STATIC_ASSERT.
Reimplemented in SparseInnerVectorSet< SparseMatrix< _Scalar, _Options, _Index >, Size >, SparseMatrix< _Scalar, _Options, _Index >, SparseMatrix< Scalar >, SparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar, ColMajor >, SparseMatrix< Scalar, ColMajor, int >, SparseMatrix< Scalar, RowMajor, Index >, SparseMatrix< Scalar, RowMajor >, SparseVector< _Scalar, _Options, _Index >, MappedSparseMatrix< _Scalar, _Flags, _Index >, and TransposeImpl< MatrixType, Sparse >.
Referenced by SluMatrix::Map().
References sqrt().
const ScalarMultipleReturnType operator* | ( | const Scalar & | scalar | ) | const [inline] |
*this
scaled by the scalar factor scalar const ScalarMultipleReturnType operator* | ( | const RealScalar & | scalar | ) | const |
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 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 SparseDiagonalProduct< Derived, OtherDerived > operator* | ( | const DiagonalBase< OtherDerived > & | other | ) | const |
const SparseDenseProductReturnType< Derived, OtherDerived >::Type operator* | ( | const MatrixBase< OtherDerived > & | other | ) | const [inline] |
sparse * dense (returns a dense object unless it is an outer product)
Derived & operator*= | ( | const Scalar & | other | ) | [inline] |
Derived& operator*= | ( | const SparseMatrixBase< OtherDerived > & | other | ) |
Derived & operator+= | ( | const SparseMatrixBase< OtherDerived > & | other | ) | [inline] |
References EigenBase< Derived >::derived().
const CwiseUnaryOp<internal::scalar_opposite_op<typename internal::traits<Derived>::Scalar>, const Derived> operator- | ( | ) | const [inline] |
*this
Derived & operator-= | ( | const SparseMatrixBase< OtherDerived > & | other | ) | [inline] |
References EigenBase< Derived >::derived().
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 Derived & operator/= | ( | const Scalar & | other | ) | [inline] |
Derived& operator= | ( | const EigenBase< OtherDerived > & | other | ) | [inline] |
Derived& operator= | ( | const ReturnByValue< OtherDerived > & | other | ) | [inline] |
Derived& operator= | ( | const SparseMatrixBase< OtherDerived > & | other | ) | [inline] |
Reimplemented in SparseMatrix< _Scalar, _Options, _Index >, SparseMatrix< Scalar >, SparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar, ColMajor >, SparseMatrix< Scalar, ColMajor, int >, SparseMatrix< Scalar, RowMajor, Index >, SparseMatrix< Scalar, RowMajor >, SparseVector< _Scalar, _Options, _Index >, and SparseInnerVectorSet< SparseMatrix< _Scalar, _Options, _Index >, Size >.
Derived& operator= | ( | const Derived & | other | ) | [inline] |
Derived & operator= | ( | const SparseSparseProduct< Lhs, Rhs > & | product | ) | [inline] |
Reimplemented in SparseMatrix< _Scalar, _Options, _Index >, SparseMatrix< Scalar >, SparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar, ColMajor >, SparseMatrix< Scalar, ColMajor, int >, SparseMatrix< Scalar, RowMajor, Index >, SparseMatrix< Scalar, RowMajor >, SparseVector< _Scalar, _Options, _Index >, MappedSparseMatrix< _Scalar, _Flags, _Index >, and SparseView< MatrixType >.
Referenced by SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::assign(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::assignGeneric(), and SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::evalTo().
RealReturnType real | ( | ) | const [inline] |
*this
.NonConstRealReturnType real | ( | ) | [inline] |
*this
.SparseInnerVectorSet< Derived, 1 > row | ( | Index | i | ) |
*this
. For row-major matrix only. References EIGEN_STATIC_ASSERT.
const SparseInnerVectorSet< Derived, 1 > row | ( | Index | i | ) | const |
*this
. For row-major matrix only. (read-only version) References EIGEN_STATIC_ASSERT.
Reimplemented from EigenBase< Derived >.
Reimplemented in SparseInnerVectorSet< SparseMatrix< _Scalar, _Options, _Index >, Size >, SparseSparseProduct< LhsNested, RhsNested >, SparseMatrix< _Scalar, _Options, _Index >, SparseMatrix< Scalar >, SparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar, ColMajor >, SparseMatrix< Scalar, ColMajor, int >, SparseMatrix< Scalar, RowMajor, Index >, SparseMatrix< Scalar, RowMajor >, SparseDenseOuterProduct< Lhs, Rhs, Tr >, SparseInnerVectorSet< MatrixType, Size >, SparseDiagonalProduct< Lhs, Rhs >, SparseVector< _Scalar, _Options, _Index >, MappedSparseMatrix< _Scalar, _Flags, _Index >, SparseView< MatrixType >, and SparseTriangularView< MatrixType, Mode >.
Referenced by SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::assign(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::assignGeneric(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::innerSize(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::isVector(), SluMatrix::Map(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::outerSize(), SparseMatrixBase< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::size(), SimplicialCholeskyBase< SimplicialLDLT< _MatrixType, _UpLo > >::solve(), PardisoImpl< PardisoLU< MatrixType > >::solve(), IterativeSolverBase< ConjugateGradient< _MatrixType, _UpLo, _Preconditioner > >::solve(), CholmodBase< _MatrixType, _UpLo, CholmodSimplicialLLT< _MatrixType, _UpLo > >::solve(), PastixBase< PastixLU< _MatrixType > >::solve(), and SparseTriangularView< MatrixType, Mode >::solveInPlace().
const SparseSelfAdjointView< Derived, UpLo > selfadjointView | ( | ) | const [inline] |
SparseSelfAdjointView< Derived, UpLo > selfadjointView | ( | ) | [inline] |
Reimplemented from EigenBase< Derived >.
Referenced by SparseMatrixBase< Derived >::dot(), and SparseVector< _Scalar, _Options, _Index >::operator=().
NumTraits< typename internal::traits< Derived >::Scalar >::Real squaredNorm | ( | ) | const [inline] |
References real().
SparseInnerVectorSet<Derived,Dynamic> subcols | ( | Index | start, |
Index | size | ||
) |
const SparseInnerVectorSet<Derived,Dynamic> subcols | ( | Index | start, |
Index | size | ||
) | const |
SparseInnerVectorSet<Derived,Dynamic> subrows | ( | Index | start, |
Index | size | ||
) |
const SparseInnerVectorSet<Derived,Dynamic> subrows | ( | Index | start, |
Index | size | ||
) | const |
void subTo | ( | Dest & | dst | ) | const [inline, inherited] |
Reimplemented in SparseVector< _Scalar, _Options, _Index >.
Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime> toDense | ( | ) | const [inline] |
const SparseTriangularView< Derived, Mode > triangularView | ( | ) | const [inline] |
SparseSymmetricPermutationProduct<Derived,Upper|Lower> twistedBy | ( | const PermutationMatrix< Dynamic, Dynamic, Index > & | perm | ) | const [inline] |
Referenced by IncompleteLUT< _Scalar >::factorize(), SimplicialCholeskyBase< SimplicialLDLT< _MatrixType, _UpLo > >::factorize(), PardisoLLT< MatrixType, _UpLo >::getMatrix(), PardisoLDLT< MatrixType, Options >::getMatrix(), and SimplicialCholeskyBase< Derived >::ordering().
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 ScalarMultipleReturnType operator* | ( | const Scalar & | scalar, |
const StorageBaseType & | matrix | ||
) | [friend] |
const CwiseUnaryOp<internal::scalar_multiple2_op<Scalar,std::complex<Scalar> >, const Derived> operator* | ( | const std::complex< Scalar > & | scalar, |
const StorageBaseType & | matrix | ||
) | [friend] |
const SparseDiagonalProduct<OtherDerived,Derived> operator* | ( | const DiagonalBase< OtherDerived > & | lhs, |
const SparseMatrixBase< Derived > & | rhs | ||
) | [friend] |
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)
std::ostream& operator<< | ( | std::ostream & | s, |
const SparseMatrixBase< Derived > & | m | ||
) | [friend] |
bool m_isRValue [protected] |