ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
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 = *(uint32_t*)data;
80 
82 
83  data += 4;
84  len -= 4;
85  }
86 
87  MixTail(data,len);
88  }

◆ Begin()

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

Definition at line 63 of file MurmurHash2.h.

64  {
65  m_hash = seed;
66  m_tail = 0;
67  m_count = 0;
68  m_size = 0;
69  }

◆ 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  }

◆ 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

constexpr 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

constexpr 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:
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
MurmurHash_mmix
#define MurmurHash_mmix(h, k)
Definition: MurmurHash2.h:29
CxxUtils::CMurmurHash2A::MixTail
void MixTail(const unsigned char *&data, int &len)
Definition: MurmurHash2.h:107
Generate_dsid_ranseed.seed
seed
Definition: Generate_dsid_ranseed.py:10
CxxUtils::CMurmurHash2A::m_size
uint32_t m_size
Definition: MurmurHash2.h:128
CxxUtils::CMurmurHash2A::m_hash
uint32_t m_hash
Definition: MurmurHash2.h:125
CxxUtils::CMurmurHash2A::m_tail
uint32_t m_tail
Definition: MurmurHash2.h:126
CxxUtils::CMurmurHash2A::M
static constexpr uint32_t M
Definition: MurmurHash2.h:104
CxxUtils::CMurmurHash2A::m_count
uint32_t m_count
Definition: MurmurHash2.h:127
fitman.k
k
Definition: fitman.py:528