X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=dfe5efa922840b8cc398152495c292045b2e5993;hp=0fa78248f8f059e2fea2155e7c48ec81a9a688aa;hb=81ae7cad2d5f1bdce7e065699bf680da8b5487b8;hpb=f9d3b48ad0ed62732bb07d4811f4fd17cf088cfe diff --git a/src/search.cpp b/src/search.cpp index 0fa78248..dfe5efa9 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -232,7 +232,7 @@ namespace { const Value EasyMoveMargin = Value(0x200); // Last seconds noise filtering (LSN) - const bool UseLSNFiltering = false; + const bool UseLSNFiltering = true; const int LSNTime = 4000; // In milliseconds const Value LSNValue = value_from_centipawns(200); bool loseOnTime = false; @@ -257,7 +257,7 @@ namespace { int SearchStartTime, MaxNodes, MaxDepth, MaxSearchTime; int AbsoluteMaxSearchTime, ExtraSearchTime, ExactMaxTime; bool UseTimeManagement, InfiniteSearch, PonderSearch, StopOnPonderhit; - bool FirstRootMove, AbortSearch, Quit, AspirationFailLow, ZugDetection; + bool FirstRootMove, AbortSearch, Quit, AspirationFailLow; // Log file bool UseLogFile; @@ -387,7 +387,7 @@ bool think(const Position& pos, bool infinite, bool ponder, int side_to_move, if (get_option_value_string("Book File") != OpeningBook.file_name()) OpeningBook.open(get_option_value_string("Book File")); - Move bookMove = OpeningBook.get_move(pos); + Move bookMove = OpeningBook.get_move(pos, get_option_value_bool("Best Book Move")); if (bookMove != MOVE_NONE) { if (PonderSearch) @@ -425,7 +425,6 @@ bool think(const Position& pos, bool infinite, bool ponder, int side_to_move, MultiPV = get_option_value_int("MultiPV"); Chess960 = get_option_value_bool("UCI_Chess960"); UseLogFile = get_option_value_bool("Use Search Log"); - ZugDetection = get_option_value_bool("Zugzwang detection"); // To be removed after 1.7.1 if (UseLogFile) LogFile.open(get_option_value_string("Search Log Filename").c_str(), std::ios::out | std::ios::app); @@ -1713,7 +1712,7 @@ namespace { // Detect blocking evasions that are candidate to be pruned evasionPrunable = isCheck - && bestValue != -VALUE_INFINITE + && bestValue > value_mated_in(PLY_MAX) && !pos.move_is_capture(move) && pos.type_of_piece_on(move_from(move)) != KING && !pos.can_castle(pos.side_to_move()); @@ -2316,7 +2315,7 @@ namespace { Value v = value_from_tt(tte->value(), ply); - return (allowNullmove || !(tte->type() & VALUE_TYPE_NULL) || !ZugDetection) + return (allowNullmove || !(tte->type() & VALUE_TYPE_NULL)) && ( tte->depth() >= depth || v >= Max(value_mate_in(PLY_MAX), beta) @@ -2774,7 +2773,7 @@ namespace { } // Wait until the thread has finished launching and is gone to sleep - while (threads[i].state != THREAD_SLEEPING); + while (threads[i].state != THREAD_SLEEPING) {} } } @@ -2815,7 +2814,7 @@ namespace { SplitPoint* sp; - for (sp = threads[threadID].splitPoint; sp && !sp->stopRequest; sp = sp->parent); + for (sp = threads[threadID].splitPoint; sp && !sp->stopRequest; sp = sp->parent) {} return sp != NULL; }