109 : original_hash_(
hash), current_hash_(
hash), iteration_(1)
115 current_hash_ = original_hash_ + ((iteration_ * iteration_ + iteration_) >> 1);
121 return current_hash_;
156 hash_ = 5 * hash_ + 1 + perturb_;
192 hash_ = ((hash_ >> 16) ^ hash_) * 0x45d9f3b + perturb_;
195 hash_ = 5 * hash_ + 1;
232 #define SLOT_PROBING_BEGIN(PROBING_STRATEGY, HASH, MASK, R_SLOT_INDEX) \
233 PROBING_STRATEGY probing_strategy(HASH); \
235 int64_t linear_offset = 0; \
236 uint64_t current_hash = probing_strategy.get(); \
238 int64_t R_SLOT_INDEX = static_cast<int64_t>((current_hash + static_cast<uint64_t>(linear_offset)) & MASK);
240 #define SLOT_PROBING_END() \
241 } while (++linear_offset < probing_strategy.linear_steps()); \
242 probing_strategy.next(); \
LinearProbingStrategy(const uint64_t hash)
int64_t linear_steps() const
PythonProbingStrategy(const uint64_t hash)
int64_t linear_steps() const
int64_t linear_steps() const
QuadraticProbingStrategy(const uint64_t hash)
int64_t linear_steps() const
ShuffleProbingStrategy(const uint64_t hash)
unsigned __int64 uint64_t