summaryrefslogtreecommitdiff
path: root/src/script.c
diff options
context:
space:
mode:
authorScott Gasch <[email protected]>2026-10-24 09:07:03 -0700
committerScott Gasch <[email protected]>2026-10-24 09:07:03 -0700
commit5f901d737b17c5f99b6e456d6c0c7d5e3c093dc4 (patch)
tree6601dadbd36c8f45991c5dd821a3dbb2059baafe /src/script.c
parent69525eb2f42ea9cca8255f6cc3b85e6b1312fd05 (diff)
More aggressive move reductions; Wilson bound overrides static signal when available
SPRT playtest (2000 games, sd/depth matched): -535 =875 +590, score=0.514, llr=+1.04 (floated around +1.0 the whole run, never went negative) toward H1=+2.94. Not a confirmed win, but searches meaningfully deeper (avg depth 14.35 vs 13.50, EBF 3.131 vs 3.305) at no measurable strength cost -- worth banking and continuing to accumulate games against. Co-Authored-By: Claude Sonnet 5 <[email protected]>
Diffstat (limited to 'src/script.c')
-rw-r--r--src/script.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/script.c b/src/script.c
index 7de170c..848546b 100644
--- a/src/script.c
+++ b/src/script.c
@@ -97,6 +97,10 @@ typedef struct _SUITE_COUNTERS
UINT64 u64TotalJointExtraTries[JOINT_EXTRA_TIER_COUNT];
UINT64 u64TotalJointExtraResearch[JOINT_EXTRA_TIER_COUNT];
UINT64 u64TotalLMPPruned;
+#ifdef HASHCAP_COLLECTION
+ UINT64 u64TotalHashCapTries[2][2];
+ UINT64 u64TotalHashCapFH[2][2];
+#endif
#ifdef FH_TABLE_COLLECTION
// Full dual-table (5D alpha + 4D beta) collection -- see chess.h's
// SEARCHER_THREAD_CONTEXT.sCounters.tree comment for the full
@@ -460,6 +464,21 @@ _ProcessSuiteLine(char *szLine, POSITION *pos)
g_Options.u64LeftoverAlpha;
g_SuiteCounters.u64TotalLeftoverFH +=
g_Options.u64LeftoverFH;
+#ifdef HASHCAP_COLLECTION
+ {
+ ULONG u2, v2;
+ for (u2 = 0; u2 < 2; u2++)
+ {
+ for (v2 = 0; v2 < 2; v2++)
+ {
+ g_SuiteCounters.u64TotalHashCapTries[u2][v2] +=
+ g_Options.u64HashCapTries[u2][v2];
+ g_SuiteCounters.u64TotalHashCapFH[u2][v2] +=
+ g_Options.u64HashCapFH[u2][v2];
+ }
+ }
+ }
+#endif
{
ULONG v;
for (v = 0; v < CM_EVIDENCE_BUCKETS; v++)
@@ -892,6 +911,33 @@ _PrintSuiteReport(double dSuiteStart)
}
+#ifdef HASHCAP_COLLECTION
+ // 2026-10-23, one-off measurement: P(leftover move fails high |
+ // hash move at this node was a capture, node type guess). See
+ // GNUmakefile's HASHCAP_COLLECTION comment.
+ {
+ static const char *_pszLabel[2][2] = {
+ { "hashMove=quiet/none, type=ALL/PV", "hashMove=quiet/none, type=CUT" },
+ { "hashMove=capture, type=ALL/PV", "hashMove=capture, type=CUT" },
+ };
+ ULONG u2, v2;
+ Trace("\nhash-move-is-capture fail-high calibration "
+ "(leftover moves only):\n");
+ for (u2 = 0; u2 < 2; u2++)
+ {
+ for (v2 = 0; v2 < 2; v2++)
+ {
+ Trace(" %s : %6.3f%% FH (%"
+ COMPILER_LONGLONG_UNSIGNED_FORMAT " tries)\n",
+ _pszLabel[u2][v2],
+ (100.0 * (double)g_SuiteCounters.u64TotalHashCapFH[u2][v2] /
+ ((double)g_SuiteCounters.u64TotalHashCapTries[u2][v2] + 1.0)),
+ g_SuiteCounters.u64TotalHashCapTries[u2][v2]);
+ }
+ }
+ }
+#endif
+
#ifdef JOINT_EXTRA_VERIFY
// "Silent miss" shadow-verification calibration: of the extra-
// reduced moves whose real score never triggered a re-search (the