95 : original_hash_(
hash), current_hash_(
hash), iteration_(1)
101 current_hash_ = original_hash_ + ((iteration_ * iteration_ + iteration_) >> 1);
107 return current_hash_;
142 hash_ = 5 * hash_ + 1 + perturb_;
178 hash_ = ((hash_ >> 16) ^ hash_) * 0x45d9f3b + perturb_;
181 hash_ = 5 * hash_ + 1;
218 #define SLOT_PROBING_BEGIN(PROBING_STRATEGY, HASH, MASK, R_SLOT_INDEX) \
219 PROBING_STRATEGY probing_strategy(HASH); \
221 int64_t linear_offset = 0; \
222 uint64_t current_hash = probing_strategy.get(); \
224 int64_t R_SLOT_INDEX = static_cast<int64_t>((current_hash + static_cast<uint64_t>(linear_offset)) & MASK);
226 #define SLOT_PROBING_END() \
227 } while (++linear_offset < probing_strategy.linear_steps()); \
228 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