X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=e8e15ef2cf58826edff4c82b9a9d97ce948fe384;hp=ffe724aa10a864d8b3fad173c5a91c5fa9bb7e26;hb=7edd1f7ccd500ad3fb6959ca18415ed4b8808313;hpb=a18c2c2c3f38070cb897a8a28cf1d6d45236ded4;ds=sidebyside diff --git a/src/search.cpp b/src/search.cpp index ffe724aa..e8e15ef2 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -185,7 +185,7 @@ void Search::init() { } -/// Search::clear() resets search state to zero, to obtain reproducible results +/// Search::clear() resets search state to its initial value, to obtain reproducible results void Search::clear() { @@ -556,7 +556,7 @@ namespace { // Step 1. Initialize node Thread* thisThread = pos.this_thread(); inCheck = pos.checkers(); - moveCount = quietCount = ss->moveCount = 0; + moveCount = quietCount = ss->moveCount = 0; ss->history = 0; bestValue = -VALUE_INFINITE; ss->ply = (ss-1)->ply + 1; @@ -895,7 +895,7 @@ moves_loop: // When in check search starts from here } else if ( givesCheck && !moveCountPruning - && pos.see_ge(move, VALUE_ZERO)) + && pos.see_ge(move)) extension = ONE_PLY; // Calculate new depth for this move @@ -979,8 +979,8 @@ moves_loop: // When in check search starts from here // Decrease reduction for moves that escape a capture. Filter out // castling moves, because they are coded as "king captures rook" and // hence break make_move(). - else if ( type_of(move) == NORMAL - && !pos.see_ge(make_move(to_sq(move), from_sq(move)), VALUE_ZERO)) + else if ( type_of(move) == NORMAL + && !pos.see_ge(make_move(to_sq(move), from_sq(move)))) r -= 2 * ONE_PLY; ss->history = cmh[moved_piece][to_sq(move)] @@ -1116,7 +1116,6 @@ moves_loop: // When in check search starts from here : inCheck ? mated_in(ss->ply) : DrawValue[pos.side_to_move()]; else if (bestMove) { - // Quiet best move: update move sorting heuristics if (!pos.capture_or_promotion(bestMove)) update_stats(pos, ss, bestMove, quietsSearched, quietCount, stat_bonus(depth)); @@ -1290,7 +1289,7 @@ moves_loop: // When in check search starts from here // Don't search moves with negative SEE values if ( (!InCheck || evasionPrunable) && type_of(move) != PROMOTION - && !pos.see_ge(move, VALUE_ZERO)) + && !pos.see_ge(move)) continue; // Speculative prefetch as early as possible @@ -1505,7 +1504,7 @@ string UCI::pv(const Position& pos, Depth depth, Value alpha, Value beta) { for (size_t i = 0; i < multiPV; ++i) { - bool updated = (i <= PVIdx); + bool updated = (i <= PVIdx && rootMoves[i].score != -VALUE_INFINITE); if (depth == ONE_PLY && !updated) continue;