/// TranspositionTable::resize() sets the size of the transposition table,
/// measured in megabytes. Transposition table consists of a power of 2 number
-/// of clusters and each cluster consists of TTClusterSize number of TTEntry.
+/// of clusters and each cluster consists of ClusterSize number of TTEntry.
void TranspositionTable::resize(size_t mbSize) {
TTEntry* const tte = first_entry(key);
const uint16_t key16 = key >> 48; // Use the high 16 bits as key inside the cluster
- for (int i = 0; i < TTClusterSize; ++i)
+ for (int i = 0; i < ClusterSize; ++i)
if (!tte[i].key16 || tte[i].key16 == key16)
{
if (tte[i].key16)
// Find an entry to be replaced according to the replacement strategy
TTEntry* replace = tte;
- for (int i = 1; i < TTClusterSize; ++i)
+ for (int i = 1; i < ClusterSize; ++i)
if ( (( tte[i].genBound8 & 0xFC) == generation8 || tte[i].bound() == BOUND_EXACT)
- ((replace->genBound8 & 0xFC) == generation8)
- (tte[i].depth8 < replace->depth8) < 0)
/// 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.
class TranspositionTable {
static const int CacheLineSize = 64;
- static const int TTClusterSize = 3;
+ static const int ClusterSize = 3;
struct Cluster {
- TTEntry entry[TTClusterSize];
+ TTEntry entry[ClusterSize];
char padding[2]; // Align to the cache line size
};