Introduce separate counter-move tables for captures

Enhance counter-move history table by adding a capture/no-capture dimension,
depending wether the previous move was a quiet move or a capture. This doubles
the size of the table but provides more accurate move ordering.

STC:
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 79702 W: 17720 L: 17164 D: 44818
http://tests.stockfishchess.org/tests/view/5d97945e0ebc590c21aa724b

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 29147 W: 4907 L: 4651 D: 19589
http://tests.stockfishchess.org/tests/view/5d97ccb90ebc590c21aa7bc0

Closes https://github.com/official-stockfish/Stockfish/pull/2344

Bench: 4131643
This commit is contained in:
VoyagerOne
2019-10-05 10:42:36 -04:00
committed by Stéphane Nicolet
parent ca7d4e9ac7
commit 2e96c513ad
5 changed files with 27 additions and 21 deletions

View File

@@ -70,11 +70,13 @@ void Thread::clear() {
mainHistory.fill(0);
captureHistory.fill(0);
for (auto& to : continuationHistory)
for (auto& h : to)
h->fill(0);
for (StatsType c : { NoCaptures, Captures })
for (auto& to : continuationHistory[c])
for (auto& h : to)
h->fill(0);
continuationHistory[NO_PIECE][0]->fill(Search::CounterMovePruneThreshold - 1);
for (StatsType c : { NoCaptures, Captures })
continuationHistory[c][NO_PIECE][0]->fill(Search::CounterMovePruneThreshold - 1);
}
/// Thread::start_searching() wakes up the thread that will start the search