From: Stefano80 Date: Wed, 13 Jan 2016 16:05:31 +0000 (+0000) Subject: Adjust reductions based on history and cmh tables X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=74e2fa97b7ce49722b908f35988f3c75dee9bf36;hp=dcd8ce70941e9b8d5180eb43865bb9819e424c19 Adjust reductions based on history and cmh tables STC: LLR: 4.06 (-2.94,2.94) [0.00,5.00] Total: 149395 W: 28029 L: 27208 D: 94158 LTC: LLR: 2.96 (-2.94,2.94) [0.00,5.00] Total: 9628 W: 1368 L: 1217 D: 7043 bench: 8076724 Resolves #565 --- diff --git a/src/search.cpp b/src/search.cpp index 0cee3aa9..70052bbc 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1000,10 +1000,11 @@ moves_loop: // When in check search starts from here && cmh[pos.piece_on(to_sq(move))][to_sq(move)] <= VALUE_ZERO)) r += ONE_PLY; - // Decrease reduction for moves with a good history - if ( thisThread->history[pos.piece_on(to_sq(move))][to_sq(move)] > VALUE_ZERO - && cmh[pos.piece_on(to_sq(move))][to_sq(move)] > VALUE_ZERO) - r = std::max(DEPTH_ZERO, r - ONE_PLY); + // Decrease reduction for moves with a good history and + // increase reduction for moves with a bad history + int rDecrease = ( thisThread->history[pos.piece_on(to_sq(move))][to_sq(move)] + + cmh[pos.piece_on(to_sq(move))][to_sq(move)]) / 14980; + r = std::max(DEPTH_ZERO, r - rDecrease * ONE_PLY); // Decrease reduction for moves that escape a capture. Filter out castling // moves because are coded as "king captures rook" and break make_move().