X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Ftt.cpp;h=24e94c8008bd691c4045719f065359dd1ff3ee5a;hp=11173e0a1243511e24618f82a4def19a67f925dd;hb=40c863d41af5058a02f1de3423a000d801dcb08a;hpb=a71209868bdd8361d0607acf7725f70e9d1f2019 diff --git a/src/tt.cpp b/src/tt.cpp index 11173e0a..24e94c80 100644 --- a/src/tt.cpp +++ b/src/tt.cpp @@ -1,7 +1,7 @@ /* Stockfish, a UCI chess playing engine derived from Glaurung 2.1 Copyright (C) 2004-2008 Tord Romstad (Glaurung author) - Copyright (C) 2008-2013 Marco Costalba, Joona Kiiski, Tord Romstad + Copyright (C) 2008-2014 Marco Costalba, Joona Kiiski, Tord Romstad Stockfish is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -30,7 +30,7 @@ TranspositionTable TT; // Our global transposition table /// measured in megabytes. Transposition table consists of a power of 2 number /// of clusters and each cluster consists of ClusterSize number of TTEntry. -void TranspositionTable::set_size(size_t mbSize) { +void TranspositionTable::set_size(uint64_t mbSize) { assert(msb((mbSize << 20) / sizeof(TTEntry)) < 32); @@ -73,7 +73,7 @@ const TTEntry* TranspositionTable::probe(const Key key) const { const TTEntry* tte = first_entry(key); uint32_t key32 = key >> 32; - for (unsigned i = 0; i < ClusterSize; ++i, tte++) + for (unsigned i = 0; i < ClusterSize; ++i, ++tte) if (tte->key() == key32) return tte; @@ -83,13 +83,13 @@ const TTEntry* TranspositionTable::probe(const Key key) const { /// TranspositionTable::store() writes a new entry containing position key and /// valuable information of current position. The lowest order bits of position -/// key are used to decide on which cluster the position will be placed. -/// When a new entry is written and there are no empty entries available in cluster, -/// it replaces the least valuable of entries. A TTEntry t1 is considered to be -/// more valuable than a TTEntry t2 if t1 is from the current search and t2 is from -/// a previous search, or if the depth of t1 is bigger than the depth of t2. +/// key are used to decide in which cluster the position will be placed. +/// When a new entry is written and there are no empty entries available in the +/// cluster, it replaces the least valuable of the entries. A TTEntry t1 is considered +/// to be more valuable than a TTEntry t2 if t1 is from the current search and t2 +/// is from a previous search, or if the depth of t1 is bigger than the depth of t2. -void TranspositionTable::store(const Key key, Value v, Bound b, Depth d, Move m, Value statV, Value evalM) { +void TranspositionTable::store(const Key key, Value v, Bound b, Depth d, Move m, Value statV) { int c1, c2, c3; TTEntry *tte, *replace; @@ -97,7 +97,7 @@ void TranspositionTable::store(const Key key, Value v, Bound b, Depth d, Move m, tte = replace = first_entry(key); - for (unsigned i = 0; i < ClusterSize; ++i, tte++) + for (unsigned i = 0; i < ClusterSize; ++i, ++tte) { if (!tte->key() || tte->key() == key32) // Empty or overwrite old { @@ -117,5 +117,5 @@ void TranspositionTable::store(const Key key, Value v, Bound b, Depth d, Move m, replace = tte; } - replace->save(key32, v, b, d, m, generation, statV, evalM); + replace->save(key32, v, b, d, m, generation, statV); }