Change history reduction in LMR to be a full ply.
authorUri Blass <uriblass@gmail.com>
Thu, 25 Sep 2014 18:22:39 +0000 (02:22 +0800)
committerGary Linscott <glinscott@gmail.com>
Thu, 25 Sep 2014 18:22:39 +0000 (02:22 +0800)
STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 9829 W: 2142 L: 1998 D: 5689

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 27162 W: 4802 L: 4692 D: 17668

Bench: 7284120

Resolves #53

src/search.cpp

index 945f5bf25d9c9d88687e9a36e0ad3ff3285fe823..05e3de51c187257eb82c8a55f7f00472b463ef94 100644 (file)
@@ -823,12 +823,10 @@ moves_loop: // When in check and at SpNode search starts from here
       {
           ss->reduction = reduction<PvNode>(improving, depth, moveCount);
 
-          if (!PvNode && cutNode)
+          if (   (!PvNode && cutNode)
+              ||  History[pos.piece_on(to_sq(move))][to_sq(move)] < 0)
               ss->reduction += ONE_PLY;
 
-          else if (History[pos.piece_on(to_sq(move))][to_sq(move)] < 0)
-              ss->reduction += ONE_PLY / 2;
-
           if (move == countermoves[0] || move == countermoves[1])
               ss->reduction = std::max(DEPTH_ZERO, ss->reduction - ONE_PLY);