summaryrefslogtreecommitdiff
path: root/src/search.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/search.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/search.c')
-rw-r--r--src/search.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/search.c b/src/search.c
index c054333..a347e12 100644
--- a/src/search.c
+++ b/src/search.c
@@ -511,6 +511,10 @@ Search(IN SEARCHER_THREAD_CONTEXT *ctx,
&mvHash,
&iScore,
&sHash);
+ // 2026-10-23, one-off diagnostic support -- see PLY_INFO's
+ // fHashMoveIsCapture comment (chess.h). mvHash is never reassigned
+ // below this point, so it's final the instant HashLookup returns.
+ pi->fHashMoveIsCapture = (0 != mvHash.uMove) && IS_CAPTURE_OR_PROMOTION(mvHash);
if (TRUE == fHashHit)
{
VERIFY_HASH_HIT;
@@ -1220,6 +1224,11 @@ Search(IN SEARCHER_THREAD_CONTEXT *ctx,
if (TRUE == fIsLeftoverMove)
{
INC(ctx->sCounters.tree.u64LeftoverFH);
+#ifdef HASHCAP_COLLECTION
+ INC(ctx->sCounters.tree.u64HashCapFH
+ [pi->fHashMoveIsCapture ? 1 : 0]
+ [(NODE_CUT == pi->eNodeType) ? 1 : 0]);
+#endif
// Gated on fMoveIsPruneReduceEligible now,
// matching the tries side -- must
// match exactly, or this would reuse a