29 friend class CacheMemoryTestPeer;
33 : m_Bitmap(), m_nLength(length), m_nHashCount(hashcount) {}
36 void add(
const T& data) {
37 add(&data,
sizeof(T));
40 void add(
const T* data,
size_t length) {
42 MurmurHash3_x64_128(data, length, 0, baseHash);
44 for (
size_t i = 0; i < m_nHashCount; ++i) {
45 uint64_t n = (baseHash[0] + (i * baseHash[1])) % m_nLength;
50 bool contains(
const T& data) {
51 return contains(&data,
sizeof(T));
54 bool contains(
const T* data,
size_t length) {
56 MurmurHash3_x64_128(data, length, 0, baseHash);
58 for (
size_t i = 0; i < m_nHashCount; ++i) {
59 uint64_t n = (baseHash[0] + (i * baseHash[1])) % m_nLength;
60 if (!m_Bitmap.
test(n)) {
69 for (
size_t i = 0; i < m_nLength; ++i) {