mirror of
https://github.com/opelly27/Stockfish.git
synced 2026-05-20 08:37:44 +00:00
Skip draw by repetition check in qsearch
Cut in half the time spent in pos.draw() that accounts for a whopping 1% of total time ! Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
+3
-3
@@ -763,7 +763,7 @@ namespace {
|
||||
|
||||
// Step 2. Check for aborted search and immediate draw
|
||||
if (( StopRequest
|
||||
|| pos.is_draw()
|
||||
|| pos.is_draw<false>()
|
||||
|| ss->ply > PLY_MAX) && !RootNode)
|
||||
return VALUE_DRAW;
|
||||
|
||||
@@ -1333,7 +1333,7 @@ split_point_start: // At split points actual search starts from here
|
||||
ss->ply = (ss-1)->ply + 1;
|
||||
|
||||
// Check for an instant draw or maximum ply reached
|
||||
if (ss->ply > PLY_MAX || pos.is_draw())
|
||||
if (pos.is_draw<true>() || ss->ply > PLY_MAX)
|
||||
return VALUE_DRAW;
|
||||
|
||||
// Decide whether or not to include checks, this fixes also the type of
|
||||
@@ -2019,7 +2019,7 @@ split_point_start: // At split points actual search starts from here
|
||||
&& pos.move_is_pl(tte->move())
|
||||
&& pos.pl_move_is_legal(tte->move(), pos.pinned_pieces(pos.side_to_move()))
|
||||
&& ply < PLY_MAX
|
||||
&& (!pos.is_draw() || ply < 2))
|
||||
&& (!pos.is_draw<false>() || ply < 2))
|
||||
{
|
||||
pv[ply] = tte->move();
|
||||
pos.do_move(pv[ply++], *st++);
|
||||
|
||||
Reference in New Issue
Block a user