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

Singular quiet LMR

If ttMove is a capture and had a singular extension, it is probably the best move.
No need to make a decrease of LMR on other moves.

STC
LLR: 2.96 (-2.94,2.94) {-0.50,1.50}
Total: 41968 W: 8170 L: 7918 D: 25880
Ptnml(0-2): 733, 4770, 9726, 5022, 733
https://tests.stockfishchess.org/tests/view/5ed6b666f29b40b0fc95a884

LTC
LLR: 2.95 (-2.94,2.94) {0.25,1.75}
Total: 71376 W: 9200 L: 8827 D: 53349
Ptnml(0-2): 486, 6544, 21342, 6743, 573
https://tests.stockfishchess.org/tests/view/5ed7578bf29b40b0fc95a8c9

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

Bench: 4733799
This commit is contained in:
Moez Jellouli 2020-06-02 22:27:11 +02:00 committed by Joost VandeVondele
parent d1ec10cd4f
commit 16566a8fcf

View file

@ -630,7 +630,8 @@ namespace {
Depth extension, newDepth; Depth extension, newDepth;
Value bestValue, value, ttValue, eval, maxValue; Value bestValue, value, ttValue, eval, maxValue;
bool ttHit, ttPv, formerPv, givesCheck, improving, didLMR, priorCapture; bool ttHit, ttPv, formerPv, givesCheck, improving, didLMR, priorCapture;
bool captureOrPromotion, doFullDepthSearch, moveCountPruning, ttCapture, singularLMR; bool captureOrPromotion, doFullDepthSearch, moveCountPruning,
ttCapture, singularQuietLMR;
Piece movedPiece; Piece movedPiece;
int moveCount, captureCount, quietCount; int moveCount, captureCount, quietCount;
@ -971,7 +972,7 @@ moves_loop: // When in check, search starts from here
depth > 12 ? ss->ply : MAX_PLY); depth > 12 ? ss->ply : MAX_PLY);
value = bestValue; value = bestValue;
singularLMR = moveCountPruning = false; singularQuietLMR = moveCountPruning = false;
ttCapture = ttMove && pos.capture_or_promotion(ttMove); ttCapture = ttMove && pos.capture_or_promotion(ttMove);
// Mark this node as being searched // Mark this node as being searched
@ -1092,7 +1093,7 @@ moves_loop: // When in check, search starts from here
if (value < singularBeta) if (value < singularBeta)
{ {
extension = 1; extension = 1;
singularLMR = true; singularQuietLMR = !ttCapture;
} }
// Multi-cut pruning // Multi-cut pruning
@ -1198,7 +1199,7 @@ moves_loop: // When in check, search starts from here
r--; r--;
// Decrease reduction if ttMove has been singularly extended (~3 Elo) // Decrease reduction if ttMove has been singularly extended (~3 Elo)
if (singularLMR) if (singularQuietLMR)
r -= 1 + formerPv; r -= 1 + formerPv;
if (!captureOrPromotion) if (!captureOrPromotion)