]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Removed an incorrect assert() statement in search.cpp, which asserted that
[stockfish] / src / search.cpp
index e64950283445f001e0e69158684d22f5aee3ac5f..4449b1be0e2f4408bcb8b792b776221c4aa81517 100644 (file)
@@ -201,6 +201,12 @@ namespace {
   // Depth limit for use of dynamic threat detection
   Depth ThreatDepth; // heavy SMP read access
 
+  // Last seconds noise filtering (LSN)
+  const bool UseLSNFiltering = true;
+  const int LSNTime = 4000; // In milliseconds
+  const Value LSNValue = value_from_centipawns(200);
+  bool loseOnTime = false;
+
   // Extensions. Array index 0 is used at non-PV nodes, index 1 at PV nodes.
   // There is heavy SMP read access on these arrays
   Depth CheckExtension[2], SingleReplyExtension[2], PawnPushTo7thExtension[2];
@@ -367,7 +373,10 @@ bool think(const Position& pos, bool infinite, bool ponder, int side_to_move,
   // Read UCI option values
   TT.set_size(get_option_value_int("Hash"));
   if (button_was_pressed("Clear Hash"))
+  {
       TT.clear();
+      loseOnTime = false; // reset at the beginning of a new game
+  }
 
   bool PonderingEnabled = get_option_value_bool("Ponder");
   MultiPV = get_option_value_int("MultiPV");
@@ -400,10 +409,6 @@ bool think(const Position& pos, bool infinite, bool ponder, int side_to_move,
   if (UseLogFile)
       LogFile.open(get_option_value_string("Search Log Filename").c_str(), std::ios::out | std::ios::app);
 
-  bool UseLSNFiltering = get_option_value_bool("LSN filtering");
-  int LSNTime = get_option_value_int("LSN Time Margin (sec)") * 1000;
-  Value LSNValue = value_from_centipawns(get_option_value_int("LSN Value Margin"));
-
   MinimumSplitDepth = get_option_value_int("Minimum Split Depth") * OnePly;
   MaxThreadsPerSplitPoint = get_option_value_int("Maximum Number of Threads per Split Point");
 
@@ -481,20 +486,19 @@ bool think(const Position& pos, bool infinite, bool ponder, int side_to_move,
 
 
   // We're ready to start thinking. Call the iterative deepening loop function
-  static bool looseOnTime = false;
-
+  //
   // FIXME we really need to cleanup all this LSN ugliness
-  if (!looseOnTime)
+  if (!loseOnTime)
   {
       Value v = id_loop(pos, searchMoves);
-      looseOnTime = (   UseLSNFiltering
+      loseOnTime = (   UseLSNFiltering
                      && myTime < LSNTime
                      && myIncrement == 0
                      && v < -LSNValue);
   }
   else
   {
-      looseOnTime = false; // reset for next match
+      loseOnTime = false; // reset for next match
       while (SearchStartTime + myTime + 1000 > get_system_time())
           ; // wait here
       id_loop(pos, searchMoves); // to fail gracefully
@@ -1488,7 +1492,6 @@ namespace {
     else if (tte && tte->type() == VALUE_TYPE_EVAL)
     {
         // Use the cached evaluation score if possible
-        assert(tte->value() == evaluate(pos, ei, threadID));
         assert(ei.futilityMargin == Value(0));
 
         staticValue = tte->value();