-/// The transposition table class. This is basically just a huge array
-/// containing TTEntry objects, and a few methods for writing new entries
-/// and reading new ones.
+static const unsigned TTClusterSize = 3;
+
+struct TTCluster {
+ TTEntry entry[TTClusterSize];
+ char padding[2];
+};
+
+/// A TranspositionTable consists of a power of 2 number of clusters and each
+/// cluster consists of TTClusterSize 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.