From: Marco Costalba Date: Mon, 26 Jul 2010 05:07:34 +0000 (+0100) Subject: Two small fixes in passed pawns evaluation X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=935fc09fd49328adfeaad372a5f4f2c48d8caf44 Two small fixes in passed pawns evaluation The one in evaluate_passed_pawns() is just a micro optimization, the other in evaluate_unstoppable_pawns() is indeed a fix, although almost unmeasurable in real games. Bugs report and fixes by Marek Kwiatkowski Signed-off-by: Marco Costalba --- diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 0249ee3b..74e70fa2 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -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;