diff options
author | 2008-10-21 00:05:45 +0000 | |
---|---|---|
committer | 2008-10-21 00:05:45 +0000 | |
commit | 9e02e42ff6757da1c96518a24c913a01250564ee (patch) | |
tree | 06bc6c9a16666035aced1aeede3ddf93eae2f41f /Eigen/src | |
parent | 3645d6c138b6e7710f3c3e2bca1e790b6b93d5d7 (diff) |
add the bench file for the RandomSetter
Diffstat (limited to 'Eigen/src')
-rw-r--r-- | Eigen/src/Sparse/RandomSetter.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/Eigen/src/Sparse/RandomSetter.h b/Eigen/src/Sparse/RandomSetter.h index efe8ba2db..8606e03c6 100644 --- a/Eigen/src/Sparse/RandomSetter.h +++ b/Eigen/src/Sparse/RandomSetter.h @@ -90,12 +90,12 @@ class RandomSetter inline RandomSetter(SparseMatrixType& target) : mp_target(&target) { - int outerPackets = target.outerSize() >> OuterPacketBits; + m_outerPackets = target.outerSize() >> OuterPacketBits; if (target.outerSize()&OuterPacketMask) - outerPackets += 1; - m_hashmaps = new HashMapType[outerPackets]; + m_outerPackets += 1; + m_hashmaps = new HashMapType[m_outerPackets]; KeyType ik = (1<<OuterPacketBits)*mp_target->innerSize()+1; - for (int k=0; k<outerPackets; ++k) + for (int k=0; k<m_outerPackets; ++k) HashMapTraits<ScalarWrapper>::setInvalidKey(m_hashmaps[k],ik); } @@ -115,11 +115,20 @@ class RandomSetter return m_hashmaps[outerMajor][key].value; } + int nonZeros() const + { + int nz = 0; + for (int k=0; k<m_outerPackets; ++k) + nz += m_hashmaps[k].size(); + return nz; + } + protected: HashMapType* m_hashmaps; SparseMatrixType* mp_target; + int m_outerPackets; }; #endif // EIGEN_RANDOMSETTER_H |