X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fsearch.cpp;h=daed19135359406ddfde08e3c5f825b5e918803c;hb=e7505324f618ba1d558ffa3c882ed208ad01bed1;hp=cf640a0a90beb33e497474ea514b899d2f006b3b;hpb=e508494a9985a5d54e77df694e8f160bb3346de3;p=stockfish diff --git a/src/search.cpp b/src/search.cpp index cf640a0a..daed1913 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -145,7 +145,7 @@ void Search::init() { // Init futility move count array for (d = 0; d < 32; d++) - FutilityMoveCounts[d] = int(3.001 + 0.25 * pow(double(d), 2.0)); + FutilityMoveCounts[d] = int(3.001 + 0.3 * pow(double(d), 1.8)); } @@ -264,6 +264,10 @@ void Search::think() { finalize: + // When search is stopped this info is not printed + sync_cout << "info nodes " << RootPos.nodes_searched() + << " time " << Time::now() - SearchTime + 1 << sync_endl; + // When we reach max depth we arrive here even without Signals.stop is raised, // but if we are pondering or in infinite search, according to UCI protocol, // we shouldn't print the best move before the GUI sends a "stop" or "ponderhit" @@ -593,7 +597,7 @@ namespace { // Never assume anything on values stored in TT if ( (ss->staticEval = eval = tte->eval_value()) == VALUE_NONE ||(ss->evalMargin = tte->eval_margin()) == VALUE_NONE) - eval = ss->staticEval = evaluate(pos, ss->evalMargin, &ss->ei); + eval = ss->staticEval = evaluate(pos, ss->evalMargin); // Can ttValue be used as a better position evaluation? if (ttValue != VALUE_NONE) @@ -603,7 +607,7 @@ namespace { } else { - eval = ss->staticEval = evaluate(pos, ss->evalMargin, &ss->ei); + eval = ss->staticEval = evaluate(pos, ss->evalMargin); TT.store(posKey, VALUE_NONE, BOUND_NONE, DEPTH_NONE, MOVE_NONE, ss->staticEval, ss->evalMargin); } @@ -646,6 +650,7 @@ namespace { && !inCheck && eval - futility_margin(depth, (ss-1)->futilityMoveCount) >= beta && abs(beta) < VALUE_MATE_IN_MAX_PLY + && abs(eval) < VALUE_KNOWN_WIN && pos.non_pawn_material(pos.side_to_move())) return eval - futility_margin(depth, (ss-1)->futilityMoveCount); @@ -1177,10 +1182,10 @@ split_point_start: // At split points actual search starts from here // Never assume anything on values stored in TT if ( (ss->staticEval = bestValue = tte->eval_value()) == VALUE_NONE ||(ss->evalMargin = tte->eval_margin()) == VALUE_NONE) - ss->staticEval = bestValue = evaluate(pos, ss->evalMargin, &ss->ei); + ss->staticEval = bestValue = evaluate(pos, ss->evalMargin); } else - ss->staticEval = bestValue = evaluate(pos, ss->evalMargin, &ss->ei); + ss->staticEval = bestValue = evaluate(pos, ss->evalMargin); // Stand pat. Return immediately if static value is at least beta if (bestValue >= beta)