X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=7bacb89c87fe988e53dd504869b945921d148904;hp=4b93a210b59ed218c3d7081653e736801eb6f391;hb=d0b8bc5fdfae9efe75b9828ac72340f13718ebb4;hpb=ae0b96571134e640ccebcd4a79983340b9494a7a diff --git a/src/search.cpp b/src/search.cpp index 4b93a210..7bacb89c 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -173,14 +173,14 @@ namespace { // If the TT move is at least SingleReplyMargin better then the // remaining ones we will extend it. - const Value SingleReplyMargin = Value(0x64); + const Value SingleReplyMargin = Value(0x20); // Margins for futility pruning in the quiescence search, and at frontier // and near frontier nodes. const Value FutilityMarginQS = Value(0x80); // Each move futility margin is decreased - const Value IncrementalFutilityMargin = Value(0x4); + const Value IncrementalFutilityMargin = Value(0x8); // Razoring const Depth RazorDepth = 4*OnePly; @@ -402,13 +402,13 @@ bool think(const Position& pos, bool infinite, bool ponder, int side_to_move, Problem = false; ExactMaxTime = maxTime; + if (button_was_pressed("New Game")) + loseOnTime = false; // reset at the beginning of a new game + // Read UCI option values TT.set_size(get_option_value_int("Hash")); if (button_was_pressed("Clear Hash")) - { TT.clear(); - loseOnTime = false; // reset at the beginning of a new game - } bool PonderingEnabled = get_option_value_bool("Ponder"); MultiPV = get_option_value_int("MultiPV"); @@ -743,7 +743,7 @@ namespace { // Write PV to transposition table, in case the relevant entries have // been overwritten during the search. - TT.insert_pv(p, ss[0].pv); + //TT.insert_pv(p, ss[0].pv); if (AbortSearch) break; // Value cannot be trusted. Break out immediately! @@ -1517,19 +1517,16 @@ namespace { continue; // Value based pruning - if (approximateEval < beta) - { - if (futilityValue == VALUE_NONE) - futilityValue = evaluate(pos, ei, threadID) + FutilityValueMargin; + if (futilityValue == VALUE_NONE) + futilityValue = evaluate(pos, ei, threadID) + FutilityValueMargin; - futilityValueScaled = futilityValue - moveCount * IncrementalFutilityMargin; + futilityValueScaled = futilityValue - moveCount * IncrementalFutilityMargin; - if (futilityValueScaled < beta) - { - if (futilityValueScaled > bestValue) - bestValue = futilityValueScaled; - continue; - } + if (futilityValueScaled < beta) + { + if (futilityValueScaled > bestValue) + bestValue = futilityValueScaled; + continue; } } @@ -2526,8 +2523,8 @@ namespace { Value v = value_from_tt(tte->value(), ply); return ( tte->depth() >= depth - || v >= Max(value_mate_in(100), beta) - || v < Min(value_mated_in(100), beta)) + || v >= Max(value_mate_in(PLY_MAX), beta) + || v < Min(value_mated_in(PLY_MAX), beta)) && ( (is_lower_bound(tte->type()) && v >= beta) || (is_upper_bound(tte->type()) && v < beta));