Merge official-stockfish/master
authorFabian Fichter <ianfab@users.noreply.github.com>
Thu, 11 Apr 2019 18:52:18 +0000 (20:52 +0200)
committerFabian Fichter <ianfab@users.noreply.github.com>
Thu, 11 Apr 2019 18:52:18 +0000 (20:52 +0200)
bench: 3414192

1  2 
src/position.cpp
src/search.cpp

@@@ -456,17 -337,11 +456,12 @@@ void Position::set_castling_right(Colo
    castlingRightsMask[rfrom] |= cr;
    castlingRookSquare[cr] = rfrom;
  
 -  Square kto = relative_square(c, cs == KING_SIDE ? SQ_G1 : SQ_C1);
 -  Square rto = relative_square(c, cs == KING_SIDE ? SQ_F1 : SQ_D1);
 +  Square kto = make_square(cs == KING_SIDE ? castling_kingside_file() : castling_queenside_file(),
 +                           relative_rank(c, RANK_1, max_rank()));
 +  Square rto = kto + (cs == KING_SIDE ? WEST : EAST);
  
-   for (Square s = std::min(rfrom, rto); s <= std::max(rfrom, rto); ++s)
-       if (s != kfrom && s != rfrom)
-           castlingPath[cr] |= s;
-   for (Square s = std::min(kfrom, kto); s <= std::max(kfrom, kto); ++s)
-       if (s != kfrom && s != rfrom)
-           castlingPath[cr] |= s;
+   castlingPath[cr] = (between_bb(rfrom, rto) | between_bb(kfrom, kto) | rto | kto)
+                    & ~(square_bb(kfrom) | rfrom);
  }
  
  
diff --cc src/search.cpp
Simple merge