Skip to content

Commit

Permalink
Remove razoring changes from official-stockfish#5360
Browse files Browse the repository at this point in the history
The mentioned patch introduced the usage of futility_margin into razoring alongside a tune to futility_margin. It seems the elo gained in this patch comes from the tune of futility_margin and not the introduction of futility_margin to razoring, so simplify it away here.

Passed Non-regression STC: https://tests.stockfishchess.org/tests/view/66606581c340c8eed7757bc8
LLR: 2.93 (-2.94,2.94) <-1.75,0.25>
Total: 169056 W: 43922 L: 43848 D: 81286
Ptnml(0-2): 438, 20288, 43034, 20298, 470

Passed Non-regression LTC: https://tests.stockfishchess.org/tests/view/66607764c340c8eed7757c58
LLR: 2.94 (-2.94,2.94) <-1.75,0.25>
Total: 157134 W: 39805 L: 39723 D: 77606
Ptnml(0-2): 74, 17444, 43461, 17502, 86
bench 1148120
  • Loading branch information
rn5f107s2 committed Jun 5, 2024
1 parent 44609fe commit 03f7173
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/search.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,7 @@ Value Search::Worker::search(
bool givesCheck, improving, priorCapture, opponentWorsening;
bool capture, moveCountPruning, ttCapture;
Piece movedPiece;
int moveCount, captureCount, quietCount, futilityMargin;
int moveCount, captureCount, quietCount;
Bound singularBound;

// Step 1. Initialize node
Expand Down Expand Up @@ -761,12 +761,10 @@ Value Search::Worker::search(

opponentWorsening = ss->staticEval + (ss - 1)->staticEval > 2;

futilityMargin = futility_margin(depth, cutNode && !ss->ttHit, improving, opponentWorsening);

// Step 7. Razoring (~1 Elo)
// If eval is really low check with qsearch if it can exceed alpha, if it can't,
// return a fail low.
if (eval < alpha - 465 - futilityMargin * depth * 33 / 32)
if (eval < alpha - 512 - 293 * depth * depth)
{
value = qsearch<NonPV>(pos, ss, alpha - 1, alpha);
if (value < alpha)
Expand All @@ -776,7 +774,9 @@ Value Search::Worker::search(
// Step 8. Futility pruning: child node (~40 Elo)
// The depth condition is important for mate finding.
if (!ss->ttPv && depth < 13
&& eval - futilityMargin - (ss - 1)->statScore / 263 >= beta
&& eval - futility_margin(depth, cutNode && !ss->ttHit, improving, opponentWorsening)
- (ss - 1)->statScore / 263
>= beta
&& eval >= beta && eval < VALUE_TB_WIN_IN_MAX_PLY && (!ttMove || ttCapture))
return beta > VALUE_TB_LOSS_IN_MAX_PLY ? beta + (eval - beta) / 3 : eval;

Expand Down

0 comments on commit 03f7173

Please sign in to comment.