X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=e7af307303ae3fd447e5b46c553d235ef00552ce;hp=73ffcfb053057a6a203674dff264702940f55110;hb=df4b106716f0fb0a5f5887b1cffeb544174008f7;hpb=a98dee783582c84ca2647ca28daad0c9a13d1d35 diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 73ffcfb0..e7af3073 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -372,8 +372,8 @@ Value do_evaluate(const Position& pos, EvalInfo& ei) { // colored bishop endgames, and use a lower scale for those if ( phase < PHASE_MIDGAME && pos.opposite_colored_bishops() - && ( (factor[WHITE] == SCALE_FACTOR_NORMAL && eg_value(ei.value) > Value(0)) - || (factor[BLACK] == SCALE_FACTOR_NORMAL && eg_value(ei.value) < Value(0)))) + && ( (factor[WHITE] == SCALE_FACTOR_NORMAL && eg_value(ei.value) > VALUE_ZERO) + || (factor[BLACK] == SCALE_FACTOR_NORMAL && eg_value(ei.value) < VALUE_ZERO))) { ScaleFactor sf; @@ -634,7 +634,7 @@ namespace { const Color Them = (Us == WHITE ? BLACK : WHITE); Bitboard b; - Score bonus = make_score(0, 0); + Score bonus = SCORE_ZERO; // Enemy pieces not defended by a pawn and under our attack Bitboard weakEnemies = pos.pieces_of_color(Them) @@ -821,7 +821,7 @@ namespace { // add all X-ray attacks by the rook or queen. Otherwise consider only // the squares in the pawn's path attacked or occupied by the enemy. if ( (squares_behind(Us, s) & pos.pieces(ROOK, QUEEN, Them)) - && (squares_behind(Us, s) & pos.pieces(ROOK, QUEEN, Them) & pos.attacks_from(s))) + && (squares_behind(Us, s) & pos.pieces(ROOK, QUEEN, Them) & pos.attacks_from(s))) unsafeSquares = squaresToQueen; else unsafeSquares = squaresToQueen & (ei.attacked_by(Them) | pos.pieces_of_color(Them)); @@ -902,7 +902,7 @@ namespace { if (d < 0 || pathDefended) { - int mtg = RANK_8 - relative_rank(c, s); + int mtg = RANK_8 - relative_rank(c, s) - int(relative_rank(c, s) == RANK_2); int blockerCount = count_1s_max_15(squares_in_front_of(c, s) & pos.occupied_squares()); mtg += blockerCount; d += blockerCount; @@ -1064,9 +1064,8 @@ namespace { } - // scale_by_game_phase() interpolates between a middle game and an endgame - // score, based on game phase. It also scales the return value by a - // ScaleFactor array. + // scale_by_game_phase() interpolates between a middle game and an endgame score, + // based on game phase. It also scales the return value by a ScaleFactor array. Value scale_by_game_phase(const Score& v, Phase ph, const ScaleFactor sf[]) { @@ -1075,10 +1074,10 @@ namespace { assert(ph >= PHASE_ENDGAME && ph <= PHASE_MIDGAME); Value eg = eg_value(v); - ScaleFactor f = sf[eg > Value(0) ? WHITE : BLACK]; - Value ev = Value((eg * f) / int(SCALE_FACTOR_NORMAL)); + ScaleFactor f = sf[eg > VALUE_ZERO ? WHITE : BLACK]; + Value ev = Value((eg * int(f)) / SCALE_FACTOR_NORMAL); - int result = (mg_value(v) * ph + ev * (128 - ph)) / 128; + int result = (mg_value(v) * int(ph) + ev * int(128 - ph)) / 128; return Value(result & ~(GrainSize - 1)); }