From: VoyagerOne Date: Tue, 13 Mar 2018 07:20:20 +0000 (+0100) Subject: Use quiescence search for Probcut X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=b2961aded6cd2807a8c4899e090e28fcb2161310 Use quiescence search for Probcut Perform qsearch for the preliminary search in Probcut Passed STC with sprt[-3..1] bounds: LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 31090 W: 6386 L: 6283 D: 18421 http://tests.stockfishchess.org/tests/view/5aa598ed0ebc59029780ff9f Passed LTC with sprt[0..4] bounds: LLR: 2.95 (-2.94,2.94) [0.00,4.00] Total: 104056 W: 15990 L: 15531 D: 72535 http://tests.stockfishchess.org/tests/view/5aa5b0f30ebc59029780ffa9 Closes https://github.com/official-stockfish/Stockfish/pull/1483 Bench: 5404567 --- diff --git a/src/search.cpp b/src/search.cpp index adb6a22a..8639393c 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -778,15 +778,11 @@ namespace { pos.do_move(move, st); - // Perform a preliminary search at depth 1 to verify that the move holds. - // We will only do this search if the depth is not 5, thus avoiding two - // searches at depth 1 in a row. - if (depth != 5 * ONE_PLY) - value = -search(pos, ss+1, -rbeta, -rbeta+1, ONE_PLY, !cutNode, true); - - // If the first search was skipped or was performed and held, perform - // the regular search. - if (depth == 5 * ONE_PLY || value >= rbeta) + // Perform a preliminary qsearch to verify that the move holds + value = -qsearch(pos, ss+1, -rbeta, -rbeta+1); + + // If the qsearch held perform the regular search + if (value >= rbeta) value = -search(pos, ss+1, -rbeta, -rbeta+1, depth - 4 * ONE_PLY, !cutNode, false); pos.undo_move(move);