]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Fix compilation with Android NDK
[stockfish] / src / search.cpp
index 55bf52b29cd28e7db664c3c47b432d9a44fd86b3..27365069420871c0dcddd0ba8308dcf63d7e4947 100644 (file)
@@ -51,6 +51,11 @@ using std::endl;
 using Eval::evaluate;
 using namespace Search;
 
+// For some reason argument-dependent lookup (ADL) doesn't work for Android's
+// STLPort, so explicitly qualify following functions.
+using std::count;
+using std::find;
+
 namespace {
 
   // Set to true to force running with one thread. Used for debugging
@@ -67,7 +72,7 @@ namespace {
   const Depth RazorDepth = 4 * ONE_PLY;
 
   // Dynamic razoring margin based on depth
-  inline Value razor_margin(Depth d) { return Value(0x200 + 0x10 * int(d)); }
+  inline Value razor_margin(Depth d) { return Value(512 + 16 * int(d)); }
 
   // Maximum depth for use of dynamic threat detection when null move fails low
   const Depth ThreatDepth = 5 * ONE_PLY;
@@ -77,13 +82,13 @@ namespace {
 
   // At Non-PV nodes we do an internal iterative deepening search
   // when the static evaluation is bigger then beta - IIDMargin.
-  const Value IIDMargin = Value(0x100);
+  const Value IIDMargin = Value(256);
 
   // Minimum depth for use of singular extension
   const Depth SingularExtensionDepth[] = { 8 * ONE_PLY, 6 * ONE_PLY };
 
   // Futility margin for quiescence search
-  const Value FutilityMarginQS = Value(0x80);
+  const Value FutilityMarginQS = Value(128);
 
   // Futility lookup tables (initialized at startup) and their access functions
   Value FutilityMargins[16][64]; // [depth][moveNumber]
@@ -1052,6 +1057,7 @@ split_point_start: // At split points actual search starts from here
       // Step 19. Check for split
       if (   !SpNode
           &&  depth >= Threads.min_split_depth()
+          &&  depth - reduction<PvNode>(depth, moveCount) >= Threads.min_split_depth()
           &&  bestValue < beta
           &&  Threads.available_slave_exists(thisThread)
           && !Signals.stop