Using just `PawnValueEg * depth` as Capture Prune Margin. There was a bunch
of patches that passed recently regarding captures, maybe this part of the
master code redundant? The patch was tested as a simplification:
STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 20833 W: 4218 L: 4096 D: 12519
http://tests.stockfishchess.org/tests/view/
5b1cf2100ebc5902ab9c6651
LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 27050 W: 3975 L: 3864 D: 19211
http://tests.stockfishchess.org/tests/view/
5b1cfdc80ebc5902ab9c6776
Closes https://github.com/official-stockfish/Stockfish/pull/1643
Bench:
4980482
return Value((175 - 50 * improving) * d / ONE_PLY);
}
return Value((175 - 50 * improving) * d / ONE_PLY);
}
- // Margin for pruning capturing moves: almost linear in depth
- constexpr int CapturePruneMargin[] = { 0,
- 1 * PawnValueEg * 1055 / 1000,
- 2 * PawnValueEg * 1042 / 1000,
- 3 * PawnValueEg * 963 / 1000,
- 4 * PawnValueEg * 1038 / 1000,
- 5 * PawnValueEg * 950 / 1000,
- 6 * PawnValueEg * 930 / 1000
- };
-
// Futility and reductions lookup tables, initialized at startup
int FutilityMoveCounts[2][16]; // [improving][depth]
int Reductions[2][2][64][64]; // [pv][improving][depth][moveNumber]
// Futility and reductions lookup tables, initialized at startup
int FutilityMoveCounts[2][16]; // [improving][depth]
int Reductions[2][2][64][64]; // [pv][improving][depth][moveNumber]
}
else if ( depth < 7 * ONE_PLY // (~20 Elo)
&& !extension
}
else if ( depth < 7 * ONE_PLY // (~20 Elo)
&& !extension
- && !pos.see_ge(move, -Value(CapturePruneMargin[depth / ONE_PLY])))
+ && !pos.see_ge(move, -Value(PawnValueEg * (depth / ONE_PLY))))