summaryrefslogtreecommitdiff
path: root/src/chess.h
diff options
context:
space:
mode:
authorScott Gasch <[email protected]>2026-10-14 11:16:06 -0700
committerScott Gasch <[email protected]>2026-10-14 11:16:06 -0700
commit3845a082df2fd0d1bd059dd4c22c922067be826a (patch)
tree01f7059b7d1d7e7f0495a281512a6ac1610a280b /src/chess.h
parent3d54c2cc82366040f00d5901f80dbe4e9d7bfe10 (diff)
Remove dead EFP references left over from its removal
EFP (extended futility pruning) was removed from Search()'s move loop in favor of LMP's joint FH% table, but several comments, a dead counter (u64EFPPruned, never incremented anywhere), and two unused defines (EFP_FH_MIN_SAMPLES/EFP_FH_PRUNE_THRESHOLD_PCT_THOUSANDTHS) were left behind claiming EFP still gates something. Clean these up: - Delete u64EFPPruned (COUNTERS and g_Options) and its dead reader/writer in root.c. - Delete the two unused EFP_FH_* defines in search.c, and the stale fAnyMoveEFPPruned comment describing a branch that no longer skips a store. - Fix dangling prose references to EFP in generate.c, chess.h, searchsup.c, and testsearch.c that describe present-tense behavior EFP no longer participates in, preserving the historical rationale where it's still relevant (e.g. why EstimateHangingMaterialCp can return a negative value). Deliberately left alone (flagged for a separate decision, not a clear delete): script.c's still-live JOINT_EXTRA_VERIFY calibration labels ("EFP tier1/tier2"), search.c's _PostReduceDepthBucketEfpAligned (same live mechanism, name only), searchsup.c's LMP_BASE_MOVENUM/ LMP_PER_PLY_MOVENUM dead macros (kept pending a real floor/ceiling decision), and PLY_INFO.iPositional[2] (now write-only, but removing it touches Eval()'s call signature everywhere). Comment/dead-code only, no logic touched. Co-Authored-By: Claude Sonnet 5 <[email protected]>
Diffstat (limited to 'src/chess.h')
-rwxr-xr-xsrc/chess.h15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/chess.h b/src/chess.h
index 94c9db4..36b90e3 100755
--- a/src/chess.h
+++ b/src/chess.h
@@ -1268,10 +1268,6 @@ 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,
@@ -1709,9 +1705,11 @@ typedef struct _PLY_INFO
// -- e.g. a cleaner cross-ply "improving" signal that corrects for
// a tier switch (super-lazy vs full) between the two Eval() calls
// being compared, instead of just diffing raw iEval values. Not
- // yet consumed that way anywhere; currently only the search.c EFP
- // gate (VALUE_KNIGHT/VALUE_ROOK margins) reads this, for the
- // node-it-was-computed-at only.
+ // yet consumed that way anywhere; its one reader (search.c's EFP
+ // gate, VALUE_KNIGHT/VALUE_ROOK margins) was removed along with
+ // EFP, so this is currently write-only -- flagged, not deleted,
+ // since removing it means touching Eval()'s piPositional parameter
+ // at every call site, a bigger change than this cleanup pass.
SCORE iPositional[2];
INT iExtensionAmount;
FLAG fInCheck;
@@ -2077,7 +2075,6 @@ 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
@@ -2953,7 +2950,7 @@ TestMakeUnmakeMove(void);
// Countermove-match tier bonus, placed above GOOD_MOVE (see
// generate.c's _ScoreAllMoves quiet-move branch) so a *sufficiently
// evidenced* match (see COUNTERMOVE_EVIDENCE_THRESHOLD) escapes
-// "leftover" classification -- and the fIsLeftoverMove-gated EFP check --
+// "leftover" classification -- and the fIsLeftoverMove-gated LMP check --
// entirely, becoming its own tier alongside killers. Conservatively
// placed below both ply-2 killer slots (FOURTH_KILLER/THIRD_KILLER):
// the contested-node A/B harness never found clean evidence a