1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-07-11 19:49:14 +00:00

Decrease reduction in case we had singular extension. #2146

Passed STC http://tests.stockfishchess.org/tests/view/5cda71790ebc5925cf057a84
LLR: 2.95 (-2.94,2.94) [0.50,4.50]
Total: 73454 W: 16482 L: 15954 D: 41018

Passed LTC http://tests.stockfishchess.org/tests/view/5cdab17b0ebc5925cf05822f
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 56696 W: 9877 L: 9538 D: 37281

Original idea by @locutus2

bench 3378510
This commit is contained in:
Michael Chaly 2019-05-15 10:49:29 +03:00 committed by Marco Costalba
parent 8a0af1004a
commit 7df832fea6

View file

@ -855,6 +855,7 @@ moves_loop: // When in check, search starts from here
value = bestValue; // Workaround a bogus 'uninitialized' warning under gcc
moveCountPruning = false;
ttCapture = ttMove && pos.capture_or_promotion(ttMove);
int singularExtensionLMRmultiplier = 0;
// Step 12. Loop through all pseudo-legal moves until no moves remain
// or a beta cutoff occurs.
@ -911,7 +912,12 @@ moves_loop: // When in check, search starts from here
ss->excludedMove = MOVE_NONE;
if (value < singularBeta)
{
extension = ONE_PLY;
singularExtensionLMRmultiplier++;
if (value < singularBeta - std::min(3 * depth / ONE_PLY, 39))
singularExtensionLMRmultiplier++;
}
// Multi-cut pruning
// Our ttMove is assumed to fail high, and now we failed high also on a reduced
@ -1021,6 +1027,8 @@ moves_loop: // When in check, search starts from here
// Decrease reduction if opponent's move count is high (~10 Elo)
if ((ss-1)->moveCount > 15)
r -= ONE_PLY;
// Decrease reduction if move has been singularly extended
r -= singularExtensionLMRmultiplier * ONE_PLY;
if (!captureOrPromotion)
{