mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-06-04 18:54:00 +08:00
fix bug #391: prune was for compressed format only, now it also turns the matrix into compressed form
This commit is contained in:
parent
7e866c447f
commit
e4cea957df
@ -476,7 +476,7 @@ class SparseMatrix
|
|||||||
prune(default_prunning_func(reference,epsilon));
|
prune(default_prunning_func(reference,epsilon));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Suppresses all nonzeros which do not satisfy the predicate \a keep.
|
/** Turns the matrix into compressed format, and suppresses all nonzeros which do not satisfy the predicate \a keep.
|
||||||
* The functor type \a KeepFunc must implement the following function:
|
* The functor type \a KeepFunc must implement the following function:
|
||||||
* \code
|
* \code
|
||||||
* bool operator() (const Index& row, const Index& col, const Scalar& value) const;
|
* bool operator() (const Index& row, const Index& col, const Scalar& value) const;
|
||||||
@ -486,6 +486,10 @@ class SparseMatrix
|
|||||||
template<typename KeepFunc>
|
template<typename KeepFunc>
|
||||||
void prune(const KeepFunc& keep = KeepFunc())
|
void prune(const KeepFunc& keep = KeepFunc())
|
||||||
{
|
{
|
||||||
|
// TODO optimize the uncompressed mode to avoid moving and allocating the data twice
|
||||||
|
// TODO also implement a unit test
|
||||||
|
makeCompressed();
|
||||||
|
|
||||||
Index k = 0;
|
Index k = 0;
|
||||||
for(Index j=0; j<m_outerSize; ++j)
|
for(Index j=0; j<m_outerSize; ++j)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user