Update comment on why we call root search with ss+1
authorMarco Costalba <mcostalba@gmail.com>
Sat, 6 Aug 2011 10:19:13 +0000 (11:19 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Sun, 7 Aug 2011 09:36:14 +0000 (10:36 +0100)
No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/search.cpp

index 833bbba4e6f3b5d4fca4c3b2e3c35065bbb76edd..5a72d6b06d391eb3b9fc826f3c07eca4d9f5c6e1 100644 (file)
@@ -560,7 +560,8 @@ namespace {
             // Start with a small aspiration window and, in case of fail high/low,
             // research with bigger window until not failing high/low anymore.
             do {
-                // Search starting from ss+1 to allow calling update_gains()
+                // Search starting from ss+1 to allow referencing (ss-1). This is
+                // needed by update_gains() and ss copy when splitting at Root.
                 value = search<Root>(pos, ss+1, alpha, beta, depth * ONE_PLY);
 
                 // It is critical that sorting is done with a stable algorithm
@@ -1170,7 +1171,6 @@ split_point_start: // At split points actual search starts from here
           alpha = sp->alpha;
       }
 
-
       // Finished searching the move. If StopRequest is true, the search
       // was aborted because the user interrupted the search or because we
       // ran out of time. In this case, the return value of the search cannot
@@ -2211,6 +2211,8 @@ void ThreadsManager::idle_loop(int threadID, SplitPoint* sp) {
               search<SplitPointPV>(pos, ss+1, tsp->alpha, tsp->beta, tsp->depth);
           else if (tsp->nodeType == NonPV)
               search<SplitPointNonPV>(pos, ss+1, tsp->alpha, tsp->beta, tsp->depth);
+          else
+              assert(false);
 
           assert(threads[threadID].state == Thread::SEARCHING);