109 [[nodiscard]]
auto find(
const Position& pos)
const -> std::optional<TTData>;
124 -> std::optional<ProbedEval>;
131 -> std::optional<Move>;
144 [[clang::reinitializes]]
void resize(
size_t sizeMB);
167 [[nodiscard]] auto index_table(
size_t clusterIdx) const noexcept -> Cluster&;
170 [[nodiscard]] auto find_cluster(std::uint64_t key) const noexcept -> std::span<Entry>;
172 Cluster* table {
nullptr };
174 size_t clusterCount { 0uz };
176 std::uint8_t generation { UINT8_C(0) };
void resize(size_t sizeMB)
TranspositionTable(const size_t initialSize=16uz)
auto find(const Position &pos) const -> std::optional< TTData >
TranspositionTable & operator=(TranspositionTable &&other) noexcept
TranspositionTable(const TranspositionTable &)=delete
TranspositionTable & operator=(const TranspositionTable &)=delete
auto hashfull() const -> size_t
std::pair< eval::Value, EvalType > ProbedEval
TranspositionTable(TranspositionTable &&other) noexcept
void new_search() noexcept
void prefetch(const Position &pos) const noexcept
auto get_best_response(const Position &pos, Move move) const -> std::optional< Move >
void store(const Position &pos, const TTData &record)
auto probe_eval(const Position &pos, size_t depth, const search::Bounds &bounds) const -> std::optional< ProbedEval >
@ Beta
Indicates that the evaluation is a minimum evaluation; for example, if eval is 16,...
@ Exact
Indicates that the evaluation value is an exact evaluation. This also indicates that this is a PV nod...
@ Alpha
Indicates that the evaluation value is a maximum evaluation; for example, if eval is 16,...
std::optional< Move > bestMove
constexpr auto operator==(const TTData &other) const noexcept -> bool=default