Remove another unnecessary Search::Stack field
authorDU-jdto <SNP_Tiranasta@hotmail.com>
Sun, 20 Dec 2015 21:45:21 +0000 (08:45 +1100)
committerJoona Kiiski <joona@zoox.com>
Tue, 22 Dec 2015 17:16:15 +0000 (17:16 +0000)
No functional change

Resolves #535

src/search.cpp
src/search.h

index 9d091d02bc0cf5467bffac878ae4b5a893fc7621..d86d62030e6bca623487e84fab4270e878be09c0 100644 (file)
@@ -642,7 +642,7 @@ namespace {
     assert(0 <= ss->ply && ss->ply < MAX_PLY);
 
     ss->currentMove = (ss+1)->excludedMove = bestMove = MOVE_NONE;
-    (ss+1)->skipEarlyPruning = false; (ss+1)->reduction = DEPTH_ZERO;
+    (ss+1)->skipEarlyPruning = false;
     (ss+2)->killers[0] = (ss+2)->killers[1] = MOVE_NONE;
 
     // Step 4. Transposition table lookup. We don't want the score of a partial
@@ -984,32 +984,31 @@ moves_loop: // When in check search starts from here
           &&  moveCount > 1
           && !captureOrPromotion)
       {
-          ss->reduction = reduction<PvNode>(improving, depth, moveCount);
+          Depth r = reduction<PvNode>(improving, depth, moveCount);
 
           // Increase reduction for cut nodes and moves with a bad history
           if (   (!PvNode && cutNode)
               || (   thisThread->history[pos.piece_on(to_sq(move))][to_sq(move)] < VALUE_ZERO
                   && cmh[pos.piece_on(to_sq(move))][to_sq(move)] <= VALUE_ZERO))
-              ss->reduction += ONE_PLY;
+              r += ONE_PLY;
 
           // Decrease reduction for moves with a good history
           if (   thisThread->history[pos.piece_on(to_sq(move))][to_sq(move)] > VALUE_ZERO
               && cmh[pos.piece_on(to_sq(move))][to_sq(move)] > VALUE_ZERO)
-              ss->reduction = std::max(DEPTH_ZERO, ss->reduction - ONE_PLY);
+              r = std::max(DEPTH_ZERO, r - ONE_PLY);
 
           // Decrease reduction for moves that escape a capture
-          if (   ss->reduction
+          if (   r
               && type_of(move) == NORMAL
               && type_of(pos.piece_on(to_sq(move))) != PAWN
               && pos.see(make_move(to_sq(move), from_sq(move))) < VALUE_ZERO)
-              ss->reduction = std::max(DEPTH_ZERO, ss->reduction - ONE_PLY);
+              r = std::max(DEPTH_ZERO, r - ONE_PLY);
 
-          Depth d = std::max(newDepth - ss->reduction, ONE_PLY);
+          Depth d = std::max(newDepth - r, ONE_PLY);
 
           value = -search<NonPV>(pos, ss+1, -(alpha+1), -alpha, d, true);
 
-          doFullDepthSearch = (value > alpha && ss->reduction != DEPTH_ZERO);
-          ss->reduction = DEPTH_ZERO;
+          doFullDepthSearch = (value > alpha && r != DEPTH_ZERO);
       }
       else
           doFullDepthSearch = !PvNode || moveCount > 1;
index f93c53a50a0f4e276966b0da894d3c873574296e..b1575a559f9e2569b4a45966966aeb3e3757770e 100644 (file)
@@ -41,7 +41,6 @@ struct Stack {
   Move currentMove;
   Move excludedMove;
   Move killers[2];
-  Depth reduction;
   Value staticEval;
   bool skipEarlyPruning;
   int moveCount;