From ebd41e1fdeaef076bcad851a0bc795f0884d1c98 Mon Sep 17 00:00:00 2001 From: cosmo Date: Mon, 21 Sep 2026 14:46:32 +0100 Subject: [PATCH 1/2] Use game-cycle detection to update corrhist. Bench: 12869976 --- src/search.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index 22664cae..b7fdb518 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1,4 +1,3 @@ -#include "search.hpp" #include "board.hpp" #include "common.hpp" #include "dbg_tools.hpp" @@ -6,6 +5,7 @@ #include "history.hpp" #include "movegen.hpp" #include "movepick.hpp" +#include "search.hpp" #include "see.hpp" #include "tb.hpp" #include "tm.hpp" @@ -502,6 +502,8 @@ Value Worker::search( return 0; } + bool is_in_check = pos.is_in_check(); + // Draw checks if (!ROOT_NODE) { // Repetition check @@ -518,6 +520,15 @@ Value Worker::search( } // Upcoming repetition detection if (alpha < 0 && repetition_info.has_game_cycle(pos, static_cast(ply))) { + if (!is_in_check) { + auto raw_eval = evaluate(pos); + auto correction = m_td.history.get_correction(pos); + auto eval = adj_shuffle(pos, raw_eval) + correction; + if (eval < 0) { + m_td.history.update_correction_history(pos, depth, -eval); + } + } + alpha = 0; if (alpha >= beta) { return alpha; @@ -600,11 +611,10 @@ Value Worker::search( : tt_data ? tt_data->move : Move::none(); - bool is_in_check = pos.is_in_check(); - bool improving = false; - Value correction = 0; - Value raw_eval = -VALUE_INF; - ss->static_eval = -VALUE_INF; + bool improving = false; + Value correction = 0; + Value raw_eval = -VALUE_INF; + ss->static_eval = -VALUE_INF; if (!is_in_check) { correction = excluded ? 0 : m_td.history.get_correction(pos); raw_eval = tt_data && !is_decisive_score(tt_data->eval) ? tt_data->eval : evaluate(pos); From 32725f3ef2112f2bf0ff80bdae994ddd0644e164 Mon Sep 17 00:00:00 2001 From: TheRealGioviok <425gioviok@gmail.com> Date: Wed, 23 Sep 2026 01:59:07 +0200 Subject: [PATCH 2/2] Bench: 12869976 --- src/search.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/search.cpp b/src/search.cpp index b7fdb518..a55813b1 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1,3 +1,4 @@ +#include "search.hpp" #include "board.hpp" #include "common.hpp" #include "dbg_tools.hpp" @@ -5,7 +6,6 @@ #include "history.hpp" #include "movegen.hpp" #include "movepick.hpp" -#include "search.hpp" #include "see.hpp" #include "tb.hpp" #include "tm.hpp"