aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2008-10-21 00:05:45 +0000
committerGravatar Gael Guennebaud <g.gael@free.fr>2008-10-21 00:05:45 +0000
commit9e02e42ff6757da1c96518a24c913a01250564ee (patch)
tree06bc6c9a16666035aced1aeede3ddf93eae2f41f /Eigen/src
parent3645d6c138b6e7710f3c3e2bca1e790b6b93d5d7 (diff)
add the bench file for the RandomSetter
Diffstat (limited to 'Eigen/src')
-rw-r--r--Eigen/src/Sparse/RandomSetter.h17
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