X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fsearch.cpp;h=0ef2f600e1fd3b3a96db1402e52576309dd5de64;hb=a47a7dadeb505bbd8336effe573a0ea18816021e;hp=8313381a4ccaec06ef891e2631d07b85fdc43f68;hpb=04e1ba8aa2dd0a7dbf4110503d71494df91b4ef5;p=stockfish diff --git a/src/search.cpp b/src/search.cpp index 8313381a..0ef2f600 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -738,8 +738,7 @@ namespace { // Print final search statistics cout << "info nodes " << TM.nodes_searched() << " nps " << nps() - << " time " << current_search_time() - << " hashfull " << TT.full() << endl; + << " time " << current_search_time() << endl; // Print the best move and the ponder move to the standard output if (pv[0] == MOVE_NONE) @@ -1204,12 +1203,12 @@ namespace { if (nullValue >= value_mate_in(PLY_MAX)) nullValue = beta; - // Do zugzwang verification search at high depths if (depth < 6 * OnePly) return nullValue; + // Do verification search at high depths ss->skipNullMove = true; - Value v = search(pos, ss, alpha, beta, depth-5*OnePly, ply); + Value v = search(pos, ss, alpha, beta, depth-R*OnePly, ply); ss->skipNullMove = false; if (v >= beta) @@ -1280,9 +1279,10 @@ namespace { // Step 11. Decide the new search depth ext = extension(pos, move, captureOrPromotion, moveIsCheck, singleEvasion, mateThreat, &dangerous); - // Singular extension search. We extend the TT move if its value is much better than - // its siblings. To verify this we do a reduced search on all the other moves but the - // ttMove, if result is lower then ttValue minus a margin then we extend ttMove. + // Singular extension search. If all moves but one fail low on a search of (alpha-s, beta-s), + // and just one fails high on (alpha, beta), then that move is singular and should be extended. + // To verify this we do a reduced search on all the other moves but the ttMove, if result is + // lower then ttValue minus a margin then we extend ttMove. if ( singularExtensionNode && move == tte->move() && ext < OnePly) @@ -1297,7 +1297,7 @@ namespace { Value v = search(pos, ss, b - 1, b, depth / 2, ply); ss->skipNullMove = false; ss->excludedMove = MOVE_NONE; - if (v < ttValue - SingularExtensionMargin) + if (v < b) ext = OnePly; } } @@ -2153,7 +2153,7 @@ namespace { dbg_print_hit_rate(); cout << "info nodes " << TM.nodes_searched() << " nps " << nps() - << " time " << t << " hashfull " << TT.full() << endl; + << " time " << t << endl; } // Should we stop the search?