From: Marco Costalba Date: Sun, 30 Oct 2011 17:16:28 +0000 (+0100) Subject: Inline pinned_pieces() and discovered_check_candidates() X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=29be28e1a24898cec64470332740eaa54893b7a4;ds=sidebyside Inline pinned_pieces() and discovered_check_candidates() No functional change. Signed-off-by: Marco Costalba --- diff --git a/src/bitboard.h b/src/bitboard.h index 59de1288..fa1f9d20 100644 --- a/src/bitboard.h +++ b/src/bitboard.h @@ -84,11 +84,11 @@ inline Bitboard bit_is_set(Bitboard b, Square s) { return b & SetMaskBB[s]; } -inline void set_bit(Bitboard *b, Square s) { +inline void set_bit(Bitboard* b, Square s) { *b |= SetMaskBB[s]; } -inline void clear_bit(Bitboard *b, Square s) { +inline void clear_bit(Bitboard* b, Square s) { *b &= ClearMaskBB[s]; } @@ -100,7 +100,7 @@ inline Bitboard make_move_bb(Square from, Square to) { return SetMaskBB[from] | SetMaskBB[to]; } -inline void do_move_bb(Bitboard *b, Bitboard move_bb) { +inline void do_move_bb(Bitboard* b, Bitboard move_bb) { *b ^= move_bb; } diff --git a/src/position.cpp b/src/position.cpp index abde1459..4160822b 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -349,7 +349,6 @@ void Position::print(Move move) const { /// king) pieces for the given color. Or, when template parameter FindPinned is /// false, the function return the pieces of the given color candidate for a /// discovery check against the enemy king. - template Bitboard Position::hidden_checkers() const { @@ -373,24 +372,10 @@ Bitboard Position::hidden_checkers() const { return result; } +// Explicit template instantiations +template Bitboard Position::hidden_checkers() const; +template Bitboard Position::hidden_checkers() const; -/// Position:pinned_pieces() returns a bitboard of all pinned (against the -/// king) pieces for the side to move. - -Bitboard Position::pinned_pieces() const { - - return hidden_checkers(); -} - - -/// Position:discovered_check_candidates() returns a bitboard containing all -/// pieces for the side to move which are candidates for giving a discovered -/// check. - -Bitboard Position::discovered_check_candidates() const { - - return hidden_checkers(); -} /// Position::attackers_to() computes a bitboard of all pieces which attacks a /// given square. Slider attacks use occ bitboard as occupancy. @@ -405,6 +390,7 @@ Bitboard Position::attackers_to(Square s, Bitboard occ) const { | (attacks_from(s) & pieces(KING)); } + /// Position::attacks_from() computes a bitboard of all attacks of a given piece /// put in a given square. Slider attacks use occ bitboard as occupancy. @@ -503,8 +489,8 @@ bool Position::pl_move_is_legal(Move m, Bitboard pinned) const { /// Position::move_is_legal() takes a random move and tests whether the move -/// is legal. This version is not very fast and should be used only -/// in non time-critical paths. +/// is legal. This version is not very fast and should be used only in non +/// time-critical paths. bool Position::move_is_legal(const Move m) const { diff --git a/src/position.h b/src/position.h index ea7f37c6..7842ed8b 100644 --- a/src/position.h +++ b/src/position.h @@ -216,11 +216,9 @@ private: void set_castle_right(Square ksq, Square rsq); bool move_is_legal(const Move m) const; - // Helper functions for doing and undoing moves + // Helper template functions template void do_castle_move(Move m); - - template - Bitboard hidden_checkers() const; + template Bitboard hidden_checkers() const; // Computing hash keys from scratch (for initialization and debugging) Key compute_key() const; @@ -384,6 +382,14 @@ inline bool Position::in_check() const { return st->checkersBB != 0; } +inline Bitboard Position::discovered_check_candidates() const { + return hidden_checkers(); +} + +inline Bitboard Position::pinned_pieces() const { + return hidden_checkers(); +} + inline bool Position::pawn_is_passed(Color c, Square s) const { return !(pieces(PAWN, flip(c)) & passed_pawn_mask(c, s)); }