X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=40561544ab00a872947d6fef00db1364de71dfaf;hp=daed19135359406ddfde08e3c5f825b5e918803c;hb=19dd0de4ff83e682bafa56d27f302d8f00d3040d;hpb=7f4c7cd785fed40b4c778c1b21f1cc99621bab32 diff --git a/src/search.cpp b/src/search.cpp index daed1913..40561544 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -88,6 +88,7 @@ namespace { Value DrawValue[COLOR_NB]; History Hist; Gains Gain; + Refutations Refutation; template Value search(Position& pos, Stack* ss, Value alpha, Value beta, Depth depth); @@ -305,6 +306,7 @@ namespace { TT.new_search(); Hist.clear(); Gain.clear(); + Refutation.clear(); PVSize = Options["MultiPV"]; Skill skill(Options["Skill Level"]); @@ -764,7 +766,7 @@ namespace { split_point_start: // At split points actual search starts from here - MovePicker mp(pos, ttMove, depth, Hist, ss, PvNode ? -VALUE_INFINITE : beta); + MovePicker mp(pos, ttMove, depth, Hist, Refutation, ss, PvNode ? -VALUE_INFINITE : beta); CheckInfo ci(pos); value = bestValue; // Workaround a bogus 'uninitialized' warning under gcc singularExtensionNode = !RootNode @@ -1090,6 +1092,8 @@ split_point_start: // At split points actual search starts from here // Increase history value of the cut-off move Value bonus = Value(int(depth) * int(depth)); Hist.update(pos.piece_moved(bestMove), to_sq(bestMove), bonus); + Square prevSq = to_sq((ss-1)->currentMove); + Refutation.update(pos.piece_on(prevSq), prevSq, bestMove); // Decrease history of all the other played non-capture moves for (int i = 0; i < playedMoveCount - 1; i++)