Skip to content

Commit f3c83ed

Browse files
protonspringsnicolet
authored andcommitted
Determine opposite colors mathematically
This is a non-functional speed-up: master has to access SquareBB twice while this patch determines opposite_colors just using the values of the squares. It doesn't seem to change the overall speed of bench, but calling opposite_colors(...) 10 Million times: master: 39.4 seconds patch: 11.4 seconds. The only data point I have (other than my own tests), is a quite old failed STC test: LLR: -2.93 (-2.94,2.94) [-1.50,4.50] Total: 24308 W: 5331 L: 5330 D: 13647 Ptnml(0-2): 315, 2577, 6326, 2623, 289 http://tests.stockfishchess.org/tests/view/5e010256c13ac2425c4a9a67 Closes #2498 No functional change
1 parent 75dfdea commit f3c83ed

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/bitboard.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,8 @@ constexpr bool more_than_one(Bitboard b) {
129129
return b & (b - 1);
130130
}
131131

132-
inline bool opposite_colors(Square s1, Square s2) {
133-
return bool(DarkSquares & s1) != bool(DarkSquares & s2);
132+
constexpr bool opposite_colors(Square s1, Square s2) {
133+
return (s1 + rank_of(s1) + s2 + rank_of(s2)) & 1;
134134
}
135135

136136

0 commit comments

Comments
 (0)