diff options
| author | Scott Gasch <[email protected]> | 2026-10-05 13:05:34 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2026-10-05 13:05:34 -0700 |
| commit | bb7cdcda4c8c30ad0ed71d0f60427daf05977b24 (patch) | |
| tree | 99a5a3f9fa6edcced73d966df0af07274ff67962 /src/chess.h | |
| parent | 5d9a5cf4036d07252e81d51e78e6dd36e65c9275 (diff) | |
New telemetry.
Diffstat (limited to 'src/chess.h')
| -rwxr-xr-x | src/chess.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/chess.h b/src/chess.h index 420e313..b9cba3d 100755 --- a/src/chess.h +++ b/src/chess.h @@ -1014,6 +1014,14 @@ MOVE_STACK; // which would have been a search-behavior change rather than a fix. #define JOINT_EXTRA_TIER_COUNT (6) +// Null-move R-factor breakdown (post-move dump, root.c) -- bucketed by +// SelectNullmoveRFactor's whole-ply R value (searchsup.c). R is +// currently TWO_PLY (sparse material) or THREE_PLY + depth/6 (Crafty- +// style growth), so real traffic never gets near this bound; sized +// with headroom and clamped at the top bucket rather than tied exactly +// to a formula that might grow later. +#define NULL_R_BUCKETS (12) + // 2026-10-03: PRUNE_VERIFY (GNUmakefile) -- shadow verification for the // DEEP PRUNE gate (ShouldLatePrune), answering a question the LMR-side // JOINT_EXTRA_VERIFY cannot: "this move was about to be skipped @@ -1241,6 +1249,16 @@ typedef struct _COUNTERS // leftover pool near the leaves. Counts every move this was // applied to. UINT64 u64LMPPruned; + // 2026-10-05: extended futility pruning (EFP, search.c) -- same + // shape as u64LMPPruned above, for the other overt-skip (not + // reduction) mechanism in the move loop. + UINT64 u64EFPPruned; + // 2026-10-05: null-move R-factor breakdown -- which whole-ply R + // SelectNullmoveRFactor chose, and how often the null-move + // search at that R actually failed high. Indexed by R/ONE_PLY, + // clamped to NULL_R_BUCKETS - 1. + UINT64 u64NullMoveTriesByR[NULL_R_BUCKETS]; + UINT64 u64NullMoveSuccessByR[NULL_R_BUCKETS]; #ifdef PRUNE_VERIFY // [predicted-FH band][shipped depth bucket] -- see // PRUNE_VERIFY_BANDS above. Tries = moves the deep-prune gate @@ -1985,6 +2003,9 @@ typedef struct _GAME_OPTIONS UINT64 u64JointExtraTries[JOINT_EXTRA_TIER_COUNT]; UINT64 u64JointExtraResearch[JOINT_EXTRA_TIER_COUNT]; UINT64 u64LMPPruned; + UINT64 u64EFPPruned; + UINT64 u64NullMoveTriesByR[NULL_R_BUCKETS]; + UINT64 u64NullMoveSuccessByR[NULL_R_BUCKETS]; #ifdef PRUNE_VERIFY UINT64 u64PruneVerifyTries[PRUNE_VERIFY_BANDS][SHIP_DEPTH_BUCKETS]; UINT64 u64PruneVerifyFailHigh[PRUNE_VERIFY_BANDS][SHIP_DEPTH_BUCKETS]; @@ -3735,7 +3756,8 @@ TryNullmovePruning(IN OUT SEARCHER_THREAD_CONTEXT *ctx, IN SCORE iBeta, IN ULONG uNullDepth, IN OUT INT *piOrigExtend, - OUT SCORE *piNullScore); + OUT SCORE *piNullScore, + IN ULONG uNullRBucket); void UpdatePV(SEARCHER_THREAD_CONTEXT *ctx, MOVE mv); |
