Streamlline reduction based on movecount

Use MoveCount History only at quiet moves and simply reduce
reduction by one depth instead of increasing moveCount in formula.

STC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 27511 W: 5171 L: 4919 D: 17421

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 92337 W: 12135 L: 11748 D: 68454

Bench: 6351176
This commit is contained in:
VoyagerOne
2017-09-04 16:27:22 -04:00
committed by Marco Costalba
parent 741523eda8
commit 3ac47c84d3

View File

@@ -947,13 +947,16 @@ moves_loop: // When in check search starts from here
&& moveCount > 1 && moveCount > 1
&& (!captureOrPromotion || moveCountPruning)) && (!captureOrPromotion || moveCountPruning))
{ {
int mch = std::max(1, moveCount - (ss-1)->moveCount / 16); Depth r = reduction<PvNode>(improving, depth, moveCount);
Depth r = reduction<PvNode>(improving, depth, mch);
if (captureOrPromotion) if (captureOrPromotion)
r -= r ? ONE_PLY : DEPTH_ZERO; r -= r ? ONE_PLY : DEPTH_ZERO;
else else
{ {
// Decrease reduction if opponent's move count is high
if ((ss-1)->moveCount > 15)
r -= ONE_PLY;
// Increase reduction if ttMove is a capture // Increase reduction if ttMove is a capture
if (ttCapture) if (ttCapture)
r += ONE_PLY; r += ONE_PLY;