/// The TTEntry class is the class of transposition table entries
///
-/// A TTEntry needs 96 bits to be stored
+/// A TTEntry needs 128 bits to be stored
///
/// bit 0-31: key
/// bit 32-63: data
/// bit 64-79: value
/// bit 80-95: depth
+/// bit 96-111: static value
+/// bit 112-127: king danger value
///
/// the 32 bits of the data field are so defined
///
TTEntry* retrieve(const Key posKey) const;
void new_search();
void insert_pv(const Position& pos, Move pv[]);
- void extract_pv(const Position& pos, Move pv[], const int PLY_MAX);
- int full() const;
+ void extract_pv(const Position& pos, Move bestMove, Move pv[], const int PLY_MAX);
TTEntry* first_entry(const Key posKey) const;
private:
- // Be sure 'writes' is at least one cache line away
- // from read only variables.
- unsigned char pad_before[64 - sizeof(unsigned)];
- unsigned writes; // heavy SMP read/write access here
- unsigned char pad_after[64];
-
size_t size;
TTCluster* entries;
uint8_t generation;