Skip to content
Browse files

Lower SingularExtensionDepth to 7 plies for non-pv

To compensate for the extra work skip singular
searches deemed to fail because excluded node
failed high already in the past.

After 1200 games at 1+0
Mod vs Orig +387 =1274 -339  (+8 ELO)

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
  • Loading branch information...
1 parent 935fc09 commit 9645e8e4e76aebc4b3099b20846c14e18768cab4 @mcostalba committed Jul 28, 2010
Showing with 12 additions and 1 deletion.
  1. +12 −1 src/search.cpp
View
13 src/search.cpp
@@ -198,7 +198,7 @@ namespace {
Depth PassedPawnExtension[2], PawnEndgameExtension[2], MateThreatExtension[2];
// Minimum depth for use of singular extension
- const Depth SingularExtensionDepth[2] = { 8 * OnePly /* non-PV */, 6 * OnePly /* PV */};
+ const Depth SingularExtensionDepth[2] = { 7 * OnePly /* non-PV */, 6 * OnePly /* PV */};
// If the TT move is at least SingularExtensionMargin better then the
// remaining ones we will extend it.
@@ -1213,6 +1213,17 @@ namespace {
&& is_lower_bound(tte->type())
&& tte->depth() >= depth - 3 * OnePly;
+ // Avoid to do an expensive singular extension search on nodes where
+ // such search had already failed in the past.
+ if ( !PvNode
+ && singularExtensionNode
+ && depth < SingularExtensionDepth[PvNode] + 5 * OnePly)
+ {
+ TTEntry* ttx = TT.retrieve(pos.get_exclusion_key());
+ if (ttx && is_lower_bound(ttx->type()))
+ singularExtensionNode = false;
+ }
+
// Step 10. Loop through moves
// Loop through all legal moves until no moves remain or a beta cutoff occurs
while ( bestValue < beta

0 comments on commit 9645e8e

Please sign in to comment.
Something went wrong with that request. Please try again.