summaryrefslogtreecommitdiff
path: root/src/split.c
diff options
context:
space:
mode:
authorScott Gasch <[email protected]>2026-10-25 10:16:16 -0700
committerScott Gasch <[email protected]>2026-10-25 10:16:16 -0700
commit3927a4cac6ec254a8e34a5e864300f75c3efc9f3 (patch)
treed34d06481bd57276b3ef50bc5513f5bd65950a74 /src/split.c
parent874ef0478078ef4eb436af7d2b68a353f61f4d70 (diff)
Make the FH% regression model the default; remove data.c's retired tables
Flips FH_USE_REGRESSION_MODEL from an opt-in safety toggle to the only behavior: fhmodel.c's quantized logistic regressions are now always used, with no build-time choice left between them and the old histogram tables. Removes g_uJointFHThousandths/g_uBetaFHThousandths and their _NNUE counterparts from data.c (4085 lines), their extern declarations from chess.h, and the now-dead _JointTablePredictedFHThousandths/_BetaTablePredictedFHThousandths lookup functions and their supporting bucket helpers (HangCpBucket/GapCpBucket/MoveNumBucket/DepthBucket/ImproveBucket/ GapBetaBucket/_ShipDepthBucket/_ShipLateBucket) from searchsup.c, along with the uRawDepthB/uRawImproveB plumbing that only existed to feed them (search.c, split.c, SearchOneMove's parameter list). Also drops the beta-side static-nullmove skip threshold's provisional- 96000 #else branch -- 99000 is now simply the default, confirmed (not provisional) by docs/REGRESSION.md's trust-audit sweep (+291 Elo over 96000 at 200 games, LOWER95=0.79). Verified: clean release build, clean DEBUG=1 TEST=1 self-test run (no asserts), and a fresh head_reference/ checkpoint (head-reference-20261025 -> 874ef04's regression-model binary) with sd10/sn5000000 solve counts on the three curated suites essentially matching the previous table-based checkpoint (70/191 vs 71/191 sd10, 93/191 vs 96/191 sn5M). Co-Authored-By: Claude Sonnet 5 <[email protected]>
Diffstat (limited to 'src/split.c')
-rw-r--r--src/split.c22
1 files changed, 3 insertions, 19 deletions
diff --git a/src/split.c b/src/split.c
index 063f183..7af4805 100644
--- a/src/split.c
+++ b/src/split.c
@@ -1140,8 +1140,6 @@ Return value:
ULONG uMoveNum = 0;
INT iOrigExtend;
MOVE mv;
- ULONG uRawDepthB;
- ULONG uRawImproveB;
MOVE_KERNEL_RESULT eMoveKernelResult;
#ifdef DEBUG
POSITION board;
@@ -1170,16 +1168,6 @@ Return value:
ctx->sSearchFlags = g_SplitInfo[u].sSearchFlags;
SCORE iEval = g_SplitInfo[u].iEval;
- // Node-level hoists -- node-constant for the life of this split
- // (same convention search.c's own move loop uses: compute once,
- // not once per move). g_SplitInfo[u].iImprovement is real input
- // here (unlike the GetLMRReduction parameter removed 2026-10-04 --
- // see this field's own chess.h comment), feeding the joint-table
- // lookup SearchOneMove now does internally via CanWeReduceOrPruneMove/
- // ShouldLatePrune, which this call site never had before.
- uRawDepthB = DepthBucket(uOrigDepth / ONE_PLY);
- uRawImproveB = ImproveBucket(g_SplitInfo[u].iImprovement);
-
do
{
ULONG uLegalMoves;
@@ -1288,14 +1276,11 @@ Return value:
TRUE, // fIsLeftoverMove
g_SplitInfo[u].fThreat,
FALSE, // fFullWindow
- uRawDepthB,
- uRawImproveB,
g_SplitInfo[u].bbMinorAttacksSnapshot,
g_SplitInfo[u].bbRookAttacksSnapshot,
-#ifdef FH_USE_REGRESSION_MODEL
- // Same "deliberately
- // uninstrumented" pattern as
- // the FH_REGRESSION_COLLECTION
+ // Deliberately uninstrumented,
+ // same as the
+ // FH_REGRESSION_COLLECTION
// param below -- no node-level
// precompute is threaded
// through the split machinery,
@@ -1303,7 +1288,6 @@ Return value:
// the no-data sentinel on a
// helper thread's move.
(FHM_NODE_BASE)FHM_MATE_GATED,
-#endif
#ifdef MOVE_ORDERING_EVIDENCE_COLLECTION
FALSE, // fThisMoveIsCountermoveMatch
0, // uCMEvidenceBucket