From e3c85c314d9ae6c1fc25655261c7a1afb77d1568 Mon Sep 17 00:00:00 2001 From: DU-jdto Date: Mon, 21 Dec 2015 08:45:21 +1100 Subject: [PATCH] Remove another unnecessary Search::Stack field No functional change Resolves #535 --- src/search.cpp | 17 ++++++++--------- src/search.h | 1 - 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index 9d091d02..d86d6203 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -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(improving, depth, moveCount); + Depth r = reduction(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(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; diff --git a/src/search.h b/src/search.h index f93c53a5..b1575a55 100644 --- a/src/search.h +++ b/src/search.h @@ -41,7 +41,6 @@ struct Stack { Move currentMove; Move excludedMove; Move killers[2]; - Depth reduction; Value staticEval; bool skipEarlyPruning; int moveCount; -- 2.39.2