History pruning
authorVoyagerOne <excelgeek@gmail.com>
Wed, 21 Oct 2015 22:21:23 +0000 (18:21 -0400)
committerMarco Costalba <mcostalba@gmail.com>
Sat, 24 Oct 2015 07:30:31 +0000 (09:30 +0200)
Prune moves with negative History
and CMH scores at low depth.

STC:
LLR: 2.96 (-2.94,2.94) [0.00,5.00]
Total: 24182 W: 4672 L: 4439 D: 15071

LTC:
LLR: 2.97 (-2.94,2.94) [0.00,5.00]
Total: 12579 W: 1959 L: 1792 D: 8828

bench: 8907701

src/search.cpp

index 33ab6b5..b3dc277 100644 (file)
@@ -894,6 +894,13 @@ moves_loop: // When in check search starts from here
               && moveCount >= FutilityMoveCounts[improving][depth])
               continue;
 
+          // History Score Pruning
+          if (   depth <= 3 * ONE_PLY
+              && thisThread->History[pos.moved_piece(move)][to_sq(move)] < VALUE_ZERO
+              && CounterMovesHistory[pos.piece_on(prevMoveSq)][prevMoveSq]
+                                    [pos.moved_piece(move)][to_sq(move)] < VALUE_ZERO)
+              continue;
+
           predictedDepth = newDepth - reduction<PvNode>(improving, depth, moveCount);
 
           // Futility pruning: parent node