From 7396c08b795191d954528d687e84d7ff6dbe7a3b Mon Sep 17 00:00:00 2001 From: VoyagerOne Date: Fri, 12 Aug 2016 13:55:12 -0400 Subject: [PATCH 1/1] Use predicted depth for history pruning STC: (Yellow) LLR: -2.96 (-2.94,2.94) [0.00,4.00] Total: 69115 W: 12880 L: 12797 D: 43438 LTC: LLR: 2.96 (-2.94,2.94) [0.00,4.00] Total: 124163 W: 16923 L: 16442 D: 90798 Note: Note based off past experiments / patches... history pruning is quite TC sensitive. I believe the reason for this TC dependency is that the CMH/FMH is a very large table that takes time to fill up with. In addition having more time for will increase the accuracy of the stats' value. Bench: 7351698 --- src/search.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index 8b6e1690..0261a481 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -915,16 +915,16 @@ moves_loop: // When in check search starts from here if (moveCountPruning) continue; + predictedDepth = std::max(newDepth - reduction(improving, depth, moveCount), DEPTH_ZERO); + // Countermoves based pruning - if ( depth <= 4 * ONE_PLY + if ( predictedDepth < 3 * ONE_PLY && move != ss->killers[0] && (!cmh || (*cmh )[moved_piece][to_sq(move)] < VALUE_ZERO) && (!fmh || (*fmh )[moved_piece][to_sq(move)] < VALUE_ZERO) && (!fmh2 || (*fmh2)[moved_piece][to_sq(move)] < VALUE_ZERO || (cmh && fmh))) continue; - predictedDepth = std::max(newDepth - reduction(improving, depth, moveCount), DEPTH_ZERO); - // Futility pruning: parent node if ( predictedDepth < 7 * ONE_PLY && ss->staticEval + 256 + 200 * predictedDepth / ONE_PLY <= alpha) @@ -1397,7 +1397,7 @@ moves_loop: // When in check search starts from here ss->killers[1] = ss->killers[0]; ss->killers[0] = move; } - + Color c = pos.side_to_move(); Value bonus = Value((depth / ONE_PLY) * (depth / ONE_PLY) + 2 * depth / ONE_PLY - 2); -- 2.39.2