static_assert(sizeof(Cluster) == 32, "Unexpected Cluster size");
public:
- ~TranspositionTable() { free(mem); }
+ ~TranspositionTable() { aligned_ttmem_free(mem); }
void new_search() { generation8 += 8; } // Lower 3 bits are used by PV flag and Bound
TTEntry* probe(const Key key, bool& found) const;
int hashfull() const;
void resize(size_t mbSize);
void clear();
- // The 32 lowest order bits of the key are used to get the index of the cluster
TTEntry* first_entry(const Key key) const {
- return &table[(uint32_t(key) * uint64_t(clusterCount)) >> 32].entry[0];
+ return &table[mul_hi64(key, clusterCount)].entry[0];
}
private: