Skip to content

Commit 430d8c8

Browse files
authored
Fix has_repeated bug while probing TB (#1029)
Bench: 2851948
1 parent 7d6ac67 commit 430d8c8

2 files changed

Lines changed: 4 additions & 3 deletions

File tree

src/board.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,9 @@ impl Board {
260260
self.state.repetition != 0 && self.state.repetition < ply
261261
}
262262

263-
pub const fn is_repetition(&self) -> bool {
264-
self.state.repetition != 0
263+
pub fn has_repeated(&self) -> bool {
264+
let end = self.state.plies_from_null.min(self.state.halfmove_clock as usize);
265+
self.state_stack.iter().rev().take(end.saturating_sub(3)).any(|s| s.repetition != 0)
265266
}
266267

267268
pub fn draw_by_fifty_move_rule(&self) -> bool {

src/tb.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ pub fn rank_rootmoves(td: &mut ThreadData) {
117117
0,
118118
ep_square,
119119
td.board.side_to_move() == Color::White,
120-
td.board.is_repetition(),
120+
td.board.has_repeated(),
121121
true,
122122
tb_ptr,
123123
);

0 commit comments

Comments
 (0)