simplified gives check castling

tested verifying perft and bench is unchanged
on a larger set of epds for both standard and FRC chess.

Passed non-regression STC:
https://tests.stockfishchess.org/tests/live_elo/648587be65ffe077ca123d78
LLR: 2.95 (-2.94,2.94) <-1.75,0.25>
Total: 153632 W: 41015 L: 40928 D: 71689
Ptnml(0-2): 377, 16077, 43816, 16174, 372

closes https://github.com/official-stockfish/Stockfish/pull/4628

No functional change
This commit is contained in:
rn5f107s2
2023-06-16 18:49:31 +02:00
committed by Joost VandeVondele
parent 9cd563cb54
commit 95ce443aaa
2 changed files with 5 additions and 6 deletions

View File

@@ -179,6 +179,7 @@ Raminder Singh
renouve
Reuven Peleg (R-Peleg)
Richard Lloyd (Richard-Lloyd)
rn5f107s2
Rodrigo Exterckötter Tjäder
Rodrigo Roim (roim)
Ronald de Man (syzygy1, syzygy)

View File

@@ -638,9 +638,9 @@ bool Position::gives_check(Move m) const {
return true;
// Is there a discovered check?
if ( (blockers_for_king(~sideToMove) & from)
&& !aligned(from, to, square<KING>(~sideToMove)))
return true;
if (blockers_for_king(~sideToMove) & from)
return !aligned(from, to, square<KING>(~sideToMove))
|| type_of(m) == CASTLING;
switch (type_of(m))
{
@@ -665,11 +665,9 @@ bool Position::gives_check(Move m) const {
default: //CASTLING
{
// Castling is encoded as 'king captures the rook'
Square ksq = square<KING>(~sideToMove);
Square rto = relative_square(sideToMove, to > from ? SQ_F1 : SQ_D1);
return (attacks_bb<ROOK>(rto) & ksq)
&& (attacks_bb<ROOK>(rto, pieces() ^ from ^ to) & ksq);
return check_squares(ROOK) & rto;
}
}
}