1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 16:53:09 +00:00

Stat score initialization: children

Let the parent node initialize stat score to zero once for all siblings.

Initialize statScore to zero for the children of the current position.
So statScore is shared between sibling positions and only the first sibling
starts with statScore = 0. Later siblings start with the last calculated
statScore of the previous sibling. This influences the reduction rules in
in LMR which are based on the statScore of parent position.

STC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 22683 W: 5202 L: 4946 D: 12535
http://tests.stockfishchess.org/tests/view/5a93315f0ebc590297cc894f

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 48548 W: 8346 L: 8035 D: 32167
http://tests.stockfishchess.org/tests/view/5a933ba90ebc590297cc8962

Bench: 5833683
This commit is contained in:
Stefan Geschwentner 2018-02-27 18:18:07 +01:00 committed by Stéphane Nicolet
parent 29bc128384
commit 1463881153

View file

@ -514,10 +514,16 @@ namespace {
Thread* thisThread = pos.this_thread();
inCheck = pos.checkers();
moveCount = captureCount = quietCount = ss->moveCount = 0;
ss->statScore = 0;
bestValue = -VALUE_INFINITE;
maxValue = VALUE_INFINITE;
// Initialize statScore to zero for the childs of the current position.
// So statScore is shared between sibling positions and only the first sibling
// starts with statScore = 0. Later siblings start with the last calculated
// statScore of the previous sibling. This influences in LMR the reduction rules
// which based on the statScore of parent position.
(ss+1)->statScore = 0;
// Check for the available remaining time
if (thisThread == Threads.main())
static_cast<MainThread*>(thisThread)->check_time();