summaryrefslogtreecommitdiff
path: root/src/chess.h
diff options
context:
space:
mode:
authorScott Gasch <[email protected]>2026-08-25 14:03:46 -0700
committerScott Gasch <[email protected]>2026-08-25 14:03:46 -0700
commitba803fe406ee2470aa461578f530d292380ec241 (patch)
treec083e1f88e1e8c978084b34b9b315c3eec682e32 /src/chess.h
parent29d73f4dd59554a349aa8e86e5ea65f28c912ec9 (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-xsrc/chess.h13
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,