ATLAS Offline Software
Loading...
Searching...
No Matches
CxxUtils::CMurmurHash2A Class Reference

#include <MurmurHash2.h>

Collaboration diagram for CxxUtils::CMurmurHash2A:

Public Member Functions

void Begin (uint32_t seed=0)
void Add (const unsigned char *data, int len)
uint32_t End (void)

Private Member Functions

void MixTail (const unsigned char *&data, int &len)

Private Attributes

uint32_t m_hash
uint32_t m_tail
uint32_t m_count
uint32_t m_size

Static Private Attributes

static constexpr uint32_t M = 0x5bd1e995
static constexpr int R = 24

Detailed Description

Definition at line 59 of file MurmurHash2.h.

Member Function Documentation

◆ Add()

void CxxUtils::CMurmurHash2A::Add ( const unsigned char * data,
int len )
inline

Definition at line 71 of file MurmurHash2.h.

72 {
73 m_size += len;
74
75 MixTail(data,len);
76
77 while(len >= 4)
78 {
79 uint32_t k = *reinterpret_cast<const uint32_t*>(data);
80
82
83 data += 4;
84 len -= 4;
85 }
86
87 MixTail(data,len);
88 }
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
#define MurmurHash_mmix(h, k)
Definition MurmurHash2.h:29
void MixTail(const unsigned char *&data, int &len)
setEventNumber uint32_t

◆ Begin()

void CxxUtils::CMurmurHash2A::Begin ( uint32_t seed = 0)
inline

Definition at line 63 of file MurmurHash2.h.

◆ End()

uint32_t CxxUtils::CMurmurHash2A::End ( void )
inline

Definition at line 90 of file MurmurHash2.h.

91 {
94
95 m_hash ^= m_hash >> 13;
96 m_hash *= M;
97 m_hash ^= m_hash >> 15;
98
99 return m_hash;
100 }
static constexpr uint32_t M

◆ MixTail()

void CxxUtils::CMurmurHash2A::MixTail ( const unsigned char *& data,
int & len )
inlineprivate

Definition at line 107 of file MurmurHash2.h.

108 {
109 while( len && ((len<4) || m_count) )
110 {
111 m_tail |= (*data++) << (m_count * 8);
112
113 m_count++;
114 len--;
115
116 if(m_count == 4)
117 {
119 m_tail = 0;
120 m_count = 0;
121 }
122 }
123 }

Member Data Documentation

◆ M

uint32_t CxxUtils::CMurmurHash2A::M = 0x5bd1e995
staticconstexprprivate

Definition at line 104 of file MurmurHash2.h.

◆ m_count

uint32_t CxxUtils::CMurmurHash2A::m_count
private

Definition at line 127 of file MurmurHash2.h.

◆ m_hash

uint32_t CxxUtils::CMurmurHash2A::m_hash
private

Definition at line 125 of file MurmurHash2.h.

◆ m_size

uint32_t CxxUtils::CMurmurHash2A::m_size
private

Definition at line 128 of file MurmurHash2.h.

◆ m_tail

uint32_t CxxUtils::CMurmurHash2A::m_tail
private

Definition at line 126 of file MurmurHash2.h.

◆ R

int CxxUtils::CMurmurHash2A::R = 24
staticconstexprprivate

Definition at line 105 of file MurmurHash2.h.


The documentation for this class was generated from the following file: