X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=53811de04701c4705053dc0d3ed1e52049db0aed;hp=a0215bee2741e34adf2c47de4d41a5a9b6305ba1;hb=c1ea5ed6f7204afd6cb03a80ca8d124bd82cc40d;hpb=8dd01fda121eb138287f09493a4d86c58c58d7e1 diff --git a/src/search.cpp b/src/search.cpp index a0215bee..53811de0 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -471,10 +471,10 @@ bool think(const Position& pos, bool infinite, bool ponder, int side_to_move, NodesBetweenPolls = Min(MaxNodes, 30000); InfiniteSearch = true; // HACK } - else if (myTime < 1000) - NodesBetweenPolls = 100; - else if (myTime < 5000) + else if (myTime && myTime < 1000) NodesBetweenPolls = 1000; + else if (myTime && myTime < 5000) + NodesBetweenPolls = 5000; else NodesBetweenPolls = 30000; @@ -1048,7 +1048,7 @@ namespace { EvalInfo ei; if (ply >= PLY_MAX - 1) - return evaluate(pos, ei, threadID); + return pos.is_check() ? quick_evaluate(pos) : evaluate(pos, ei, threadID); // Mate distance pruning Value oldAlpha = alpha; @@ -1238,7 +1238,7 @@ namespace { EvalInfo ei; if (ply >= PLY_MAX - 1) - return evaluate(pos, ei, threadID); + return pos.is_check() ? quick_evaluate(pos) : evaluate(pos, ei, threadID); // Mate distance pruning if (value_mated_in(ply) >= beta) @@ -1369,7 +1369,8 @@ namespace { { // History pruning. See ok_to_prune() definition if ( moveCount >= 2 + int(depth) - && ok_to_prune(pos, move, ss[ply].threatMove, depth)) + && ok_to_prune(pos, move, ss[ply].threatMove, depth) + && bestValue > value_mated_in(PLY_MAX)) continue; // Value based pruning @@ -1529,8 +1530,8 @@ namespace { else staticValue = evaluate(pos, ei, threadID); - if (ply == PLY_MAX - 1) - return evaluate(pos, ei, threadID); + if (ply >= PLY_MAX - 1) + return pos.is_check() ? quick_evaluate(pos) : evaluate(pos, ei, threadID); // Initialize "stand pat score", and return it immediately if it is // at least beta.