]> git.sesse.net Git - stockfish/blobdiff - src/tt.h
Sync with master
[stockfish] / src / tt.h
index b2f9e0dcdf68a0c643a121dbc8dc4078faeeb1d2..32b4036e39dea085974410867b7212facfc6c625 100644 (file)
--- a/src/tt.h
+++ b/src/tt.h
@@ -66,7 +66,7 @@ private:
 
 
 /// A TranspositionTable consists of a power of 2 number of clusters and each
-/// cluster consists of TTClusterSize number of TTEntry. Each non-empty entry
+/// cluster consists of ClusterSize number of TTEntry. Each non-empty entry
 /// contains information of exactly one position. The size of a cluster should
 /// not be bigger than a cache line size. In case it is less, it should be padded
 /// to guarantee always aligned accesses.
@@ -74,18 +74,21 @@ private:
 class TranspositionTable {
 
   static const int CacheLineSize = 64;
-  static const int TTClusterSize = 3;
+  static const int ClusterSize = 3;
 
-  struct TTCluster {
-    TTEntry entry[TTClusterSize];
+  struct Cluster {
+    TTEntry entry[ClusterSize];
     char padding[2]; // Align to the cache line size
   };
 
+  static_assert(sizeof(Cluster) == CacheLineSize / 2, "Cluster size incorrect");
+
 public:
  ~TranspositionTable() { free(mem); }
   void new_search() { generation8 += 4; } // Lower 2 bits are used by Bound
   uint8_t generation() const { return generation8; }
   TTEntry* probe(const Key key, bool& found) const;
+  int hashfull() const;
   void resize(size_t mbSize);
   void clear();
 
@@ -96,7 +99,7 @@ public:
 
 private:
   size_t clusterCount;
-  TTCluster* table;
+  Cluster* table;
   void* mem;
   uint8_t generation8; // Size must be not bigger than TTEntry::genBound8
 };