BitBully 0.0.39
Loading...
Searching...
No Matches
GameSolver::Connect4::TranspositionTable< partial_key_t, key_t, value_t, log_size > Class Template Reference

#include <TranspositionTable.hpp>

Inheritance diagram for GameSolver::Connect4::TranspositionTable< partial_key_t, key_t, value_t, log_size >:
[legend]
Collaboration diagram for GameSolver::Connect4::TranspositionTable< partial_key_t, key_t, value_t, log_size >:
[legend]

Public Member Functions

void reset ()
 
void put (key_t key, value_t value)
 
value_t get (key_t key) const override
 

Detailed Description

template<class partial_key_t, class key_t, class value_t, int log_size>
class GameSolver::Connect4::TranspositionTable< partial_key_t, key_t, value_t, log_size >

Transposition Table is a simple hash map with fixed storage size. In case of collision we keep the last entry and overide the previous one. We keep only part of the key to reduce storage, but no error is possible thanks to Chinese theorem.

The number of stored entries is a power of two that is defined at compile time. We also define size of the entries and keys to allow optimization at compile time.

key_size: number of bits of the key value_size: number of bits of the value log_size: base 2 log of the size of the Transposition Table. The table will contain 2^log_size elements

Definition at line 94 of file TranspositionTable.hpp.

Constructor & Destructor Documentation

◆ TranspositionTable()

template<class partial_key_t, class key_t, class value_t, int log_size>
GameSolver::Connect4::TranspositionTable< partial_key_t, key_t, value_t, log_size >::TranspositionTable ( )
inline

Definition at line 111 of file TranspositionTable.hpp.

◆ ~TranspositionTable()

template<class partial_key_t, class key_t, class value_t, int log_size>
GameSolver::Connect4::TranspositionTable< partial_key_t, key_t, value_t, log_size >::~TranspositionTable ( )
inline

Definition at line 117 of file TranspositionTable.hpp.

Member Function Documentation

◆ get()

template<class partial_key_t, class key_t, class value_t, int log_size>
value_t GameSolver::Connect4::TranspositionTable< partial_key_t, key_t, value_t, log_size >::get ( key_t key) const
inlineoverridevirtual

Get the value of a key

Parameters
keymust be less than key_size bits.
Returns
value_size bits value associated with the key if present, 0 otherwise.

Implements GameSolver::Connect4::TableGetter< key_t, value_t >.

Definition at line 146 of file TranspositionTable.hpp.

◆ put()

template<class partial_key_t, class key_t, class value_t, int log_size>
void GameSolver::Connect4::TranspositionTable< partial_key_t, key_t, value_t, log_size >::put ( key_t key,
value_t value )
inline

Store a value for a given key

Parameters
keymust be less than key_size bits.
valuemust be less than value_size bits. null (0) value is used to encode missing data

Definition at line 135 of file TranspositionTable.hpp.

◆ reset()

template<class partial_key_t, class key_t, class value_t, int log_size>
void GameSolver::Connect4::TranspositionTable< partial_key_t, key_t, value_t, log_size >::reset ( )
inline

Empty the Transition Table.

Definition at line 125 of file TranspositionTable.hpp.


The documentation for this class was generated from the following file: