60 u.p8 = (
const uint8_t *)message;
64 memcpy(buf, message, length);
68 size_t remainder = length%32;
79 for (; u.p64 <
end; u.p64 += 4)
170 Short(message, length, hash1, hash2);
174 uint64_t h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11;
185 h0=h3=h6=h9 = *hash1;
186 h1=h4=h7=h10 = *hash2;
189 u.p8 = (
const uint8_t *)message;
197 Mix(u.p64, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
206 Mix(buf, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
213 memcpy(buf, end, remainder);
218 End(buf, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
238 uint64_t h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11;
254 m_remainder = (
uint8_t)newLength;
286 memcpy(&(((
uint8_t *)
m_data)[m_remainder]), message, prefix);
288 Mix(u.p64, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
289 Mix(&u.p64[
sc_numVars], h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
295 u.p8 = (
const uint8_t *)message;
305 Mix(u.p64, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
314 Mix(
m_data, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
320 m_remainder = remainder;
321 memcpy(
m_data, end, remainder);
352 memcpy(buf,
m_data,
sizeof(buf));
372 Mix(data, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
383 End(data, h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11);
constexpr bool kHasUnalignedAccess
static void Short(const void *message, size_t length, uint64_t *hash1, uint64_t *hash2)
static void ShortEnd(uint64_t &h0, uint64_t &h1, uint64_t &h2, uint64_t &h3)
static void Mix(const uint64_t *data, uint64_t &s0, uint64_t &s1, uint64_t &s2, uint64_t &s3, uint64_t &s4, uint64_t &s5, uint64_t &s6, uint64_t &s7, uint64_t &s8, uint64_t &s9, uint64_t &s10, uint64_t &s11)
—— Concurrent Priority Queue Implementation ——
void Init(uint64_t seed1, uint64_t seed2)
bool prefix(Cursor &c, uint32_t expected)
uint64_t m_state[sc_numVars]
static constexpr size_t sc_blockSize
static void Hash128(const void *message, size_t length, uint64_t *hash1, uint64_t *hash2)
auto end(TestAdlIterable &instance)
constexpr auto data(C &c) -> decltype(c.data())
static constexpr size_t sc_bufSize
void Final(uint64_t *hash1, uint64_t *hash2) const
static constexpr size_t sc_numVars
static void ShortMix(uint64_t &h0, uint64_t &h1, uint64_t &h2, uint64_t &h3)
void Update(const void *message, size_t length)
static void End(const uint64_t *data, uint64_t &h0, uint64_t &h1, uint64_t &h2, uint64_t &h3, uint64_t &h4, uint64_t &h5, uint64_t &h6, uint64_t &h7, uint64_t &h8, uint64_t &h9, uint64_t &h10, uint64_t &h11)
#define FOLLY_FALLTHROUGH
uint64_t m_data[2 *sc_numVars]
static constexpr uint64_t sc_const