Enable Futility pruning in PV nodes
authorStefan Geschwentner <stgeschwentner@gmail.com>
Wed, 14 Jan 2015 20:11:33 +0000 (20:11 +0000)
committerJoona Kiiski <joona.kiiski@gmail.com>
Wed, 14 Jan 2015 20:13:48 +0000 (20:13 +0000)
STC:

LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 21553 W: 4342 L: 4221 D: 12990

LTC:

LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 7675 W: 1351 L: 1209 D: 5115

Bench: 8668014

Resolves #205

src/search.cpp

index 092a491..7e3f6ca 100644 (file)
@@ -632,7 +632,7 @@ namespace {
     }
 
     // Step 7. Futility pruning: child node (skipped when in check)
-    if (   !PvNode
+    if (   !RootNode
         &&  depth < 7 * ONE_PLY
         &&  eval - futility_margin(depth) >= beta
         &&  eval < VALUE_KNOWN_WIN  // Do not return unproven wins
@@ -829,9 +829,8 @@ moves_loop: // When in check and at SpNode search starts from here
       // Update the current move (this must be done after singular extension search)
       newDepth = depth - ONE_PLY + extension;
 
-      // Step 13. Pruning at shallow depth (exclude PV nodes)
-      if (   !PvNode
-          && !captureOrPromotion
+      // Step 13. Pruning at shallow depth
+      if (   !captureOrPromotion
           && !inCheck
           && !dangerous
           &&  bestValue > VALUE_MATED_IN_MAX_PLY)