1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-05-01 01:03:09 +00:00

Reintroduce singularQuietLMR

STC:
LLR: 2.96 (-2.94,2.94) <0.00,2.00>
Total: 88912 W: 23972 L: 23580 D: 41360
Ptnml(0-2): 365, 9820, 23712, 10176, 383
https://tests.stockfishchess.org/tests/view/62e9537a400addce2c13399b

LTC:
LLR: 2.97 (-2.94,2.94) <0.50,2.50>
Total: 85672 W: 23607 L: 23192 D: 38873
Ptnml(0-2): 219, 8316, 25365, 8703, 233
https://tests.stockfishchess.org/tests/view/62e9a174400addce2c1346e4

closes https://github.com/official-stockfish/Stockfish/pull/4122

Bench: 5921315
This commit is contained in:
lonfom169 2022-08-03 12:43:21 -03:00 committed by Joost VandeVondele
parent 675f6a038b
commit b8f4903fbb

View file

@ -558,7 +558,7 @@ namespace {
Move ttMove, move, excludedMove, bestMove; Move ttMove, move, excludedMove, bestMove;
Depth extension, newDepth; Depth extension, newDepth;
Value bestValue, value, ttValue, eval, maxValue, probCutBeta; Value bestValue, value, ttValue, eval, maxValue, probCutBeta;
bool givesCheck, improving, didLMR, priorCapture; bool givesCheck, improving, didLMR, priorCapture, singularQuietLMR;
bool capture, doFullDepthSearch, moveCountPruning, ttCapture; bool capture, doFullDepthSearch, moveCountPruning, ttCapture;
Piece movedPiece; Piece movedPiece;
int moveCount, captureCount, quietCount, improvement, complexity; int moveCount, captureCount, quietCount, improvement, complexity;
@ -945,7 +945,7 @@ moves_loop: // When in check, search starts here
ss->killers); ss->killers);
value = bestValue; value = bestValue;
moveCountPruning = false; moveCountPruning = singularQuietLMR = false;
// Indicate PvNodes that will probably fail low if the node was searched // Indicate PvNodes that will probably fail low if the node was searched
// at a depth equal or greater than the current depth, and the result of this search was a fail low. // at a depth equal or greater than the current depth, and the result of this search was a fail low.
@ -1075,6 +1075,7 @@ moves_loop: // When in check, search starts here
if (value < singularBeta) if (value < singularBeta)
{ {
extension = 1; extension = 1;
singularQuietLMR = !ttCapture;
// Avoid search explosion by limiting the number of double extensions // Avoid search explosion by limiting the number of double extensions
if ( !PvNode if ( !PvNode
@ -1167,6 +1168,10 @@ moves_loop: // When in check, search starts here
if (PvNode) if (PvNode)
r -= 1 + 15 / (3 + depth); r -= 1 + 15 / (3 + depth);
// Decrease reduction if ttMove has been singularly extended (~1 Elo)
if (singularQuietLMR)
r--;
// Increase reduction if next ply has a lot of fail high else reset count to 0 // Increase reduction if next ply has a lot of fail high else reset count to 0
if ((ss+1)->cutoffCnt > 3 && !PvNode) if ((ss+1)->cutoffCnt > 3 && !PvNode)
r++; r++;