mirror of
https://github.com/sockspls/badfish
synced 2025-05-03 18:19:35 +00:00
Move internal iterative reduction before probcut
This patch moves IIR before probcut which allows probcut to be produced at lower depths. Comments in IIR are also slightly updated. Passed STC: https://tests.stockfishchess.org/tests/view/6472d604d29264e4cfa749fd LLR: 2.94 (-2.94,2.94) <0.00,2.00> Total: 387616 W: 103295 L: 102498 D: 181823 Ptnml(0-2): 976, 42322, 106381, 43187, 942 Passed LTC: https://tests.stockfishchess.org/tests/view/6475eb8c4a36543c4c9f42e8 LLR: 2.94 (-2.94,2.94) <0.50,2.50> Total: 202836 W: 54901 L: 54281 D: 93654 Ptnml(0-2): 85, 19609, 61422, 20205, 97 closes https://github.com/official-stockfish/Stockfish/pull/4597 bench 2551691
This commit is contained in:
parent
ced0311890
commit
8dea070538
1 changed files with 16 additions and 15 deletions
|
@ -822,9 +822,24 @@ namespace {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Step 10. If the position doesn't a have ttMove, decrease depth by 2
|
||||||
|
// (or by 4 if the TT entry for the current position was hit and the stored depth is greater than or equal to the current depth).
|
||||||
|
// Use qsearch if depth is equal or below zero (~9 Elo)
|
||||||
|
if ( PvNode
|
||||||
|
&& !ttMove)
|
||||||
|
depth -= 2 + 2 * (ss->ttHit && tte->depth() >= depth);
|
||||||
|
|
||||||
|
if (depth <= 0)
|
||||||
|
return qsearch<PV>(pos, ss, alpha, beta);
|
||||||
|
|
||||||
|
if ( cutNode
|
||||||
|
&& depth >= 8
|
||||||
|
&& !ttMove)
|
||||||
|
depth -= 2;
|
||||||
|
|
||||||
probCutBeta = beta + 168 - 61 * improving;
|
probCutBeta = beta + 168 - 61 * improving;
|
||||||
|
|
||||||
// Step 10. ProbCut (~10 Elo)
|
// Step 11. ProbCut (~10 Elo)
|
||||||
// If we have a good enough capture (or queen promotion) and a reduced search returns a value
|
// If we have a good enough capture (or queen promotion) and a reduced search returns a value
|
||||||
// much above beta, we can (almost) safely prune the previous move.
|
// much above beta, we can (almost) safely prune the previous move.
|
||||||
if ( !PvNode
|
if ( !PvNode
|
||||||
|
@ -875,20 +890,6 @@ namespace {
|
||||||
Eval::NNUE::hint_common_parent_position(pos);
|
Eval::NNUE::hint_common_parent_position(pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Step 11. If the position is not in TT, decrease depth by 2 (or by 4 if the TT entry for the current position was hit and the stored depth is greater than or equal to the current depth).
|
|
||||||
// Use qsearch if depth is equal or below zero (~9 Elo)
|
|
||||||
if ( PvNode
|
|
||||||
&& !ttMove)
|
|
||||||
depth -= 2 + 2 * (ss->ttHit && tte->depth() >= depth);
|
|
||||||
|
|
||||||
if (depth <= 0)
|
|
||||||
return qsearch<PV>(pos, ss, alpha, beta);
|
|
||||||
|
|
||||||
if ( cutNode
|
|
||||||
&& depth >= 8
|
|
||||||
&& !ttMove)
|
|
||||||
depth -= 2;
|
|
||||||
|
|
||||||
moves_loop: // When in check, search starts here
|
moves_loop: // When in check, search starts here
|
||||||
|
|
||||||
// Step 12. A small Probcut idea, when we are in check (~4 Elo)
|
// Step 12. A small Probcut idea, when we are in check (~4 Elo)
|
||||||
|
|
Loading…
Add table
Reference in a new issue