From ecee6895458d8e06934c95b687a133eddd754dad Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Sun, 8 Nov 2026 18:24:35 +0100 Subject: Fix table generation (breaking change) There was a small (but kinda silly) error in the prunin table generation for H48 solvers, resulting in some positions showing a higher lower bound than they actually had. This means that the solvers where in theory broken and could have skipped some solutions - but we have not found any example, as this would be an extremely rare situation. This affected all tables from H48h2 to H48h11. This bug was found by LLM-based coding analysis in the context of the development of egg-solver: https://github.com/ArhanChaudhary/egg-solver Thanks to Arhan Chaudhary for reporting the bug. --- src/solvers/h48/gendata_h48.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/solvers/h48/gendata_h48.h') diff --git a/src/solvers/h48/gendata_h48.h b/src/solvers/h48/gendata_h48.h index 0b85e49..be06588 100644 --- a/src/solvers/h48/gendata_h48.h +++ b/src/solvers/h48/gendata_h48.h @@ -308,7 +308,7 @@ gendata_h48_runthread(void *arg) wrapthread_mutex_lock(dfsarg->shortcubes_mutex); kv = h48map_nextkvpair(dfsarg->shortcubes, dfsarg->next); - if (*dfsarg->next == dfsarg->shortcubes->capacity) { + if (kv.val == MAP_UNSET_VAL) { wrapthread_mutex_unlock(dfsarg->shortcubes_mutex); break; } -- cgit v1.3