From 6aa9308f08bc76b0e3615dde65de7782a6761fa3 Mon Sep 17 00:00:00 2001 From: Stefan Geschwentner Date: Sun, 28 Aug 2016 12:39:49 +0200 Subject: [PATCH 1/1] Tweak probcut threshold Use better threshold for capture move generation. STC: LLR: 2.96 (-2.94,2.94) [0.00,5.00] Total: 23265 W: 4415 L: 4188 D: 14662 LTC: LLR: 2.95 (-2.94,2.94) [0.00,4.00] Total: 36618 W: 5083 L: 4836 D: 26699 bench: 7030088 --- src/search.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index ff31e036..cf7e411d 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -788,9 +788,8 @@ namespace { } // Step 9. ProbCut (skipped when in check) - // If we have a very good capture (i.e. SEE > seeValues[captured_piece_type]) - // and a reduced search returns a value much above beta, we can (almost) - // safely prune the previous move. + // If we have a good enough capture and a reduced search returns a value + // much above beta, we can (almost) safely prune the previous move. if ( !PvNode && depth >= 5 * ONE_PLY && abs(beta) < VALUE_MATE_IN_MAX_PLY) @@ -802,7 +801,7 @@ namespace { assert((ss-1)->currentMove != MOVE_NONE); assert((ss-1)->currentMove != MOVE_NULL); - MovePicker mp(pos, ttMove, PieceValue[MG][pos.captured_piece_type()]); + MovePicker mp(pos, ttMove, rbeta - ss->staticEval); while ((move = mp.next_move()) != MOVE_NONE) if (pos.legal(move)) -- 2.39.2