X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=27365069420871c0dcddd0ba8308dcf63d7e4947;hp=55bf52b29cd28e7db664c3c47b432d9a44fd86b3;hb=caef31921900e092616c56193e37201b08baa875;hpb=39c08c17c5812dc947d83a07cae702029319af2f diff --git a/src/search.cpp b/src/search.cpp index 55bf52b2..27365069 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -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(depth, moveCount) >= Threads.min_split_depth() && bestValue < beta && Threads.available_slave_exists(thisThread) && !Signals.stop