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);