Sparse matrix nonzero count in Eigen 3.3 -
in eigen 3.2 sparse matrices had method named 'nonzeros' returned count of non-zero elements. method seems gone in eigen 3.3. how 1 obtain number of nonzero in 3.3?
it's still there. in eigen/src/sparsecore/sparsecompressedbase.h
line 56 there 1 definition (for sparsecompressedbase
).
template<typename derived> class sparsecompressedbase : public sparsematrixbase<derived> { ... protected: typedef typename base::indexvector indexvector; eigen::map<indexvector> innernonzeros() { return eigen::map<indexvector>(innernonzeroptr(), iscompressed()?0:derived().outersize()); } const eigen::map<const indexvector> innernonzeros() const { return eigen::map<const indexvector>(innernonzeroptr(), iscompressed()?0:derived().outersize()); } public: /** \returns number of non 0 coefficients */ inline index nonzeros() const { if(derived::isvectoratcompiletime && outerindexptr()==0) return derived().nonzeros();
more so, quick grep shows definitions (v3.3.0):
$ grep -rn "index nonzeros()" *
src/core/densebase.h:210: inline index nonzeros() const { return size(); }
src/sparsecore/ambivector.h:39: index nonzeros() const;
src/sparsecore/sparseblock.h:42: index nonzeros() const
src/sparsecore/sparseblock.h:436: index nonzeros() const { return dynamic; }
src/sparsecore/sparsecompressedbase.h:56: inline index nonzeros() const
src/sparsecore/sparsemap.h:87: inline index nonzeros() const { return m_zero_nnz[1]; }
src/sparsecore/sparsetranspose.h:31: inline index nonzeros() const { return derived().nestedexpression().nonzeros(); }
src/sparsecore/sparsevector.h:140: inline index nonzeros() const { return m_data.size(); }
Comments
Post a Comment