a sparse vector class More...
#include <SparseVector.h>
Public Types | |
enum | |
enum | { IsColVector } |
enum | { Options } |
typedef internal::conditional < NumTraits< Scalar > ::IsComplex, CwiseUnaryOp < internal::scalar_conjugate_op < Scalar >, Eigen::Transpose < const SparseVector< _Scalar, _Options, _Index > > >, Transpose< const SparseVector< _Scalar, _Options, _Index > > >::type | AdjointReturnType |
typedef EigenBase < SparseVector< _Scalar, _Options, _Index > > | Base |
typedef internal::traits < SparseVector< _Scalar, _Options, _Index > >::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 < SparseVector< _Scalar, _Options, _Index > >::Scalar | Scalar |
typedef SparseMatrixBase < SparseVector > | SparseBase |
typedef SparseMatrixBase | StorageBaseType |
typedef internal::traits < SparseVector< _Scalar, _Options, _Index > >::StorageKind | StorageKind |
Public Member Functions | |
internal::CompressedStorage < Scalar, Index > & | _data () |
internal::CompressedStorage < Scalar, Index > & | _data () const |
void | addTo (Dest &dst) const |
const AdjointReturnType | adjoint () const |
void | applyThisOnTheLeft (Dest &dst) const |
void | applyThisOnTheRight (Dest &dst) const |
const CwiseBinaryOp < CustomBinaryOp, const SparseVector< _Scalar, _Options, _Index >, const OtherDerived > | binaryExpr (const Eigen::SparseMatrixBase< OtherDerived > &other, const CustomBinaryOp &func=CustomBinaryOp()) const |
internal::cast_return_type < SparseVector< _Scalar, _Options, _Index >, const CwiseUnaryOp < internal::scalar_cast_op < typename internal::traits < SparseVector< _Scalar, _Options, _Index > >::Scalar, NewType >, const SparseVector < _Scalar, _Options, _Index > > >::type | cast () const |
Scalar | coeff (Index row, Index col) const |
Scalar | coeff (Index i) const |
Scalar & | coeffRef (Index row, Index col) |
Scalar & | coeffRef (Index i) |
SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, 1 > | col (Index j) |
const SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, 1 > | col (Index j) const |
Index | cols () const |
ConjugateReturnType | conjugate () const |
SparseVector< _Scalar, _Options, _Index > & | const_cast_derived () const |
const SparseVector< _Scalar, _Options, _Index > & | const_derived () const |
const CwiseUnaryOp < internal::scalar_abs_op < Scalar >, const SparseVector < _Scalar, _Options, _Index > > | cwiseAbs () const |
const CwiseUnaryOp < internal::scalar_abs2_op < Scalar >, const SparseVector < _Scalar, _Options, _Index > > | cwiseAbs2 () const |
const CwiseBinaryOp < std::equal_to< Scalar > , const SparseVector< _Scalar, _Options, _Index >, const OtherDerived > | cwiseEqual (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const CwiseUnaryOp < std::binder1st < std::equal_to< Scalar > >, const SparseVector < _Scalar, _Options, _Index > > | cwiseEqual (const Scalar &s) const |
const CwiseUnaryOp < internal::scalar_inverse_op < Scalar >, const SparseVector < _Scalar, _Options, _Index > > | cwiseInverse () const |
const CwiseBinaryOp < internal::scalar_max_op < Scalar >, const SparseVector < _Scalar, _Options, _Index > , const OtherDerived > | cwiseMax (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const CwiseBinaryOp < internal::scalar_max_op < Scalar >, const SparseVector < _Scalar, _Options, _Index > , const ConstantReturnType > | cwiseMax (const Scalar &other) const |
const CwiseBinaryOp < internal::scalar_min_op < Scalar >, const SparseVector < _Scalar, _Options, _Index > , const OtherDerived > | cwiseMin (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const CwiseBinaryOp < internal::scalar_min_op < Scalar >, const SparseVector < _Scalar, _Options, _Index > , const ConstantReturnType > | cwiseMin (const Scalar &other) const |
const CwiseBinaryOp < std::not_equal_to< Scalar > , const SparseVector< _Scalar, _Options, _Index >, const OtherDerived > | cwiseNotEqual (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const EIGEN_SPARSE_CWISE_PRODUCT_RETURN_TYPE | cwiseProduct (const MatrixBase< OtherDerived > &other) const |
const CwiseBinaryOp < internal::scalar_quotient_op < Scalar >, const SparseVector < _Scalar, _Options, _Index > , const OtherDerived > | cwiseQuotient (const Eigen::SparseMatrixBase< OtherDerived > &other) const |
const CwiseUnaryOp < internal::scalar_sqrt_op < Scalar >, const SparseVector < _Scalar, _Options, _Index > > | cwiseSqrt () const |
SparseVector< _Scalar, _Options, _Index > & | derived () |
const SparseVector< _Scalar, _Options, _Index > & | derived () const |
Scalar | dot (const MatrixBase< OtherDerived > &other) const |
Scalar | dot (const SparseMatrixBase< OtherDerived > &other) const |
const | EIGEN_CWISE_PRODUCT_RETURN_TYPE (SparseVector< _Scalar, _Options, _Index >, OtherDerived) cwiseProduct(const Eigen |
EIGEN_DEPRECATED void | endFill () |
const internal::eval < SparseVector< _Scalar, _Options, _Index > >::type | eval () const |
void | evalTo (Dest &dst) const |
void | evalTo (MatrixBase< DenseDerived > &dst) const |
EIGEN_DEPRECATED Scalar & | fill (Index r, Index c) |
EIGEN_DEPRECATED Scalar & | fill (Index i) |
EIGEN_DEPRECATED Scalar & | fillrand (Index r, Index c) |
EIGEN_DEPRECATED Scalar & | fillrand (Index i) |
void | finalize () |
const ImagReturnType | imag () const |
NonConstImagReturnType | imag () |
const Index * | innerIndexPtr () const |
Index * | innerIndexPtr () |
Index | innerSize () const |
SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, 1 > | innerVector (Index outer) |
const SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, 1 > | innerVector (Index outer) const |
SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, Dynamic > | innerVectors (Index outerStart, Index outerSize) |
const SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, Dynamic > | innerVectors (Index outerStart, Index outerSize) const |
Scalar & | insert (Index row, Index col) |
Scalar & | insert (Index i) |
Scalar & | insertBack (Index i) |
Scalar & | insertBackByOuterInner (Index outer, Index inner) |
bool | isApprox (const SparseMatrixBase< OtherDerived > &other, RealScalar prec=NumTraits< Scalar >::dummy_precision()) const |
bool | isApprox (const MatrixBase< OtherDerived > &other, RealScalar prec=NumTraits< Scalar >::dummy_precision()) const |
bool | isRValue () const |
bool | isVector () const |
SparseVector< _Scalar, _Options, _Index > & | markAsRValue () |
SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, Dynamic > | middleCols (Index start, Index size) |
const SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, Dynamic > | middleCols (Index start, Index size) const |
SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, Dynamic > | middleRows (Index start, Index size) |
const SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, Dynamic > | middleRows (Index start, Index size) const |
Index | nonZeros () const |
RealScalar | norm () const |
const ScalarMultipleReturnType | operator* (const Scalar &scalar) const |
const ScalarMultipleReturnType | operator* (const RealScalar &scalar) const |
const CwiseUnaryOp < internal::scalar_multiple2_op < Scalar, std::complex< Scalar > >, const SparseVector < _Scalar, _Options, _Index > > | operator* (const std::complex< Scalar > &scalar) const |
const SparseSparseProductReturnType < SparseVector< _Scalar, _Options, _Index > , OtherDerived >::Type | operator* (const SparseMatrixBase< OtherDerived > &other) const |
const SparseDiagonalProduct < SparseVector< _Scalar, _Options, _Index > , OtherDerived > | operator* (const DiagonalBase< OtherDerived > &other) const |
const SparseDenseProductReturnType < SparseVector< _Scalar, _Options, _Index > , OtherDerived >::Type | operator* (const MatrixBase< OtherDerived > &other) const |
SparseVector< _Scalar, _Options, _Index > & | operator*= (const Scalar &other) |
SparseVector< _Scalar, _Options, _Index > & | operator*= (const SparseMatrixBase< OtherDerived > &other) |
SparseVector< _Scalar, _Options, _Index > & | operator+= (const SparseMatrixBase< OtherDerived > &other) |
const CwiseUnaryOp < internal::scalar_opposite_op < typename internal::traits < SparseVector< _Scalar, _Options, _Index > >::Scalar > , const SparseVector< _Scalar, _Options, _Index > > | operator- () const |
SparseVector< _Scalar, _Options, _Index > & | operator-= (const SparseMatrixBase< OtherDerived > &other) |
const CwiseUnaryOp < internal::scalar_quotient1_op < typename internal::traits < SparseVector< _Scalar, _Options, _Index > >::Scalar > , const SparseVector< _Scalar, _Options, _Index > > | operator/ (const Scalar &scalar) const |
SparseVector< _Scalar, _Options, _Index > & | operator/= (const Scalar &other) |
SparseVector & | operator= (const SparseVector &other) |
template<typename OtherDerived > | |
SparseVector & | operator= (const SparseMatrixBase< OtherDerived > &other) |
Index | outerSize () const |
void | prune (Scalar reference, RealScalar epsilon=NumTraits< RealScalar >::dummy_precision()) |
RealReturnType | real () const |
NonConstRealReturnType | real () |
void | reserve (Index reserveSize) |
void | resize (Index rows, Index cols) |
void | resize (Index newSize) |
void | resizeNonZeros (Index size) |
SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, 1 > | row (Index i) |
const SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, 1 > | row (Index i) const |
Index | rows () const |
const SparseSelfAdjointView < SparseVector< _Scalar, _Options, _Index >, UpLo > | selfadjointView () const |
SparseSelfAdjointView < SparseVector< _Scalar, _Options, _Index >, UpLo > | selfadjointView () |
void | setZero () |
Index | size () const |
SparseVector () | |
SparseVector (Index size) | |
SparseVector (Index rows, Index cols) | |
template<typename OtherDerived > | |
SparseVector (const SparseMatrixBase< OtherDerived > &other) | |
SparseVector (const SparseVector &other) | |
RealScalar | squaredNorm () const |
EIGEN_DEPRECATED void | startFill (Index reserve) |
void | startVec (Index outer) |
SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, Dynamic > | subcols (Index start, Index size) |
const SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, Dynamic > | subcols (Index start, Index size) const |
SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, Dynamic > | subrows (Index start, Index size) |
const SparseInnerVectorSet < SparseVector< _Scalar, _Options, _Index >, Dynamic > | subrows (Index start, Index size) const |
void | subTo (Dest &dst) const |
Scalar | sum () const |
void | swap (SparseVector &other) |
Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTime > | toDense () const |
Transpose< SparseVector < _Scalar, _Options, _Index > > | transpose () |
const Transpose< const SparseVector< _Scalar, _Options, _Index > > | transpose () const |
const SparseTriangularView < SparseVector< _Scalar, _Options, _Index >, Mode > | triangularView () const |
SparseSymmetricPermutationProduct < SparseVector< _Scalar, _Options, _Index >, Upper|Lower > | twistedBy (const PermutationMatrix< Dynamic, Dynamic, Index > &perm) const |
const CwiseUnaryOp < CustomUnaryOp, const SparseVector< _Scalar, _Options, _Index > > | unaryExpr (const CustomUnaryOp &func=CustomUnaryOp()) const |
Apply a unary operator coefficient-wise. | |
const CwiseUnaryView < CustomViewOp, const SparseVector< _Scalar, _Options, _Index > > | unaryViewExpr (const CustomViewOp &func=CustomViewOp()) const |
const Scalar * | valuePtr () const |
Scalar * | valuePtr () |
~SparseVector () | |
Public Attributes | |
internal::CompressedStorage < Scalar, Index > | m_data |
Index | m_size |
Protected Member Functions | |
SparseVector< _Scalar, _Options, _Index > & | assign (const OtherDerived &other) |
template<typename OtherDerived > | |
EIGEN_DONT_INLINE SparseVector & | assign (const SparseMatrixBase< OtherDerived > &_other) |
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 SparseVector < _Scalar, _Options, _Index > > | operator* (const std::complex< Scalar > &scalar, const StorageBaseType &matrix) |
const SparseDiagonalProduct < OtherDerived, SparseVector < _Scalar, _Options, _Index > > | operator* (const DiagonalBase< OtherDerived > &lhs, const SparseMatrixBase &rhs) |
const DenseSparseProductReturnType < OtherDerived, SparseVector < _Scalar, _Options, _Index > >::Type | operator* (const MatrixBase< OtherDerived > &lhs, const SparseVector< _Scalar, _Options, _Index > &rhs) |
std::ostream & | operator<< (std::ostream &s, const SparseVector &m) |
std::ostream & | operator<< (std::ostream &s, const SparseMatrixBase &m) |
a sparse vector class
_Scalar | the scalar type, i.e. the type of the coefficients |
See http://www.netlib.org/linalg/html_templates/node91.html for details on the storage scheme.
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_SPARSEVECTOR_PLUGIN
.
typedef internal::conditional<NumTraits<Scalar>::IsComplex, CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, Eigen::Transpose<const SparseVector< _Scalar, _Options, _Index > > >, Transpose<const SparseVector< _Scalar, _Options, _Index > > >::type AdjointReturnType [inherited] |
typedef EigenBase<SparseVector< _Scalar, _Options, _Index > > Base [inherited] |
typedef internal::traits<SparseVector< _Scalar, _Options, _Index > >::Index Index [inherited] |
Reimplemented from EigenBase< SparseVector< _Scalar, _Options, _Index > >.
typedef internal::add_const_on_value_type_if_arithmetic< typename internal::packet_traits<Scalar>::type >::type PacketReturnType [inherited] |
typedef internal::packet_traits<Scalar>::type PacketScalar [inherited] |
typedef SparseMatrix<Scalar, Flags&RowMajorBit ? RowMajor : ColMajor> PlainObject [inherited] |
typedef internal::traits<SparseVector< _Scalar, _Options, _Index > >::Scalar Scalar [inherited] |
typedef SparseMatrixBase<SparseVector> SparseBase |
typedef SparseMatrixBase StorageBaseType [inherited] |
typedef internal::traits<SparseVector< _Scalar, _Options, _Index > >::StorageKind StorageKind [inherited] |
Reimplemented from EigenBase< SparseVector< _Scalar, _Options, _Index > >.
anonymous enum [inherited] |
SparseVector | ( | ) | [inline] |
SparseVector | ( | Index | size | ) | [inline] |
SparseVector | ( | Index | rows, |
Index | cols | ||
) | [inline] |
SparseVector | ( | const SparseMatrixBase< OtherDerived > & | other | ) | [inline] |
References EigenBase< Derived >::derived().
SparseVector | ( | const SparseVector< _Scalar, _Options, _Index > & | other | ) | [inline] |
References EigenBase< Derived >::derived().
~SparseVector | ( | ) | [inline] |
Destructor
void addTo | ( | Dest & | dst | ) | const [inline, inherited] |
const AdjointReturnType adjoint | ( | ) | const [inline, inherited] |
void applyThisOnTheLeft | ( | Dest & | dst | ) | const [inline, inherited] |
void applyThisOnTheRight | ( | Dest & | dst | ) | const [inline, inherited] |
SparseVector< _Scalar, _Options, _Index > & assign | ( | const OtherDerived & | other | ) | [inline, protected, inherited] |
EIGEN_DONT_INLINE SparseVector& assign | ( | const SparseMatrixBase< OtherDerived > & | _other | ) | [inline, protected] |
References EigenBase< Derived >::derived(), SparseMatrixBase< SparseVector< _Scalar, _Options, _Index > >::Flags, SparseVector< _Scalar, _Options, _Index >::insert(), SparseVector< _Scalar, _Options, _Index >::operator=(), SparseVector< _Scalar, _Options, _Index >::reserve(), SparseVector< _Scalar, _Options, _Index >::resize(), Eigen::RowMajorBit, and SparseMatrixBase< SparseVector< _Scalar, _Options, _Index > >::size().
Referenced by SparseVector< _Scalar, _Options, _Index >::operator=().
void assignGeneric | ( | const OtherDerived & | other | ) | [inline, protected, inherited] |
const CwiseBinaryOp<CustomBinaryOp, const SparseVector< _Scalar, _Options, _Index > , const OtherDerived> binaryExpr | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other, |
const CustomBinaryOp & | func = CustomBinaryOp() |
||
) | const [inline, inherited] |
*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<SparseVector< _Scalar, _Options, _Index > ,const CwiseUnaryOp<internal::scalar_cast_op<typename internal::traits<SparseVector< _Scalar, _Options, _Index > >::Scalar, NewType>, const SparseVector< _Scalar, _Options, _Index > > >::type cast | ( | ) | const [inline, inherited] |
The template parameter NewScalar is the type we are casting the scalars to.
References SparseVector< _Scalar, _Options, _Index >::IsColVector.
Referenced by SparseVector< _Scalar, _Options, _Index >::coeffRef().
This insertion might be very costly if the number of nonzeros above i is large.
References SparseVector< _Scalar, _Options, _Index >::m_data.
SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,1> col | ( | Index | j | ) | [inherited] |
*this
. For column-major matrix only. Referenced by SparseVector< _Scalar, _Options, _Index >::insert().
const SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,1> col | ( | Index | j | ) | const [inherited] |
*this
. For column-major matrix only. (read-only version) Reimplemented from SparseMatrixBase< SparseVector< _Scalar, _Options, _Index > >.
References SparseVector< _Scalar, _Options, _Index >::IsColVector, and SparseVector< _Scalar, _Options, _Index >::m_size.
ConjugateReturnType conjugate | ( | ) | const [inline, inherited] |
*this
.SparseVector< _Scalar, _Options, _Index > & const_cast_derived | ( | ) | const [inline, inherited] |
const SparseVector< _Scalar, _Options, _Index > & const_derived | ( | ) | const [inline, inherited] |
const CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const SparseVector< _Scalar, _Options, _Index > > cwiseAbs | ( | ) | const [inline, inherited] |
*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 SparseVector< _Scalar, _Options, _Index > > cwiseAbs2 | ( | ) | const [inline, inherited] |
*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 SparseVector< _Scalar, _Options, _Index > , const OtherDerived> cwiseEqual | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other | ) | const [inline, inherited] |
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 SparseVector< _Scalar, _Options, _Index > > cwiseEqual | ( | const Scalar & | s | ) | const [inline, inherited] |
*this
and a scalar s const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const SparseVector< _Scalar, _Options, _Index > > cwiseInverse | ( | ) | const [inline, inherited] |
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 SparseVector< _Scalar, _Options, _Index > , const OtherDerived> cwiseMax | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other | ) | const [inline, inherited] |
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 SparseVector< _Scalar, _Options, _Index > , const ConstantReturnType> cwiseMax | ( | const Scalar & | other | ) | const [inline, inherited] |
const CwiseBinaryOp<internal::scalar_min_op<Scalar>, const SparseVector< _Scalar, _Options, _Index > , const OtherDerived> cwiseMin | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other | ) | const [inline, inherited] |
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 SparseVector< _Scalar, _Options, _Index > , const ConstantReturnType> cwiseMin | ( | const Scalar & | other | ) | const [inline, inherited] |
const CwiseBinaryOp<std::not_equal_to<Scalar>, const SparseVector< _Scalar, _Options, _Index > , const OtherDerived> cwiseNotEqual | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other | ) | const [inline, inherited] |
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, inherited] |
const CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const SparseVector< _Scalar, _Options, _Index > , const OtherDerived> cwiseQuotient | ( | const Eigen::SparseMatrixBase< OtherDerived > & | other | ) | const [inline, inherited] |
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 SparseVector< _Scalar, _Options, _Index > > cwiseSqrt | ( | ) | const [inline, inherited] |
Example:
Vector3d v(1,2,4); cout << v.cwiseSqrt() << endl;
Output:
1 1.41 2
SparseVector< _Scalar, _Options, _Index > & derived | ( | ) | [inline, inherited] |
const SparseVector< _Scalar, _Options, _Index > & derived | ( | ) | const [inline, inherited] |
Scalar dot | ( | const MatrixBase< OtherDerived > & | other | ) | const [inherited] |
Scalar dot | ( | const SparseMatrixBase< OtherDerived > & | other | ) | const [inherited] |
const EIGEN_CWISE_PRODUCT_RETURN_TYPE | ( | SparseVector< _Scalar, _Options, _Index > | , |
OtherDerived | |||
) | const [inline, inherited] |
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
EIGEN_DEPRECATED void endFill | ( | ) | [inline] |
const internal::eval<SparseVector< _Scalar, _Options, _Index > >::type eval | ( | ) | const [inline, inherited] |
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, inherited] |
EIGEN_DEPRECATED Scalar& fill | ( | Index | r, |
Index | c | ||
) | [inline] |
EIGEN_DEPRECATED Scalar& fill | ( | Index | i | ) | [inline] |
EIGEN_DEPRECATED Scalar& fillrand | ( | Index | r, |
Index | c | ||
) | [inline] |
EIGEN_DEPRECATED Scalar& fillrand | ( | Index | i | ) | [inline] |
void finalize | ( | ) | [inline] |
const ImagReturnType imag | ( | ) | const [inline, inherited] |
*this
.NonConstImagReturnType imag | ( | ) | [inline, inherited] |
*this
.const Index* innerIndexPtr | ( | ) | const [inline] |
Index* innerIndexPtr | ( | ) | [inline] |
Reimplemented from SparseMatrixBase< SparseVector< _Scalar, _Options, _Index > >.
References SparseVector< _Scalar, _Options, _Index >::m_size.
SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,1> innerVector | ( | Index | outer | ) | [inherited] |
*this
if *this
is col-major (resp. row-major). const SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,1> innerVector | ( | Index | outer | ) | const [inherited] |
*this
if *this
is col-major (resp. row-major). Read-only. SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,Dynamic> innerVectors | ( | Index | outerStart, |
Index | outerSize | ||
) | [inherited] |
*this
if *this
is col-major (resp. row-major). const SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,Dynamic> innerVectors | ( | Index | outerStart, |
Index | outerSize | ||
) | const [inherited] |
*this
if *this
is col-major (resp. row-major). Read-only. References SparseMatrixBase< SparseVector< _Scalar, _Options, _Index > >::col(), SparseVector< _Scalar, _Options, _Index >::IsColVector, and SparseMatrixBase< SparseVector< _Scalar, _Options, _Index > >::row().
Referenced by SparseVector< _Scalar, _Options, _Index >::assign(), and SparseVector< _Scalar, _Options, _Index >::fillrand().
References SparseVector< _Scalar, _Options, _Index >::m_data, and p.
Scalar& insertBack | ( | Index | i | ) | [inline] |
Scalar& insertBackByOuterInner | ( | Index | outer, |
Index | inner | ||
) | [inline] |
bool isApprox | ( | const SparseMatrixBase< OtherDerived > & | other, |
RealScalar | prec = NumTraits<Scalar>::dummy_precision() |
||
) | const [inline, inherited] |
bool isApprox | ( | const MatrixBase< OtherDerived > & | other, |
RealScalar | prec = NumTraits<Scalar>::dummy_precision() |
||
) | const [inline, inherited] |
rows()==1 || cols()==1
SparseVector< _Scalar, _Options, _Index > & markAsRValue | ( | ) | [inline, inherited] |
SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,Dynamic> middleCols | ( | Index | start, |
Index | size | ||
) | [inherited] |
*this
. For column-major matrix only. const SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,Dynamic> middleCols | ( | Index | start, |
Index | size | ||
) | const [inherited] |
*this
. For column-major matrix only. (read-only version) SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,Dynamic> middleRows | ( | Index | start, |
Index | size | ||
) | [inherited] |
*this
. For row-major matrix only. const SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,Dynamic> middleRows | ( | Index | start, |
Index | size | ||
) | const [inherited] |
*this
. For row-major matrix only. (read-only version) Reimplemented from SparseMatrixBase< SparseVector< _Scalar, _Options, _Index > >.
References SparseVector< _Scalar, _Options, _Index >::m_data.
RealScalar norm | ( | ) | const [inherited] |
const ScalarMultipleReturnType operator* | ( | const Scalar & | scalar | ) | const [inline, inherited] |
*this
scaled by the scalar factor scalar const ScalarMultipleReturnType operator* | ( | const RealScalar & | scalar | ) | const [inherited] |
const CwiseUnaryOp<internal::scalar_multiple2_op<Scalar,std::complex<Scalar> >, const SparseVector< _Scalar, _Options, _Index > > operator* | ( | const std::complex< Scalar > & | scalar | ) | const [inline, inherited] |
Overloaded for efficient real matrix times complex scalar value
const SparseSparseProductReturnType<SparseVector< _Scalar, _Options, _Index > ,OtherDerived>::Type operator* | ( | const SparseMatrixBase< OtherDerived > & | other | ) | const [inherited] |
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. const SparseDiagonalProduct<SparseVector< _Scalar, _Options, _Index > ,OtherDerived> operator* | ( | const DiagonalBase< OtherDerived > & | other | ) | const [inherited] |
const SparseDenseProductReturnType<SparseVector< _Scalar, _Options, _Index > ,OtherDerived>::Type operator* | ( | const MatrixBase< OtherDerived > & | other | ) | const [inherited] |
sparse * dense (returns a dense object unless it is an outer product)
SparseVector< _Scalar, _Options, _Index > & operator*= | ( | const Scalar & | other | ) | [inherited] |
SparseVector< _Scalar, _Options, _Index > & operator*= | ( | const SparseMatrixBase< OtherDerived > & | other | ) | [inherited] |
SparseVector< _Scalar, _Options, _Index > & operator+= | ( | const SparseMatrixBase< OtherDerived > & | other | ) | [inherited] |
const CwiseUnaryOp<internal::scalar_opposite_op<typename internal::traits<SparseVector< _Scalar, _Options, _Index > >::Scalar>, const SparseVector< _Scalar, _Options, _Index > > operator- | ( | ) | const [inline, inherited] |
*this
SparseVector< _Scalar, _Options, _Index > & operator-= | ( | const SparseMatrixBase< OtherDerived > & | other | ) | [inherited] |
const CwiseUnaryOp<internal::scalar_quotient1_op<typename internal::traits<SparseVector< _Scalar, _Options, _Index > >::Scalar>, const SparseVector< _Scalar, _Options, _Index > > operator/ | ( | const Scalar & | scalar | ) | const [inline, inherited] |
*this
divided by the scalar value scalar SparseVector< _Scalar, _Options, _Index > & operator/= | ( | const Scalar & | other | ) | [inherited] |
SparseVector& operator= | ( | const SparseVector< _Scalar, _Options, _Index > & | other | ) | [inline] |
References EigenBase< Derived >::const_cast_derived(), SparseMatrixBase< Derived >::isRValue(), SparseVector< _Scalar, _Options, _Index >::m_data, SparseVector< _Scalar, _Options, _Index >::resize(), SparseMatrixBase< Derived >::size(), and SparseVector< _Scalar, _Options, _Index >::swap().
Referenced by SparseVector< _Scalar, _Options, _Index >::assign().
SparseVector& operator= | ( | const SparseMatrixBase< OtherDerived > & | other | ) | [inline] |
Reimplemented from SparseMatrixBase< SparseVector< _Scalar, _Options, _Index > >.
RealReturnType real | ( | ) | const [inline, inherited] |
*this
.NonConstRealReturnType real | ( | ) | [inline, inherited] |
*this
.References SparseVector< _Scalar, _Options, _Index >::m_data.
Referenced by SparseVector< _Scalar, _Options, _Index >::assign().
void resizeNonZeros | ( | Index | size | ) | [inline] |
SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,1> row | ( | Index | i | ) | [inherited] |
*this
. For row-major matrix only. Referenced by SparseVector< _Scalar, _Options, _Index >::insert().
const SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,1> row | ( | Index | i | ) | const [inherited] |
*this
. For row-major matrix only. (read-only version) Reimplemented from SparseMatrixBase< SparseVector< _Scalar, _Options, _Index > >.
References SparseVector< _Scalar, _Options, _Index >::IsColVector, and SparseVector< _Scalar, _Options, _Index >::m_size.
const SparseSelfAdjointView<SparseVector< _Scalar, _Options, _Index > , UpLo> selfadjointView | ( | ) | const [inline, inherited] |
SparseSelfAdjointView<SparseVector< _Scalar, _Options, _Index > , UpLo> selfadjointView | ( | ) | [inline, inherited] |
void setZero | ( | ) | [inline] |
References SparseVector< _Scalar, _Options, _Index >::m_data.
Referenced by SparseVector< _Scalar, _Options, _Index >::startFill().
Reimplemented from EigenBase< SparseVector< _Scalar, _Options, _Index > >.
Referenced by SparseVector< _Scalar, _Options, _Index >::assign().
RealScalar squaredNorm | ( | ) | const [inherited] |
EIGEN_DEPRECATED void startFill | ( | Index | reserve | ) | [inline] |
References EIGEN_UNUSED_VARIABLE.
SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,Dynamic> subcols | ( | Index | start, |
Index | size | ||
) | [inherited] |
const SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,Dynamic> subcols | ( | Index | start, |
Index | size | ||
) | const [inherited] |
SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,Dynamic> subrows | ( | Index | start, |
Index | size | ||
) | [inherited] |
const SparseInnerVectorSet<SparseVector< _Scalar, _Options, _Index > ,Dynamic> subrows | ( | Index | start, |
Index | size | ||
) | const [inherited] |
void subTo | ( | Dest & | dst | ) | const [inline, inherited] |
internal::traits< SparseVector< _Scalar, _Options, _Index > >::Scalar sum | ( | ) | const |
Overloaded for performance
Reimplemented from SparseMatrixBase< SparseVector< _Scalar, _Options, _Index > >.
References PlainObjectBase< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::Map().
void swap | ( | SparseVector< _Scalar, _Options, _Index > & | other | ) | [inline] |
Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime> toDense | ( | ) | const [inline, inherited] |
Transpose<SparseVector< _Scalar, _Options, _Index > > transpose | ( | ) | [inline, inherited] |
const Transpose<const SparseVector< _Scalar, _Options, _Index > > transpose | ( | ) | const [inline, inherited] |
const SparseTriangularView<SparseVector< _Scalar, _Options, _Index > , Mode> triangularView | ( | ) | const [inline, inherited] |
SparseSymmetricPermutationProduct<SparseVector< _Scalar, _Options, _Index > ,Upper|Lower> twistedBy | ( | const PermutationMatrix< Dynamic, Dynamic, Index > & | perm | ) | const [inline, inherited] |
const CwiseUnaryOp<CustomUnaryOp, const SparseVector< _Scalar, _Options, _Index > > unaryExpr | ( | const CustomUnaryOp & | func = CustomUnaryOp() | ) | const [inline, inherited] |
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 SparseVector< _Scalar, _Options, _Index > > unaryViewExpr | ( | const CustomViewOp & | func = CustomViewOp() | ) | const [inline, inherited] |
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, inherited] |
const CwiseUnaryOp<internal::scalar_multiple2_op<Scalar,std::complex<Scalar> >, const SparseVector< _Scalar, _Options, _Index > > operator* | ( | const std::complex< Scalar > & | scalar, |
const StorageBaseType & | matrix | ||
) | [friend, inherited] |
const SparseDiagonalProduct<OtherDerived,SparseVector< _Scalar, _Options, _Index > > operator* | ( | const DiagonalBase< OtherDerived > & | lhs, |
const SparseMatrixBase< SparseVector< _Scalar, _Options, _Index > > & | rhs | ||
) | [friend, inherited] |
const DenseSparseProductReturnType<OtherDerived,SparseVector< _Scalar, _Options, _Index > >::Type operator* | ( | const MatrixBase< OtherDerived > & | lhs, |
const SparseVector< _Scalar, _Options, _Index > & | rhs | ||
) | [friend, inherited] |
dense * sparse (return a dense object unless it is an outer product)
std::ostream& operator<< | ( | std::ostream & | s, |
const SparseVector< _Scalar, _Options, _Index > & | m | ||
) | [friend] |
std::ostream& operator<< | ( | std::ostream & | s, |
const SparseMatrixBase< SparseVector< _Scalar, _Options, _Index > > & | m | ||
) | [friend, inherited] |
Referenced by SparseVector< _Scalar, _Options, _Index >::_data(), SparseVector< _Scalar, _Options, _Index >::coeff(), SparseVector< _Scalar, _Options, _Index >::coeffRef(), SparseVector< _Scalar, _Options, _Index >::fill(), SparseVector< _Scalar, _Options, _Index >::innerIndexPtr(), SparseVector< _Scalar, _Options, _Index >::insert(), SparseVector< _Scalar, _Options, _Index >::insertBack(), SparseVector< _Scalar, _Options, _Index >::nonZeros(), SparseVector< _Scalar, _Options, _Index >::operator=(), SparseVector< _Scalar, _Options, _Index >::prune(), SparseVector< _Scalar, _Options, _Index >::reserve(), SparseVector< _Scalar, _Options, _Index >::resize(), SparseVector< _Scalar, _Options, _Index >::resizeNonZeros(), SparseVector< _Scalar, _Options, _Index >::setZero(), SparseVector< _Scalar, _Options, _Index >::startFill(), SparseVector< _Scalar, _Options, _Index >::swap(), and SparseVector< _Scalar, _Options, _Index >::valuePtr().
bool m_isRValue [protected, inherited] |