X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=826e860a5c22d3441424f63fd674c2aaa5b624d1;hp=fe020facbf2ac67e4f755872b64ab384f57e309e;hb=8de29390f2d2bd31585b93ff46eae3051126f666;hpb=45a309d92eb840c88739ca5f20929b3106542c23 diff --git a/src/evaluate.cpp b/src/evaluate.cpp index fe020fac..826e860a 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -695,9 +695,9 @@ namespace { // evaluate_scale_factor() computes the scale factor for the winning side - ScaleFactor evaluate_scale_factor(const Position& pos, const EvalInfo& ei, Score score) { + ScaleFactor evaluate_scale_factor(const Position& pos, const EvalInfo& ei, Value eg) { - Color strongSide = eg_value(score) > VALUE_DRAW ? WHITE : BLACK; + Color strongSide = eg > VALUE_DRAW ? WHITE : BLACK; ScaleFactor sf = ei.me->scale_factor(pos, strongSide); // If we don't already have an unusual scale factor, check for certain @@ -720,7 +720,7 @@ namespace { } // Endings where weaker side can place his king in front of the opponent's // pawns are drawish. - else if ( abs(eg_value(score)) <= BishopValueEg + else if ( abs(eg) <= BishopValueEg && ei.pi->pawn_span(strongSide) <= 1 && !pos.pawn_passed(~strongSide, pos.square(~strongSide))) sf = ei.pi->pawn_span(strongSide) ? ScaleFactor(51) : ScaleFactor(37); @@ -816,7 +816,7 @@ Value Eval::evaluate(const Position& pos) { score += evaluate_initiative(pos, ei.pi->pawn_asymmetry(), eg_value(score)); // Evaluate scale factor for the winning side - ScaleFactor sf = evaluate_scale_factor(pos, ei, score); + ScaleFactor sf = evaluate_scale_factor(pos, ei, eg_value(score)); // Interpolate between a middlegame and a (scaled by 'sf') endgame score Value v = mg_value(score) * int(ei.me->game_phase())