diff options
| author | Scott Gasch <[email protected]> | 2026-08-25 14:03:46 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2026-08-25 14:03:46 -0700 |
| commit | ba803fe406ee2470aa461578f530d292380ec241 (patch) | |
| tree | c083e1f88e1e8c978084b34b9b315c3eec682e32 /src/chess.h | |
| parent | 29d73f4dd59554a349aa8e86e5ea65f28c912ec9 (diff) | |
Add LMR with PV-adjacency guard (v7), verified against saved binary
Late Move Reductions using a depth x movecount table (Ethereal-style
formula), gated off PV nodes and the ply directly below a PV node
(PLY_INFO.fIsPVNode), with magnitude-aware re-search on fail-high.
Verified node-for-node identical to the previously tested-good v7
binary on a canary position (sd 10) after reconstructing from a ZFS
snapshot of search.c/root.c/split.c taken just before that binary was
built.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Diffstat (limited to 'src/chess.h')
| -rwxr-xr-x | src/chess.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/chess.h b/src/chess.h index 245a3b0..abf802e 100755 --- a/src/chess.h +++ b/src/chess.h @@ -819,6 +819,10 @@ typedef struct _COUNTERS UINT64 u64LazyEvals; UINT64 u64FullEvals; UINT64 u64CyclesInEval; + UINT64 u64HistoryPrunes; + UINT64 u64HistoryPruneReSearches; + UINT64 u64FutilityCandidates; + UINT64 u64FutilityPrunes; } tree; @@ -928,6 +932,7 @@ typedef struct _PLY_INFO #endif SCORE iEval; INT iExtensionAmount; + FLAG fIsPVNode; // (iBeta != iAlpha+1) at this ply FLAG fInCheck; FLAG fInQsearch; MOVE mv; @@ -2315,6 +2320,14 @@ ComputeMoveScore(IN SEARCHER_THREAD_CONTEXT *ctx, FLAG ThreadUnderTerminatingSplit(SEARCHER_THREAD_CONTEXT *); +void +InitializeLMRTable(void); + +INT +ExtraReduction(IN ULONG uRemainingDepth, + IN ULONG uMoveNum, + IN ULONG uFailHighPct); + FLAG WeShouldDoHistoryPruning(IN SCORE iRoughEval, IN SCORE iAlpha, |
