From ac8e6ff000d3d990ae07297ec60e33a9cfb513b1 Mon Sep 17 00:00:00 2001 From: VoyagerOne Date: Sat, 28 Mar 2015 21:15:49 +0000 Subject: [PATCH 1/1] Use CounterMoveHistory when calculating LMR for cut nodes If the sum of CounterMoveHistory heuristic and History heuristic is below zero, then reduce an extra ply in cut nodes LTC: LLR: 2.96 (-2.94,2.94) [0.00,6.00] Total: 6479 W: 1099 L: 967 D: 4413 Bench: 7773299 Resolves #315 --- src/search.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/search.cpp b/src/search.cpp index 085bca3a..c5da0d4f 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -964,7 +964,9 @@ moves_loop: // When in check and at SpNode search starts from here ss->reduction = reduction(improving, depth, moveCount); if ( (!PvNode && cutNode) - || History[pos.piece_on(to_sq(move))][to_sq(move)] < VALUE_ZERO) + || History[pos.piece_on(to_sq(move))][to_sq(move)] < VALUE_ZERO + || CounterMovesHistory[pos.piece_on(prevMoveSq)][prevMoveSq][pos.piece_on(to_sq(move))][to_sq(move)] + + History[pos.piece_on(to_sq(move))][to_sq(move)] < VALUE_ZERO) ss->reduction += ONE_PLY; if (move == countermoves[0] || move == countermoves[1]) -- 2.39.2