diff --git a/src/search.cpp b/src/search.cpp index 3bf460a1a..b4b85ee76 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1178,27 +1178,27 @@ moves_loop: // When in check, search starts here // These reduction adjustments have no proven non-linear scaling - r += 650; // Base reduction offset to compensate for other tweaks - r -= moveCount * 69; + r += 679 - 6 * msb(depth); // Base reduction offset to compensate for other tweaks + r -= moveCount * (67 - 2 * msb(depth)); r -= std::abs(correctionValue) / 27160; // Increase reduction for cut nodes if (cutNode) - r += 3000 + 1024 * !ttData.move; + r += 2998 + 2 * msb(depth) + (948 + 14 * msb(depth)) * !ttData.move; // Increase reduction if ttMove is a capture if (ttCapture) - r += 1350; + r += 1402 - 39 * msb(depth); // Increase reduction if next ply has a lot of fail high if ((ss + 1)->cutoffCnt > 2) - r += 935 + allNode * 763; + r += 925 + 33 * msb(depth) + allNode * (701 + 224 * msb(depth)); r += (ss + 1)->quietMoveStreak * 51; // For first picked move (ttMove) reduce reduction if (move == ttData.move) - r -= 2043; + r -= 2121 + 28 * msb(depth); if (capture) ss->statScore = 782 * int(PieceValue[pos.captured_piece()]) / 128 @@ -1209,7 +1209,7 @@ moves_loop: // When in check, search starts here + (*contHist[1])[movedPiece][move.to_sq()]; // Decrease/increase reduction for moves with a good/bad history - r -= ss->statScore * 789 / 8192; + r -= ss->statScore * (729 - 12 * msb(depth)) / 8192; // Step 17. Late moves reduction / extension (LMR) if (depth >= 2 && moveCount > 1) @@ -1250,7 +1250,7 @@ moves_loop: // When in check, search starts here { // Increase reduction if ttMove is not present if (!ttData.move) - r += 1139; + r += 1199 + 35 * msb(depth); const int threshold1 = depth <= 4 ? 2000 : 3200; const int threshold2 = depth <= 4 ? 3500 : 4600;