diff options
| author | Scott Gasch <[email protected]> | 2026-10-24 09:07:03 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2026-10-24 09:07:03 -0700 |
| commit | 5f901d737b17c5f99b6e456d6c0c7d5e3c093dc4 (patch) | |
| tree | 6601dadbd36c8f45991c5dd821a3dbb2059baafe /src/script.c | |
| parent | 69525eb2f42ea9cca8255f6cc3b85e6b1312fd05 (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.c | 46 |
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 |
