Skip to content

Commit

Permalink
Stat score initialization: children
Browse files Browse the repository at this point in the history
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
  • Loading branch information
locutus2 authored and snicolet committed Feb 27, 2018
1 parent 29bc128 commit 1463881
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/search.cpp
Expand Up @@ -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();
Expand Down

0 comments on commit 1463881

Please sign in to comment.