]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Fix candidate passed pawn definition
[stockfish] / src / search.cpp
index 7b4ba28618c537eb5804a67107008a150bb4d3a0..5cca911bdaf266ee3affa144368912c4af622064 100644 (file)
@@ -87,7 +87,7 @@ namespace {
                Depth depth, bool mateThreat, int* moves, MovePicker* mp, int master, bool pvNode);
 
   private:
-    friend void poll(SearchStack ss[], int ply);
+    friend void poll();
 
     int ActiveThreads;
     volatile bool AllThreadsShouldExit, AllThreadsShouldSleep;
@@ -302,7 +302,7 @@ namespace {
 
   int current_search_time();
   int nps();
-  void poll(SearchStack ss[], int ply);
+  void poll();
   void ponderhit();
   void wait_for_stop_or_ponderhit();
   void init_ss_array(SearchStack ss[]);
@@ -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)
@@ -1661,7 +1661,7 @@ namespace {
         alpha = bestValue;
 
     // If we are near beta then try to get a cutoff pushing checks a bit further
-    bool deepChecks = depth == -OnePly && staticValue >= beta - PawnValueMidgame / 8;
+    bool deepChecks = (depth == -OnePly && staticValue >= beta - PawnValueMidgame / 8);
 
     // Initialize a MovePicker object for the current position, and prepare
     // to search the moves. Because the depth is <= 0 here, only captures,
@@ -1707,7 +1707,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());
@@ -2046,7 +2046,7 @@ namespace {
         NodesSincePoll++;
         if (NodesSincePoll >= NodesBetweenPolls)
         {
-            poll(ss, ply);
+            poll();
             NodesSincePoll = 0;
         }
     }
@@ -2409,7 +2409,7 @@ namespace {
   // looks at the time consumed so far and decides if it's time to abort the
   // search.
 
-  void poll(SearchStack ss[], int ply) {
+  void poll() {
 
     static int lastInfoTime;
     int t = current_search_time();
@@ -2764,7 +2764,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) {}
     }
   }
 
@@ -2805,7 +2805,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;
   }