This patch allows more aggressive futility/see based pruning for PV nodes with low delta and non-pv nodes.
Fixes some white space issues.
Passed STC
https://tests.stockfishchess.org/tests/view/
61a5ed33d16c530b5dcc27cc
LLR: 2.95 (-2.94,2.94) <0.00,2.50>
Total: 182088 W: 47121 L: 46584 D: 88383
Ptnml(0-2): 551, 20687, 48037, 21212, 557
Passed LTC
https://tests.stockfishchess.org/tests/view/
61a74dfdbd5c4360bcded0ac
LLR: 2.94 (-2.94,2.94) <0.50,3.00>
Total: 87136 W: 22494 L: 22103 D: 42539
Ptnml(0-2): 38, 8918, 25272, 9295, 45
closes https://github.com/official-stockfish/Stockfish/pull/3828
closes https://github.com/official-stockfish/Stockfish/pull/3829
bench
4332259
if (!fun1)
return -1;
- // First call to GetLogicalProcessorInformationEx() to get returnLength.
+ // First call to GetLogicalProcessorInformationEx() to get returnLength.
// We expect the call to fail due to null buffer.
if (fun1(RelationAll, nullptr, &returnLength))
return -1;
if (!fun2 || !fun3)
return;
- if (!fun4 || !fun5)
+ if (!fun4 || !fun5)
{
GROUP_AFFINITY affinity;
if (fun2(node, &affinity)) // GetNumaNodeProcessorMaskEx
fun3(GetCurrentThread(), &affinity, nullptr); // SetThreadGroupAffinity
- }
- else
+ }
+ else
{
// If a numa node has more than one processor group, we assume they are
// sized equal and we spread threads evenly across the groups.
/// sigmoid(t, x0, y0, C, P, Q) implements a sigmoid-like function using only integers,
/// with the following properties:
-///
+///
/// - sigmoid is centered in (x0, y0)
/// - sigmoid has amplitude [-P/Q , P/Q] instead of [-1 , +1]
/// - limit is (y0 - P/Q) when t tends to -infinity
history += thisThread->mainHistory[us][from_to(move)];
+ lmrDepth = std::max(0, lmrDepth - (beta - alpha < thisThread->rootDelta / 4));
+
// Futility pruning: parent node (~5 Elo)
if ( !ss->inCheck
&& lmrDepth < 8