@@ -66,15 +66,15 @@ namespace {
6666
6767 // Futility margin
6868 Value futility_margin (Depth d, bool improving) {
69- return Value (231 * (d - improving));
69+ return Value (214 * (d - improving));
7070 }
7171
7272 // Reductions lookup table, initialized at startup
7373 int Reductions[MAX_MOVES]; // [depth or moveNumber]
7474
7575 Depth reduction (bool i, Depth d, int mn) {
7676 int r = Reductions[d] * Reductions[mn];
77- return (r + 503 ) / 1024 + (!i && r > 915 );
77+ return (r + 534 ) / 1024 + (!i && r > 904 );
7878 }
7979
8080 constexpr int futility_move_count (bool improving, Depth depth) {
@@ -83,7 +83,7 @@ namespace {
8383
8484 // History and stats update bonus, based on depth
8585 int stat_bonus (Depth d) {
86- return d > 14 ? 66 : 6 * d * d + 231 * d - 206 ;
86+ return d > 14 ? 73 : 6 * d * d + 229 * d - 215 ;
8787 }
8888
8989 // Add a small random component to draw evaluations to avoid 3-fold blindness
@@ -798,18 +798,18 @@ namespace {
798798 // Step 8. Null move search with verification search (~40 Elo)
799799 if ( !PvNode
800800 && (ss-1 )->currentMove != MOVE_NULL
801- && (ss-1 )->statScore < 24185
801+ && (ss-1 )->statScore < 23767
802802 && eval >= beta
803803 && eval >= ss->staticEval
804- && ss->staticEval >= beta - 22 * depth - 34 * improving + 162 * ss->ttPv + 159
804+ && ss->staticEval >= beta - 20 * depth - 22 * improving + 168 * ss->ttPv + 159
805805 && !excludedMove
806806 && pos.non_pawn_material (us)
807807 && (ss->ply >= thisThread->nmpMinPly || us != thisThread->nmpColor ))
808808 {
809809 assert (eval - beta >= 0 );
810810
811811 // Null move dynamic reduction based on depth and value
812- Depth R = (1062 + 68 * depth) / 256 + std::min (int (eval - beta) / 190 , 3 );
812+ Depth R = (1090 + 81 * depth) / 256 + std::min (int (eval - beta) / 205 , 3 );
813813
814814 ss->currentMove = MOVE_NULL;
815815 ss->continuationHistory = &thisThread->continuationHistory [0 ][0 ][NO_PIECE][0 ];
@@ -922,7 +922,7 @@ namespace {
922922 ttCapture = ttMove && pos.capture_or_promotion (ttMove);
923923
924924 // Step 11. A small Probcut idea, when we are in check
925- probCutBeta = beta + 400 ;
925+ probCutBeta = beta + 409 ;
926926 if ( ss->inCheck
927927 && !PvNode
928928 && depth >= 4
@@ -1073,7 +1073,7 @@ namespace {
10731073 {
10741074 extension = 1 ;
10751075 singularQuietLMR = !ttCapture;
1076- if (!PvNode && value < singularBeta - 140 )
1076+ if (!PvNode && value < singularBeta - 93 )
10771077 extension = 2 ;
10781078 }
10791079
@@ -1165,11 +1165,11 @@ namespace {
11651165 + (*contHist[0 ])[movedPiece][to_sq (move)]
11661166 + (*contHist[1 ])[movedPiece][to_sq (move)]
11671167 + (*contHist[3 ])[movedPiece][to_sq (move)]
1168- - 4791 ;
1168+ - 4923 ;
11691169
11701170 // Decrease/increase reduction for moves with a good/bad history (~30 Elo)
11711171 if (!ss->inCheck )
1172- r -= ss->statScore / 14790 ;
1172+ r -= ss->statScore / 14721 ;
11731173 }
11741174
11751175 // In general we want to cap the LMR depth search at newDepth. But if
0 commit comments