summaryrefslogtreecommitdiff
path: root/src/chess.h
diff options
context:
space:
mode:
authorScott Gasch <[email protected]>2026-08-28 20:41:48 -0700
committerScott Gasch <[email protected]>2026-08-28 20:41:48 -0700
commit1509b3e593258690cbe3eee761a54f105111fc72 (patch)
tree9c8d87425b2004952a7aa31bc89ec1112cff4f9f /src/chess.h
parent74f91d7379d8055678dd5c58e7223a228d8a03b0 (diff)
Rewire GetMoveFailHighPercentage: index by (cFrom, cTo, pMoved) instead
of (cFrom, cTo, color), and expose sample size. MOVE_TO_INDEX (used elsewhere for the counter-move table) folds any two moves with the same from/to/color into one fail-high bucket -- e.g. a king shuffle and a queen sac to the same square/color shared a slot. New MOVE_TO_FH_INDEX uses the low 20 bits of mv.uMove (cFrom+cTo+pMoved), which already encodes color in pMoved's low bit, so this is strictly more granular for free. Table grown 0x20000 -> 0x100000 entries to match. Also adds an optional ULONG *puAttempts out-param so future callers can weight by sample confidence instead of trusting a percentage computed from as few as one observation. GetLMRReduction (proto-LMR, live at HEAD) is the only real consumer right now; verified against head_reference at sd10 across ecm_ringers/ecm_confident_quick/ecm_hard_quick: net +2 solves (88 vs 87 on confident_quick, 18 vs 17 on hard_quick), node counts flat within noise (-1.5%/+1.4%/+0.5%).
Diffstat (limited to 'src/chess.h')
-rwxr-xr-xsrc/chess.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/chess.h b/src/chess.h
index 3a78b2b..9722414 100755
--- a/src/chess.h
+++ b/src/chess.h
@@ -2782,7 +2782,7 @@ TestBitboards(void);
extern ULONG g_HistoryCounters[14][128];
ULONG
-GetMoveFailHighPercentage(MOVE mv);
+GetMoveFailHighPercentage(MOVE mv, ULONG *puAttempts);
void
UpdateDynamicMoveOrdering(SEARCHER_THREAD_CONTEXT *ctx,