From fe26967ea042b318c26ef6bb600a733d049e2171 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Tue, 21 Jun 2011 18:48:14 +0100 Subject: [PATCH] Simplify sliding_attacks() Easy, almost trivial simplification, I don't understand how I missed this before !! No functional change. Signed-off-by: Marco Costalba --- src/bitboard.cpp | 14 ++++++-------- src/search.cpp | 1 - 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/bitboard.cpp b/src/bitboard.cpp index 67f211a4..de28e03a 100644 --- a/src/bitboard.cpp +++ b/src/bitboard.cpp @@ -252,7 +252,7 @@ void init_bitboards() { namespace { - Bitboard sliding_attacks(Square sq, Bitboard occupied, Square delta[], Bitboard excluded) { + Bitboard sliding_attacks(Square sq, Bitboard occupied, Square delta[]) { Bitboard attacks = 0; @@ -260,9 +260,7 @@ namespace { { Square s = sq + delta[i]; - while ( square_is_ok(s) - && square_distance(s, s - delta[i]) == 1 - && !bit_is_set(excluded, s)) + while (square_is_ok(s) && square_distance(s, s - delta[i]) == 1) { set_bit(&attacks, s); @@ -302,22 +300,22 @@ namespace { const int MagicBoosters[][8] = { { 3191, 2184, 1310, 3618, 2091, 1308, 2452, 3996 }, { 1059, 3608, 605, 3234, 3326, 38, 2029, 3043 } }; RKISS rk; - Bitboard occupancy[4096], reference[4096], excluded, b; + Bitboard occupancy[4096], reference[4096], edges, b; int key, maxKey, index, booster, offset = 0; for (Square s = SQ_A1; s <= SQ_H8; s++) { - excluded = ((Rank1BB | Rank8BB) & ~rank_bb(s)) | ((FileABB | FileHBB) & ~file_bb(s)); + edges = ((Rank1BB | Rank8BB) & ~rank_bb(s)) | ((FileABB | FileHBB) & ~file_bb(s)); attack[s] = &attTable[offset]; - mask[s] = sliding_attacks(s, EmptyBoardBB, delta, excluded); + mask[s] = sliding_attacks(s, EmptyBoardBB, delta) & ~edges; shift[s] = (CpuIs64Bit ? 64 : 32) - count_1s(mask[s]); // Use Carry-Rippler trick to enumerate all subsets of mask[s] b = maxKey = 0; do { occupancy[maxKey] = b; - reference[maxKey++] = sliding_attacks(s, b, delta, EmptyBoardBB); + reference[maxKey++] = sliding_attacks(s, b, delta); b = (b - mask[s]) & mask[s]; } while (b); diff --git a/src/search.cpp b/src/search.cpp index 2e12f82e..6a16368f 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1649,7 +1649,6 @@ split_point_start: // At split points actual search starts from here assert(move_is_ok(m)); assert(threat && move_is_ok(threat)); - assert(!pos.move_gives_check(m)); assert(!pos.move_is_capture(m) && !move_is_promotion(m)); assert(!pos.move_is_passed_pawn_push(m)); -- 2.39.2