summaryrefslogtreecommitdiff
path: root/src/generate.c
diff options
context:
space:
mode:
authorScott Gasch <[email protected]>2026-10-10 10:29:48 -0700
committerScott Gasch <[email protected]>2026-10-10 10:29:48 -0700
commit03545c4600df81b1a47dbc63fc606c065e857d8b (patch)
treea433fdce69fd27359679ad91e0ebedd52e2506cd /src/generate.c
parentfbdcb9d76dd2444d8bc631331eaeb9435cc247f8 (diff)
Eval mobility/pseudo-mobility tweaks; drop unproductive move-ordering experiments.
eval.c: add bishop/rook x-ray pseudo-mobility terms (squares seen past a directly-attacked higher-value piece), trim pawn-centrality edge penalty and bishop-pair bonus. chess.h/dynamic.c/generate.c/search.c/searchsup.c: revert three move-ordering experiments (recapture bonus, flee-to-safety GOOD_MOVE promotion, ply-2 move-pair bonus) that calibrated with real fail-high signal but never converted into a measurable node-count or solve-rate win on the curated suites -- see MOVE_ORDERING_IDEAS.md for the evidence and reasoning behind each drop. Add MOVE_ORDERING_EVIDENCE_COLLECTION as its own GNUmakefile flag, independent of PERF_COUNTERS, for any future such harness. command.c: remove the KING_DEFECT_DUMP-gated evalkingdump command, dead since the king-safety remine work moved to eval_tune/king_safety_data/. Co-Authored-By: Claude Sonnet 5 <[email protected]>
Diffstat (limited to 'src/generate.c')
-rw-r--r--src/generate.c38
1 files changed, 32 insertions, 6 deletions
diff --git a/src/generate.c b/src/generate.c
index fdfdc79..d202384 100644
--- a/src/generate.c
+++ b/src/generate.c
@@ -908,7 +908,7 @@ GenerateWhiteKnight(IN MOVE_STACK *pStack,
// ASSERT(pStack->bbOccupied == _BuildFullOccupiedBB(pos)) calls
// below) and for testgenerate.c's benchmark harness. Non-static so
// both of those can call it directly.
-BITBOARD
+BITBOARD FORCEINLINE
_BuildFullOccupiedBB(IN POSITION *pos)
/**
@@ -1004,7 +1004,7 @@ _ComputeCheckTargetMaskBB(IN COOR cKing, IN COOR cAttacker,
// Non-static so testgenerate.c's harness can call it directly to set
// up MOVE_STACK.bbFriendlyOccupied when calling a _Generate*BB
// function outside of _GenerateAllMoves.
-BITBOARD INLINE
+BITBOARD FORCEINLINE
_BuildFriendlySideBB(IN POSITION *pos, IN ULONG uSide)
/**
@@ -4833,10 +4833,18 @@ Return value:
s -= PIECE_VALUE_OVER_100(mv.pMoved);
s += SORT_THESE_FIRST;
- //
- // IDEA: bonus for capturing opponent's last moved
- // piece to encourage quicker fail highs?
- //
+ // DROPPED: recapture bonus (MOVE_ORDERING_IDEAS.md
+ // item 4) -- a real, well-calibrated FH% signal
+ // (64-65% vs. a 49-52% all-captures-at-the-same-
+ // SEE-sign baseline) that never converted into a
+ // tree-size win at two magnitudes tried (50: a
+ // dominant override of MVV/LVA's own ~16-unit
+ // spread, confirmed real tactical loss on
+ // ecm_hard_quick; 4: fixed the regression but
+ // still no node-count improvement on any suite).
+ // See chess.h's DROPPED comment near
+ // COUNTERMOVE_EVIDENCE_THRESHOLD for the full
+ // backlog history.
ASSERT(s >= SORT_THESE_FIRST);
ASSERT(s > 0);
ASSERT((s & STRIP_OFF_FLAGS) < VALUE_KING);
@@ -4899,6 +4907,24 @@ Return value:
s |= COUNTERMOVE_TIER_BONUS;
}
}
+
+ // DROPPED: flee-to-safety tier (MOVE_ORDERING_IDEAS.md
+ // item 6) -- a real, well-calibrated FH% signal
+ // (56-68% vs. ~1.35-1.54% baseline at evidence >=
+ // 10000) that turned out to fire too rarely (2,444-
+ // 9,209 qualifying tries across an entire suite run)
+ // to register any measurable node-count or solve-count
+ // effect either way. See chess.h's DROPPED comment
+ // near COUNTERMOVE_EVIDENCE_THRESHOLD for the full
+ // backlog history.
+
+ // DROPPED: ply-2 move-pair match (MOVE_ORDERING_IDEAS.md
+ // item 3) -- a real, well-calibrated signal (53-66% FH
+ // vs. ~1.2-1.4% baseline) that never converted into a
+ // tree-size win across three mechanisms tried (tier
+ // escape, dominant nudge, proportionate nudge). See
+ // chess.h's DROPPED comment near COUNTERMOVE_EVIDENCE_
+ // THRESHOLD for the full history.
ASSERT(s >= 0);
}
pStack->mvf[u].iValue = s;