Prune dangerous moves at low depth
authorajithcj <achajo@yahoo.co.in>
Thu, 8 Sep 2016 03:51:41 +0000 (05:51 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Thu, 8 Sep 2016 03:55:10 +0000 (05:55 +0200)
At very low depths prune captures,
promotions and checks if see is negative.

STC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 6772 W: 1328 L: 1173 D: 4271

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 8917 W: 1270 L: 1122 D: 6525

bench: 6024713

src/search.cpp

index a58231d..9779aea 100644 (file)
@@ -956,6 +956,16 @@ moves_loop: // When in check search starts from here
                   continue;
           }
       }
+      else if (    depth < 3 * ONE_PLY
+               && !inCheck
+               &&  bestValue > VALUE_MATED_IN_MAX_PLY
+               && !rootNode
+               && (  captureOrPromotion
+                   || givesCheck
+                   || pos.advanced_pawn_push(move))
+               && pos.see_sign(move) < VALUE_ZERO
+               )
+          continue;
 
       // Speculative prefetch as early as possible
       prefetch(TT.first_entry(pos.key_after(move)));