Merge official-stockfish/master
authorFabian Fichter <ianfab@users.noreply.github.com>
Sat, 2 Mar 2019 13:49:49 +0000 (14:49 +0100)
committerFabian Fichter <ianfab@users.noreply.github.com>
Sat, 2 Mar 2019 13:51:01 +0000 (14:51 +0100)
bench: 3253645

1  2 
src/bitboard.h
src/evaluate.cpp
src/search.cpp
src/types.h

diff --cc src/bitboard.h
@@@ -178,14 -135,10 +178,17 @@@ constexpr bool more_than_one(Bitboard b
    return b & (b - 1);
  }
  
 +/// board_size_bb() returns a bitboard representing all the squares
 +/// on a board with given size.
 +
 +inline Bitboard board_size_bb(File f, Rank r) {
 +  return BoardSizeBB[f][r];
 +}
 +
+ inline bool opposite_colors(Square s1, Square s2) {
+   return bool(DarkSquares & s1) != bool(DarkSquares & s2);
+ }
  
  /// rank_bb() and file_bb() return a bitboard representing all the squares on
  /// the given file or rank.
@@@ -333,10 -309,10 +332,10 @@@ namespace 
          attackedBy[Us][Pt] |= b;
          attackedBy[Us][ALL_PIECES] |= b;
  
-         if (b & kingRing[Them])
+         if (b & kingRing[Them] & ~double_pawn_attacks_bb<Them>(pos.pieces(Them, PAWN)))
          {
              kingAttackersCount[Us]++;
 -            kingAttackersWeight[Us] += KingAttackWeights[Pt];
 +            kingAttackersWeight[Us] += KingAttackWeights[std::min(int(Pt), QUEEN + 1)];
              kingAttacksCount[Us] += popcount(b & attackedBy[Them][KING]);
          }
  
diff --cc src/search.cpp
Simple merge
diff --cc src/types.h
@@@ -503,30 -398,21 +503,21 @@@ constexpr File file_of(Square s) 
  }
  
  constexpr Rank rank_of(Square s) {
 -  return Rank(s >> 3);
 +  return Rank(s / FILE_NB);
  }
  
 -constexpr Square relative_square(Color c, Square s) {
 -  return Square(s ^ (c * 56));
 +constexpr Rank relative_rank(Color c, Rank r, Rank maxRank = RANK_8) {
 +  return Rank(c == WHITE ? r : maxRank - r);
  }
  
 -constexpr Rank relative_rank(Color c, Rank r) {
 -  return Rank(r ^ (c * 7));
 +constexpr Rank relative_rank(Color c, Square s, Rank maxRank = RANK_8) {
 +  return relative_rank(c, rank_of(s), maxRank);
  }
  
 -constexpr Rank relative_rank(Color c, Square s) {
 -  return relative_rank(c, rank_of(s));
 +constexpr Square relative_square(Color c, Square s, Rank maxRank = RANK_8) {
 +  return make_square(file_of(s), relative_rank(c, s, maxRank));
  }
  
- inline bool opposite_colors(Square s1, Square s2) {
- #ifdef LARGEBOARDS
-   return int(s1 - (s1 % FILE_NB)) ^ int(s2 - (s2 % FILE_NB));
- #else
-   int s = int(s1) ^ int(s2);
-   return ((s >> 3) ^ s) & 1;
- #endif
- }
  constexpr Direction pawn_push(Color c) {
    return c == WHITE ? NORTH : SOUTH;
  }