Public Types | Public Member Functions | Protected Attributes | Friends
SparseMatrixBase< Derived > Class Template Reference

Base class of any sparse matrices or sparse expressions. More...

#include <SparseMatrixBase.h>

Inheritance diagram for SparseMatrixBase< Derived >:
Inheritance graph
[legend]

List of all members.

Public Types

enum  {
  RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime, ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime, SizeAtCompileTime, MaxRowsAtCompileTime = RowsAtCompileTime,
  MaxColsAtCompileTime = ColsAtCompileTime, MaxSizeAtCompileTime, IsVectorAtCompileTime = RowsAtCompileTime == 1 || ColsAtCompileTime == 1, Flags = internal::traits<Derived>::Flags,
  CoeffReadCost = internal::traits<Derived>::CoeffReadCost, IsRowMajor = Flags&RowMajorBit ? 1 : 0, _HasDirectAccess = (int(Flags)&DirectAccessBit) ? 1 : 0
}
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::conditional
< _HasDirectAccess, const
Scalar &, Scalar >::type 
CoeffReturnType
typedef internal::conditional
< NumTraits< Scalar >
::IsComplex, const
CwiseUnaryOp
< internal::scalar_conjugate_op
< Scalar >, const Derived >
, const Derived & >::type 
ConjugateReturnType
typedef CwiseNullaryOp
< internal::scalar_constant_op
< Scalar >, Matrix< Scalar,
Dynamic, Dynamic > > 
ConstantReturnType
typedef CwiseUnaryOp
< internal::scalar_imag_op
< Scalar >, const Derived > 
ImagReturnType
typedef internal::traits
< Derived >::Index 
Index
typedef CwiseUnaryView
< internal::scalar_imag_ref_op
< Scalar >, Derived > 
NonConstImagReturnType
typedef internal::conditional
< NumTraits< Scalar >
::IsComplex, CwiseUnaryView
< internal::scalar_real_ref_op
< Scalar >, Derived >, Derived & >
::type 
NonConstRealReturnType
typedef
internal::packet_traits
< Scalar >::type 
PacketScalar
typedef SparseMatrix< Scalar,
Flags &RowMajorBit?RowMajor:ColMajor > 
PlainObject
typedef internal::conditional
< NumTraits< Scalar >
::IsComplex, const
CwiseUnaryOp
< internal::scalar_real_op
< Scalar >, const Derived >
, const Derived & >::type 
RealReturnType
typedef NumTraits< Scalar >::Real RealScalar
typedef internal::traits
< Derived >::Scalar 
Scalar
typedef CwiseUnaryOp
< internal::scalar_multiple_op
< Scalar >, const Derived > 
ScalarMultipleReturnType
typedef CwiseUnaryOp
< internal::scalar_quotient1_op
< Scalar >, const Derived > 
ScalarQuotient1ReturnType
typedef Matrix< Scalar,
EIGEN_SIZE_MAX(RowsAtCompileTime,
ColsAtCompileTime),
EIGEN_SIZE_MAX(RowsAtCompileTime,
ColsAtCompileTime)> 
SquareMatrixType
typedef SparseMatrixBase StorageBaseType
typedef internal::traits
< Derived >::StorageKind 
StorageKind

Public Member Functions

template<typename Lhs , typename Rhs >
void _experimentalNewProduct (const Lhs &lhs, const Rhs &rhs)
const AdjointReturnType adjoint () const
template<typename OtherDerived >
void assignGeneric (const OtherDerived &other)
template<typename CustomBinaryOp , typename OtherDerived >
EIGEN_STRONG_INLINE const
CwiseBinaryOp< CustomBinaryOp,
const Derived, const
OtherDerived > 
binaryExpr (const EIGEN_CURRENT_STORAGE_BASE_CLASS< 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
EIGEN_STRONG_INLINE const
CwiseUnaryOp
< internal::scalar_abs_op
< Scalar >, const Derived > 
cwiseAbs () const
EIGEN_STRONG_INLINE 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_CURRENT_STORAGE_BASE_CLASS< 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 >
EIGEN_STRONG_INLINE const
CwiseBinaryOp
< internal::scalar_max_op
< Scalar >, const Derived,
const OtherDerived > 
cwiseMax (const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const
template<typename OtherDerived >
EIGEN_STRONG_INLINE const
CwiseBinaryOp
< internal::scalar_min_op
< Scalar >, const Derived,
const OtherDerived > 
cwiseMin (const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const
template<typename OtherDerived >
const CwiseBinaryOp
< std::not_equal_to< Scalar >
, const Derived, const
OtherDerived > 
cwiseNotEqual (const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const
template<typename OtherDerived >
EIGEN_STRONG_INLINE const
EIGEN_SPARSE_CWISE_PRODUCT_RETURN_TYPE 
cwiseProduct (const MatrixBase< OtherDerived > &other) const
template<typename OtherDerived >
EIGEN_STRONG_INLINE const
CwiseBinaryOp
< internal::scalar_quotient_op
< Scalar >, const Derived,
const OtherDerived > 
cwiseQuotient (const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const
const CwiseUnaryOp
< internal::scalar_sqrt_op
< Scalar >, const Derived > 
cwiseSqrt () const
const Derived & derived () const
Derived & derived ()
template<typename OtherDerived >
Scalar dot (const MatrixBase< OtherDerived > &other) const
template<typename OtherDerived >
Scalar dot (const SparseMatrixBase< OtherDerived > &other) const
template<typename OtherDerived >
EIGEN_STRONG_INLINE const EIGEN_CWISE_PRODUCT_RETURN_TYPE (Derived, OtherDerived) cwiseProduct(const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const
const internal::eval< Derived >
::type 
eval () 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 ()
Index nonZeros () const
RealScalar norm () const
const ScalarMultipleReturnType operator* (const Scalar &scalar) const
const CwiseUnaryOp
< internal::scalar_multiple2_op
< Scalar, std::complex< Scalar >
>, const Derived > 
operator* (const std::complex< Scalar > &scalar) const
template<typename OtherDerived >
const
SparseSparseProductReturnType
< Derived, OtherDerived >
::Type 
operator* (const SparseMatrixBase< OtherDerived > &other) const
template<typename OtherDerived >
const 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)
Derived & operator= (const Derived &other)
template<typename OtherDerived >
Derived & operator= (const ReturnByValue< OtherDerived > &other)
template<typename OtherDerived >
Derived & operator= (const SparseMatrixBase< OtherDerived > &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
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
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 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)

Detailed Description

template<typename Derived>
class SparseMatrixBase< Derived >

Base class of any sparse matrices or sparse expressions.

Template Parameters:
DerivedThis 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.

Definition at line 39 of file SparseMatrixBase.h.


Member Typedef Documentation

template<typename Derived>
typedef internal::conditional<NumTraits<Scalar>::IsComplex, CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, Eigen::Transpose<const Derived> >, Transpose<const Derived> >::type SparseMatrixBase< Derived >::AdjointReturnType

Definition at line 123 of file SparseMatrixBase.h.

template<typename Derived>
typedef EigenBase<Derived> SparseMatrixBase< Derived >::Base
template<typename Derived>
typedef internal::conditional<_HasDirectAccess, const Scalar&, Scalar>::type SparseMatrixBase< Derived >::CoeffReturnType

Definition at line 150 of file SparseMatrixBase.h.

template<typename Derived>
typedef internal::conditional<NumTraits<Scalar>::IsComplex, const CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, const Derived>, const Derived& >::type SparseMatrixBase< Derived >::ConjugateReturnType

Definition at line 39 of file SparseMatrixBase.h.

Definition at line 153 of file SparseMatrixBase.h.

template<typename Derived>
typedef CwiseUnaryOp<internal::scalar_imag_op<Scalar>, const Derived> SparseMatrixBase< Derived >::ImagReturnType

Definition at line 51 of file SparseMatrixBase.h.

template<typename Derived>
typedef internal::traits<Derived>::Index SparseMatrixBase< Derived >::Index

Reimplemented from EigenBase< Derived >.

Definition at line 46 of file SparseMatrixBase.h.

template<typename Derived>
typedef CwiseUnaryView<internal::scalar_imag_ref_op<Scalar>, Derived> SparseMatrixBase< Derived >::NonConstImagReturnType

Definition at line 53 of file SparseMatrixBase.h.

Definition at line 49 of file SparseMatrixBase.h.

template<typename Derived>
typedef internal::packet_traits<Scalar>::type SparseMatrixBase< Derived >::PacketScalar

Definition at line 44 of file SparseMatrixBase.h.

template<typename Derived>
typedef SparseMatrix<Scalar, Flags&RowMajorBit ? RowMajor : ColMajor> SparseMatrixBase< Derived >::PlainObject

Definition at line 126 of file SparseMatrixBase.h.

template<typename Derived>
typedef internal::conditional<NumTraits<Scalar>::IsComplex, const CwiseUnaryOp<internal::scalar_real_op<Scalar>, const Derived>, const Derived& >::type SparseMatrixBase< Derived >::RealReturnType

Definition at line 44 of file SparseMatrixBase.h.

template<typename Derived>
typedef NumTraits<Scalar>::Real SparseMatrixBase< Derived >::RealScalar

This is the "real scalar" type; if the Scalar type is already real numbers (e.g. int, float or double) then RealScalar is just the same as Scalar. If Scalar is std::complex<T> then RealScalar is T.

See also:
class NumTraits

Definition at line 146 of file SparseMatrixBase.h.

template<typename Derived>
typedef internal::traits<Derived>::Scalar SparseMatrixBase< Derived >::Scalar

Definition at line 43 of file SparseMatrixBase.h.

template<typename Derived>
typedef CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const Derived> SparseMatrixBase< Derived >::ScalarMultipleReturnType

Definition at line 32 of file SparseMatrixBase.h.

template<typename Derived>
typedef CwiseUnaryOp<internal::scalar_quotient1_op<Scalar>, const Derived> SparseMatrixBase< Derived >::ScalarQuotient1ReturnType

Definition at line 34 of file SparseMatrixBase.h.

type of the equivalent square matrix

Definition at line 157 of file SparseMatrixBase.h.

template<typename Derived>
typedef SparseMatrixBase SparseMatrixBase< Derived >::StorageBaseType

Definition at line 48 of file SparseMatrixBase.h.

template<typename Derived>
typedef internal::traits<Derived>::StorageKind SparseMatrixBase< Derived >::StorageKind

Reimplemented from EigenBase< Derived >.

Definition at line 45 of file SparseMatrixBase.h.


Member Enumeration Documentation

template<typename Derived>
anonymous enum
Enumerator:
RowsAtCompileTime 

The number of rows at compile-time. This is just a copy of the value provided by the Derived type. If a value is not known at compile-time, it is set to the Dynamic constant.

See also:
MatrixBase::rows(), MatrixBase::cols(), ColsAtCompileTime, SizeAtCompileTime
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.

See also:
MatrixBase::rows(), MatrixBase::cols(), RowsAtCompileTime, SizeAtCompileTime
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.

See also:
RowsAtCompileTime, ColsAtCompileTime
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 
_HasDirectAccess 

Definition at line 60 of file SparseMatrixBase.h.


Constructor & Destructor Documentation

template<typename Derived>
SparseMatrixBase< Derived >::SparseMatrixBase ( ) [inline]

Definition at line 190 of file SparseMatrixBase.h.


Member Function Documentation

template<typename Derived >
template<typename Lhs , typename Rhs >
void SparseMatrixBase< Derived >::_experimentalNewProduct ( const Lhs &  lhs,
const Rhs &  rhs 
) [inline]

Definition at line 383 of file SparseSparseProduct.h.

template<typename Derived>
const AdjointReturnType SparseMatrixBase< Derived >::adjoint ( ) const [inline]

Definition at line 430 of file SparseMatrixBase.h.

template<typename Derived>
template<typename OtherDerived >
void SparseMatrixBase< Derived >::assignGeneric ( const OtherDerived &  other) [inline]

Definition at line 211 of file SparseMatrixBase.h.

template<typename Derived>
template<typename CustomBinaryOp , typename OtherDerived >
EIGEN_STRONG_INLINE const CwiseBinaryOp<CustomBinaryOp, const Derived, const OtherDerived> SparseMatrixBase< Derived >::binaryExpr ( const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &  other,
const CustomBinaryOp &  func = CustomBinaryOp() 
) const [inline]
Returns:
an expression of the difference of *this and other
Note:
If you want to substract a given scalar from all coefficients, see Cwise::operator-().
See also:
class CwiseBinaryOp, operator-=()
Returns:
an expression of the sum of *this and other
Note:
If you want to add a given scalar to all coefficients, see Cwise::operator+().
See also:
class CwiseBinaryOp, operator+=()
Returns:
an expression of a custom coefficient-wise operator func of *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:

See also:
class CwiseBinaryOp, operator+(), operator-(), cwiseProduct()

Definition at line 58 of file SparseMatrixBase.h.

template<typename Derived>
template<typename NewType >
internal::cast_return_type<Derived,const CwiseUnaryOp<internal::scalar_cast_op<typename internal::traits<Derived>::Scalar, NewType>, const Derived> >::type SparseMatrixBase< Derived >::cast ( ) const [inline]
Returns:
an expression of *this with the Scalar type casted to NewScalar.

The template parameter NewScalar is the type we are casting the scalars to.

See also:
class CwiseUnaryOp

Definition at line 108 of file SparseMatrixBase.h.

template<typename Derived >
SparseInnerVectorSet< Derived, 1 > SparseMatrixBase< Derived >::col ( Index  i)
Returns:
the i-th column of the matrix *this. For column-major matrix only.

Definition at line 386 of file SparseBlock.h.

template<typename Derived >
const SparseInnerVectorSet< Derived, 1 > SparseMatrixBase< Derived >::col ( Index  i) const
Returns:
the i-th column of the matrix *this. For column-major matrix only. (read-only version)

Definition at line 395 of file SparseBlock.h.

template<typename Derived>
Index SparseMatrixBase< Derived >::cols ( void  ) const [inline]
template<typename Derived>
ConjugateReturnType SparseMatrixBase< Derived >::conjugate ( void  ) const [inline]
Returns:
an expression of the complex conjugate of *this.
See also:
adjoint()

Definition at line 117 of file SparseMatrixBase.h.

template<typename Derived>
Derived& SparseMatrixBase< Derived >::const_cast_derived ( ) const [inline]

Reimplemented from EigenBase< Derived >.

Definition at line 161 of file SparseMatrixBase.h.

template<typename Derived>
EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived> SparseMatrixBase< Derived >::cwiseAbs ( ) const [inline]
Returns:
an expression of the coefficient-wise absolute value of *this

Example:

MatrixXd m(2,3);
m << 2, -4, 6,   
     -5, 1, 0;
cout << m.cwiseAbs() << endl;

Output:

See also:
cwiseAbs2()

Definition at line 37 of file SparseMatrixBase.h.

template<typename Derived>
EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived> SparseMatrixBase< Derived >::cwiseAbs2 ( ) const [inline]
Returns:
an expression of the coefficient-wise squared absolute value of *this

Example:

MatrixXd m(2,3);
m << 2, -4, 6,   
     -5, 1, 0;
cout << m.cwiseAbs2() << endl;

Output:

See also:
cwiseAbs()

Definition at line 47 of file SparseMatrixBase.h.

template<typename Derived>
template<typename OtherDerived >
const CwiseBinaryOp<std::equal_to<Scalar>, const Derived, const OtherDerived> SparseMatrixBase< Derived >::cwiseEqual ( const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &  other) const [inline]
Returns:
an expression of the coefficient-wise == operator of *this and other
Warning:
this performs an exact comparison, which is generally a bad idea with floating-point types. In order to check for equality between two vectors or matrices with floating-point coefficients, it is generally a far better idea to use a fuzzy comparison as provided by isApprox() and isMuchSmallerThan().

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:

See also:
cwiseNotEqual(), isApprox(), isMuchSmallerThan()

Definition at line 57 of file SparseMatrixBase.h.

template<typename Derived>
const CwiseUnaryOp<std::binder1st<std::equal_to<Scalar> >, const Derived> SparseMatrixBase< Derived >::cwiseEqual ( const Scalar s) const [inline]
Returns:
an expression of the coefficient-wise == operator of *this and a scalar s
Warning:
this performs an exact comparison, which is generally a bad idea with floating-point types. In order to check for equality between two vectors or matrices with floating-point coefficients, it is generally a far better idea to use a fuzzy comparison as provided by isApprox() and isMuchSmallerThan().
See also:
cwiseEqual(const MatrixBase<OtherDerived> &) const

Definition at line 79 of file SparseMatrixBase.h.

template<typename Derived>
const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived> SparseMatrixBase< Derived >::cwiseInverse ( ) const [inline]
Returns:
an expression of the coefficient-wise inverse of *this.

Example:

MatrixXd m(2,3);
m << 2, 0.5, 1,   
     3, 0.25, 1;
cout << m.cwiseInverse() << endl;

Output:

See also:
cwiseProduct()

Definition at line 67 of file SparseMatrixBase.h.

template<typename Derived>
template<typename OtherDerived >
EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived, const OtherDerived> SparseMatrixBase< Derived >::cwiseMax ( const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &  other) const [inline]
Returns:
an expression of the coefficient-wise max of *this and other

Example:

Vector3d v(2,3,4), w(4,2,3);
cout << v.cwiseMax(w) << endl;

Output:

See also:
class CwiseBinaryOp, min()

Definition at line 104 of file SparseMatrixBase.h.

template<typename Derived>
template<typename OtherDerived >
EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived, const OtherDerived> SparseMatrixBase< Derived >::cwiseMin ( const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &  other) const [inline]
Returns:
an expression of the coefficient-wise min of *this and other

Example:

Vector3d v(2,3,4), w(4,2,3);
cout << v.cwiseMin(w) << endl;

Output:

See also:
class CwiseBinaryOp, max()

Definition at line 90 of file SparseMatrixBase.h.

template<typename Derived>
template<typename OtherDerived >
const CwiseBinaryOp<std::not_equal_to<Scalar>, const Derived, const OtherDerived> SparseMatrixBase< Derived >::cwiseNotEqual ( const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &  other) const [inline]
Returns:
an expression of the coefficient-wise != operator of *this and other
Warning:
this performs an exact comparison, which is generally a bad idea with floating-point types. In order to check for equality between two vectors or matrices with floating-point coefficients, it is generally a far better idea to use a fuzzy comparison as provided by isApprox() and isMuchSmallerThan().

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:

See also:
cwiseEqual(), isApprox(), isMuchSmallerThan()

Definition at line 76 of file SparseMatrixBase.h.

template<typename Derived >
template<typename OtherDerived >
EIGEN_STRONG_INLINE const EIGEN_SPARSE_CWISE_PRODUCT_RETURN_TYPE SparseMatrixBase< Derived >::cwiseProduct ( const MatrixBase< OtherDerived > &  other) const

Definition at line 346 of file SparseCwiseBinaryOp.h.

template<typename Derived>
template<typename OtherDerived >
EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived> SparseMatrixBase< Derived >::cwiseQuotient ( const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &  other) const [inline]
Returns:
an expression of the coefficient-wise quotient of *this and other

Example:

Vector3d v(2,3,4), w(4,2,3);
cout << v.cwiseQuotient(w) << endl;

Output:

See also:
class CwiseBinaryOp, cwiseProduct(), cwiseInverse()

Definition at line 118 of file SparseMatrixBase.h.

template<typename Derived>
const CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived> SparseMatrixBase< Derived >::cwiseSqrt ( ) const [inline]
Returns:
an expression of the coefficient-wise square root of *this.

Example:

Vector3d v(1,2,4);
cout << v.cwiseSqrt() << endl;

Output:

See also:
cwisePow(), cwiseSquare()

Definition at line 57 of file SparseMatrixBase.h.

template<typename Derived>
const Derived& SparseMatrixBase< Derived >::derived ( ) const [inline]
Returns:
a const reference to the derived object

Reimplemented from EigenBase< Derived >.

Definition at line 159 of file SparseMatrixBase.h.

template<typename Derived>
Derived& SparseMatrixBase< Derived >::derived ( ) [inline]
Returns:
a reference to the derived object

Reimplemented from EigenBase< Derived >.

Definition at line 160 of file SparseMatrixBase.h.

template<typename Derived >
template<typename OtherDerived >
internal::traits< Derived >::Scalar SparseMatrixBase< Derived >::dot ( const MatrixBase< OtherDerived > &  other) const

Definition at line 31 of file SparseDot.h.

template<typename Derived >
template<typename OtherDerived >
internal::traits< Derived >::Scalar SparseMatrixBase< Derived >::dot ( const SparseMatrixBase< OtherDerived > &  other) const

Definition at line 55 of file SparseDot.h.

template<typename Derived>
template<typename OtherDerived >
EIGEN_STRONG_INLINE const SparseMatrixBase< Derived >::EIGEN_CWISE_PRODUCT_RETURN_TYPE ( Derived  ,
OtherDerived   
) const [inline]
Returns:
an expression of the Schur product (coefficient wise product) of *this and other

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:

See also:
class CwiseBinaryOp, cwiseAbs2

Definition at line 37 of file SparseMatrixBase.h.

template<typename Derived>
const internal::eval<Derived>::type SparseMatrixBase< Derived >::eval ( ) const [inline]
Returns:
the matrix or vector obtained by evaluating this expression.

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.

Definition at line 577 of file SparseMatrixBase.h.

template<typename Derived>
template<typename DenseDerived >
void SparseMatrixBase< Derived >::evalTo ( MatrixBase< DenseDerived > &  dst) const [inline]

Definition at line 518 of file SparseMatrixBase.h.

template<typename Derived>
const ImagReturnType SparseMatrixBase< Derived >::imag ( ) const [inline]
Returns:
an read-only expression of the imaginary part of *this.
See also:
real()

Definition at line 132 of file SparseMatrixBase.h.

template<typename Derived>
NonConstImagReturnType SparseMatrixBase< Derived >::imag ( ) [inline]
Returns:
a non const expression of the imaginary part of *this.
See also:
real()

Definition at line 188 of file SparseMatrixBase.h.

template<typename Derived>
Index SparseMatrixBase< Derived >::innerSize ( ) const [inline]
template<typename Derived >
SparseInnerVectorSet< Derived, 1 > SparseMatrixBase< Derived >::innerVector ( Index  outer)
Returns:
the outer -th column (resp. row) of the matrix *this if *this is col-major (resp. row-major).

Definition at line 405 of file SparseBlock.h.

template<typename Derived >
const SparseInnerVectorSet< Derived, 1 > SparseMatrixBase< Derived >::innerVector ( Index  outer) const
Returns:
the outer -th column (resp. row) of the matrix *this if *this is col-major (resp. row-major). Read-only.

Definition at line 412 of file SparseBlock.h.

template<typename Derived >
SparseInnerVectorSet< Derived, Dynamic > SparseMatrixBase< Derived >::innerVectors ( Index  outerStart,
Index  outerSize 
)
Returns:
the outer -th column (resp. row) of the matrix *this if *this is col-major (resp. row-major).

Definition at line 455 of file SparseBlock.h.

template<typename Derived >
const SparseInnerVectorSet< Derived, Dynamic > SparseMatrixBase< Derived >::innerVectors ( Index  outerStart,
Index  outerSize 
) const
Returns:
the outer -th column (resp. row) of the matrix *this if *this is col-major (resp. row-major). Read-only.

Definition at line 462 of file SparseBlock.h.

template<typename Derived>
template<typename OtherDerived >
bool SparseMatrixBase< Derived >::isApprox ( const SparseMatrixBase< OtherDerived > &  other,
RealScalar  prec = NumTraits<Scalar>::dummy_precision() 
) const [inline]

Definition at line 532 of file SparseMatrixBase.h.

template<typename Derived>
template<typename OtherDerived >
bool SparseMatrixBase< Derived >::isApprox ( const MatrixBase< OtherDerived > &  other,
RealScalar  prec = NumTraits<Scalar>::dummy_precision() 
) const [inline]

Definition at line 537 of file SparseMatrixBase.h.

template<typename Derived>
bool SparseMatrixBase< Derived >::isRValue ( ) const [inline]

Definition at line 187 of file SparseMatrixBase.h.

template<typename Derived>
bool SparseMatrixBase< Derived >::isVector ( ) const [inline]
Returns:
true if either the number of rows or the number of columns is equal to 1. In other words, this function returns
 rows()==1 || cols()==1 
See also:
rows(), cols(), IsVectorAtCompileTime.

Definition at line 179 of file SparseMatrixBase.h.

template<typename Derived>
Derived& SparseMatrixBase< Derived >::markAsRValue ( ) [inline]

Definition at line 188 of file SparseMatrixBase.h.

template<typename Derived>
Index SparseMatrixBase< Derived >::nonZeros ( ) const [inline]
template<typename Derived >
NumTraits< typename internal::traits< Derived >::Scalar >::Real SparseMatrixBase< Derived >::norm ( ) const [inline]

Definition at line 92 of file SparseDot.h.

template<typename Derived>
const ScalarMultipleReturnType SparseMatrixBase< Derived >::operator* ( const Scalar scalar) const [inline]
Returns:
an expression of *this scaled by the scalar factor scalar

Definition at line 65 of file SparseMatrixBase.h.

template<typename Derived>
const CwiseUnaryOp<internal::scalar_multiple2_op<Scalar,std::complex<Scalar> >, const Derived> SparseMatrixBase< Derived >::operator* ( const std::complex< Scalar > &  scalar) const [inline]

Overloaded for efficient real matrix times complex scalar value

Definition at line 85 of file SparseMatrixBase.h.

template<typename Derived >
template<typename OtherDerived >
const SparseSparseProductReturnType< Derived, OtherDerived >::Type SparseMatrixBase< Derived >::operator* ( const SparseMatrixBase< OtherDerived > &  other) const [inline]

Definition at line 396 of file SparseSparseProduct.h.

template<typename Derived >
template<typename OtherDerived >
const SparseDiagonalProduct< Derived, OtherDerived > SparseMatrixBase< Derived >::operator* ( const DiagonalBase< OtherDerived > &  other) const

Definition at line 190 of file SparseDiagonalProduct.h.

template<typename Derived>
template<typename OtherDerived >
const SparseDenseProductReturnType< Derived, OtherDerived >::Type SparseMatrixBase< Derived >::operator* ( const MatrixBase< OtherDerived > &  other) const [inline]

sparse * dense (returns a dense object unless it is an outer product)

Definition at line 226 of file SparseDenseProduct.h.

template<typename Derived >
EIGEN_STRONG_INLINE Derived & SparseMatrixBase< Derived >::operator*= ( const Scalar other)

Definition at line 128 of file SparseCwiseUnaryOp.h.

template<typename Derived>
template<typename OtherDerived >
Derived& SparseMatrixBase< Derived >::operator*= ( const SparseMatrixBase< OtherDerived > &  other)
template<typename Derived >
template<typename OtherDerived >
EIGEN_STRONG_INLINE Derived & SparseMatrixBase< Derived >::operator+= ( const SparseMatrixBase< OtherDerived > &  other)

Definition at line 330 of file SparseCwiseBinaryOp.h.

template<typename Derived>
const CwiseUnaryOp<internal::scalar_opposite_op<typename internal::traits<Derived>::Scalar>, const Derived> SparseMatrixBase< Derived >::operator- ( ) const [inline]
Returns:
an expression of the opposite of *this

Definition at line 60 of file SparseMatrixBase.h.

template<typename Derived >
template<typename OtherDerived >
EIGEN_STRONG_INLINE Derived & SparseMatrixBase< Derived >::operator-= ( const SparseMatrixBase< OtherDerived > &  other)

Definition at line 314 of file SparseCwiseBinaryOp.h.

template<typename Derived>
const CwiseUnaryOp<internal::scalar_quotient1_op<typename internal::traits<Derived>::Scalar>, const Derived> SparseMatrixBase< Derived >::operator/ ( const Scalar scalar) const [inline]
Returns:
an expression of *this divided by the scalar value scalar

Definition at line 77 of file SparseMatrixBase.h.

template<typename Derived >
EIGEN_STRONG_INLINE Derived & SparseMatrixBase< Derived >::operator/= ( const Scalar other)

Definition at line 138 of file SparseCwiseUnaryOp.h.

template<typename Derived>
template<typename OtherDerived >
Derived& SparseMatrixBase< Derived >::operator= ( const EigenBase< OtherDerived > &  other) [inline]
template<typename Derived>
Derived& SparseMatrixBase< Derived >::operator= ( const Derived &  other) [inline]
template<typename Derived>
template<typename OtherDerived >
Derived& SparseMatrixBase< Derived >::operator= ( const ReturnByValue< OtherDerived > &  other) [inline]
template<typename Derived>
template<typename OtherDerived >
Derived& SparseMatrixBase< Derived >::operator= ( const SparseMatrixBase< OtherDerived > &  other) [inline]
template<typename Derived >
template<typename Lhs , typename Rhs >
Derived & SparseMatrixBase< Derived >::operator= ( const SparseSparseProduct< Lhs, Rhs > &  product) [inline]
template<typename Derived>
Index SparseMatrixBase< Derived >::outerSize ( ) const [inline]
template<typename Derived>
RealReturnType SparseMatrixBase< Derived >::real ( ) const [inline]
Returns:
a read-only expression of the real part of *this.
See also:
imag()

Definition at line 126 of file SparseMatrixBase.h.

template<typename Derived>
NonConstRealReturnType SparseMatrixBase< Derived >::real ( ) [inline]
Returns:
a non const expression of the real part of *this.
See also:
imag()

Definition at line 182 of file SparseMatrixBase.h.

template<typename Derived >
SparseInnerVectorSet< Derived, 1 > SparseMatrixBase< Derived >::row ( Index  i)
Returns:
the i-th row of the matrix *this. For row-major matrix only.

Definition at line 369 of file SparseBlock.h.

template<typename Derived >
const SparseInnerVectorSet< Derived, 1 > SparseMatrixBase< Derived >::row ( Index  i) const
Returns:
the i-th row of the matrix *this. For row-major matrix only. (read-only version)

Definition at line 378 of file SparseBlock.h.

template<typename Derived>
Index SparseMatrixBase< Derived >::rows ( void  ) const [inline]
template<typename Derived >
template<unsigned int UpLo>
const SparseSelfAdjointView< Derived, UpLo > SparseMatrixBase< Derived >::selfadjointView ( ) const [inline]

Definition at line 162 of file SparseSelfAdjointView.h.

template<typename Derived >
template<unsigned int UpLo>
SparseSelfAdjointView< Derived, UpLo > SparseMatrixBase< Derived >::selfadjointView ( ) [inline]

Definition at line 169 of file SparseSelfAdjointView.h.

template<typename Derived>
Index SparseMatrixBase< Derived >::size ( ) const [inline]
Returns:
the number of coefficients, which is rows()*cols().
See also:
rows(), cols(), SizeAtCompileTime.

Reimplemented from EigenBase< Derived >.

Definition at line 171 of file SparseMatrixBase.h.

template<typename Derived >
NumTraits< typename internal::traits< Derived >::Scalar >::Real SparseMatrixBase< Derived >::squaredNorm ( ) const [inline]

Definition at line 85 of file SparseDot.h.

template<typename Derived >
SparseInnerVectorSet< Derived, Dynamic > SparseMatrixBase< Derived >::subcols ( Index  start,
Index  size 
)
Returns:
the i-th column of the matrix *this. For column-major matrix only.

Definition at line 436 of file SparseBlock.h.

template<typename Derived >
const SparseInnerVectorSet< Derived, Dynamic > SparseMatrixBase< Derived >::subcols ( Index  start,
Index  size 
) const
Returns:
the i-th column of the matrix *this. For column-major matrix only. (read-only version)

Definition at line 445 of file SparseBlock.h.

template<typename Derived >
SparseInnerVectorSet< Derived, Dynamic > SparseMatrixBase< Derived >::subrows ( Index  start,
Index  size 
)
Returns:
the i-th row of the matrix *this. For row-major matrix only.

Definition at line 419 of file SparseBlock.h.

template<typename Derived >
const SparseInnerVectorSet< Derived, Dynamic > SparseMatrixBase< Derived >::subrows ( Index  start,
Index  size 
) const
Returns:
the i-th row of the matrix *this. For row-major matrix only. (read-only version)

Definition at line 428 of file SparseBlock.h.

template<typename Derived >
internal::traits< Derived >::Scalar SparseMatrixBase< Derived >::sum ( ) const
Returns:
number of elements to skip to pass from one row (resp. column) to another for a row-major (resp. column-major) matrix. Combined with coeffRef() and the Flags flags, it allows a direct access to the data of the underlying matrix.

Reimplemented in SparseMatrix< _Scalar, _Options, _Index >, SparseMatrix< Scalar, ColMajor, Index >, SparseMatrix< Scalar >, SparseMatrix< Scalar, Upper >, SparseMatrix< Scalar, Lower|UnitDiag >, and SparseVector< _Scalar, _Options, _Index >.

Definition at line 30 of file SparseRedux.h.

template<typename Derived>
Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime> SparseMatrixBase< Derived >::toDense ( ) const [inline]

Definition at line 526 of file SparseMatrixBase.h.

template<typename Derived>
Transpose<Derived> SparseMatrixBase< Derived >::transpose ( ) [inline]

Definition at line 427 of file SparseMatrixBase.h.

template<typename Derived>
const Transpose<const Derived> SparseMatrixBase< Derived >::transpose ( ) const [inline]

Definition at line 428 of file SparseMatrixBase.h.

template<typename Derived >
template<int Mode>
const SparseTriangularView< Derived, Mode > SparseMatrixBase< Derived >::triangularView ( ) const [inline]

Definition at line 95 of file SparseTriangularView.h.

template<typename Derived>
template<typename CustomUnaryOp >
const CwiseUnaryOp<CustomUnaryOp, const Derived> SparseMatrixBase< Derived >::unaryExpr ( const CustomUnaryOp &  func = CustomUnaryOp()) const [inline]

Apply a unary operator coefficient-wise.

Parameters:
[in]funcFunctor implementing the unary operator
Template Parameters:
CustomUnaryOpType of func
Returns:
An expression of a custom coefficient-wise unary operator func of *this

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:

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:

See also:
class CwiseUnaryOp, class CwiseBinaryOp

Definition at line 155 of file SparseMatrixBase.h.

template<typename Derived>
template<typename CustomViewOp >
const CwiseUnaryView<CustomViewOp, const Derived> SparseMatrixBase< Derived >::unaryViewExpr ( const CustomViewOp &  func = CustomViewOp()) const [inline]
Returns:
an expression of a custom coefficient-wise unary operator func of *this

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:

See also:
class CwiseUnaryOp, class CwiseBinaryOp

Definition at line 173 of file SparseMatrixBase.h.


Friends And Related Function Documentation

template<typename Derived>
const ScalarMultipleReturnType operator* ( const Scalar scalar,
const StorageBaseType matrix 
) [friend]

Definition at line 92 of file SparseMatrixBase.h.

template<typename Derived>
const CwiseUnaryOp<internal::scalar_multiple2_op<Scalar,std::complex<Scalar> >, const Derived> operator* ( const std::complex< Scalar > &  scalar,
const StorageBaseType matrix 
) [friend]

Definition at line 96 of file SparseMatrixBase.h.

template<typename Derived>
template<typename OtherDerived >
const SparseDiagonalProduct<OtherDerived,Derived> operator* ( const DiagonalBase< OtherDerived > &  lhs,
const SparseMatrixBase< Derived > &  rhs 
) [friend]

Definition at line 384 of file SparseMatrixBase.h.

template<typename Derived>
template<typename OtherDerived >
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)

Definition at line 390 of file SparseMatrixBase.h.

template<typename Derived>
std::ostream& operator<< ( std::ostream &  s,
const SparseMatrixBase< Derived > &  m 
) [friend]

Definition at line 282 of file SparseMatrixBase.h.


Member Data Documentation

template<typename Derived>
bool SparseMatrixBase< Derived >::m_isRValue [protected]

Definition at line 703 of file SparseMatrixBase.h.


The documentation for this class was generated from the following files:


libicr
Author(s): Robert Krug
autogenerated on Mon Jan 6 2014 11:34:29