56 return 1 + (bits - 1) / 64;
61 std::array<std::array<std::array<uint64_t, poly_size(Deg)>, 256>, 8>;
79 #define FOLLY_DECLARE_FINGERPRINT_TABLES(BITS) \ 81 const uint64_t FingerprintTable<BITS>::poly[poly_size(BITS)]; \ 83 const poly_table<BITS> FingerprintTable<BITS>::table 89 #undef FOLLY_DECLARE_FINGERPRINT_TABLES 110 for (
int i = 1;
i <
size();
i++) {
126 for (
int i = 0;
i < 4;
i++) {
135 for (
int i = 0;
i < 8;
i++) {
166 for (
int i = 0;
i <
size();
i++) {
174 for (
int i = 0;
i <
size();
i++) {
248 fp_[0] = (fp_[0] << 8) | (fp_[1] >> 56);
249 fp_[1] = (fp_[1] << 8) | ((
uint64_t)v << 32);
256 fp_[0] = (fp_[0] << 32) | (fp_[1] >> 32);
264 fp_[0] = fp_[1] | (v >> 32);
272 fp_[0] = (fp_[0] << 8) | (fp_[1] >> 56);
280 fp_[0] = (fp_[0] << 32) | (fp_[1] >> 32);
void fingerprint128(StringPiece str, uint64_t *msb, uint64_t *lsb)
uint64_t fingerprint64(StringPiece str)
static constexpr int size()
std::array< std::array< std::array< uint64_t, poly_size(Deg)>, 256 >, 8 > poly_table
uint64_t shlor64(uint64_t v)
Fingerprint & update8(uint8_t v)
—— Concurrent Priority Queue Implementation ——
Fingerprint & update(StringPiece str)
uint8_t shlor8(uint8_t v)
void xortab(std::array< uint64_t, detail::poly_size(BITS)> const &tab)
#define FOLLY_DECLARE_FINGERPRINT_TABLES(BITS)
constexpr auto size(C const &c) -> decltype(c.size())
Fingerprint & update64(uint64_t v)
constexpr size_t poly_size(size_t bits)
Fingerprint & update32(uint32_t v)
void fingerprint96(StringPiece str, uint64_t *msb, uint32_t *lsb)
static const poly_table< BITS > table
const uint64_t poly[poly_size(64)]
uint32_t shlor32(uint32_t v)
void write(uint64_t *out) const