mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 17:16:33 +08:00
Further documentation and coding style on TB code
This patch adds some documentation and code cleanup to tablebase code. It took me some time to understand the relation among the differrent structs, although I have rewrote them fully in the past. So I wrote some detailed documentation to avoid the same efforts for future readers. Also noteworthy is the use a standard hash table implementation with a more efficient 1D array instead of a 2D array. This reduces the average lookup steps of 90% (from 343 to 38 in a bench 128 1 16 run) and reduces also the table from 5K to 4K entries. I have tested on 5-men and no functional and no slowdown reported. It should be verified on 6-men that the new hash does not overflow. It is enough to run ./stockfish with 6-men available: if it does not assert at startup it means everything is ok with 6-men too. EDIT: verified for 6-men tablebase by Jörg Oster. Thanks! No functional change.
This commit is contained in:
committed by
Stéphane Nicolet
parent
62619fa228
commit
6413d9b1f9
@@ -43,7 +43,7 @@ int main(int argc, char* argv[]) {
|
||||
Bitbases::init();
|
||||
Search::init();
|
||||
Pawns::init();
|
||||
Tablebases::init(Options["SyzygyPath"]);
|
||||
Tablebases::init(Options["SyzygyPath"]); // After Bitboards are set
|
||||
TT.resize(Options["Hash"]);
|
||||
Threads.set(Options["Threads"]);
|
||||
Search::clear(); // After threads are up
|
||||
|
||||
Reference in New Issue
Block a user