diff options
| author | Scott Gasch <[email protected]> | 2026-10-14 10:49:20 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2026-10-14 10:49:20 -0700 |
| commit | 3d54c2cc82366040f00d5901f80dbe4e9d7bfe10 (patch) | |
| tree | e143c4db3a541feb9aa88fac1ef78a9ff77117e0 /src/searchsup.c | |
| parent | dad4620a92f51a1d0825fc99fa98fd2b16c0f280 (diff) | |
Loosen LMP pruning thresholds; trim stale comments/dead code in search.c
Raise uLMPStaticMaxPctThousandths across the board (200/200/150/75/50/
25/12/6/3/1/0 -> 325/300/250/200/150/100/80/25/6/1/0) and
LMP_DYNAMIC_MAX_PCT_THOUSANDTHS (1 -> 10000), letting the search go
deeper/faster by pruning more leftover moves per the dynamic FH%
evidence tables rather than the old hand-picked caps. Partial self-play
testing (two ~1k-game SPRT runs, LLR trending up both times, stopped
early) supports this but hasn't yet crossed +5 Elo.
Also: drop movesup.c's already-commented-out FLEE_BONUS selection-time
nudge (superseded by the evidence-gated countermove work), remove
search.c's now-stale dated commentary and two unused EFP flags
(fTryEFPHere/fThisMoveEFPPruned), and fix searchsup.c's beta-table
sentinel to use the named JOINT_TABLE_SENTINEL instead of a bare
0xFFFF.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Diffstat (limited to 'src/searchsup.c')
| -rw-r--r-- | src/searchsup.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/src/searchsup.c b/src/searchsup.c index 53e7a85..a048d39 100644 --- a/src/searchsup.c +++ b/src/searchsup.c @@ -181,11 +181,11 @@ Return value: } } - // + // // Also check raw node count limit here. // if (g_Options.u64MaxNodeCount != 0ULL && - ctx->sCounters.tree.u64TotalNodeCount > g_Options.u64MaxNodeCount) + ctx->sCounters.tree.u64TotalNodeCount > g_Options.u64MaxNodeCount) { Trace("NODE COUNT LIMIT (limit %llu, searched %llu) " "--> stop searching now\n", g_Options.u64MaxNodeCount, @@ -582,10 +582,10 @@ _JointTablePredictedFHThousandths(IN ULONG uRawDepthBucket, return JOINT_TABLE_SENTINEL; } return g_uJointFHThousandths[_ShipDepthBucket(uRawDepthBucket)] - [uRawDumbBucket] - [uRawGapBucket] - [_ShipLateBucket(uRawLateBucket)] - [uRawImproveBucket]; + [uRawDumbBucket] + [uRawGapBucket] + [_ShipLateBucket(uRawLateBucket)] + [uRawImproveBucket]; } // Looks up this node's predicted FH% (thousandths of a percent, i.e. @@ -611,12 +611,12 @@ _BetaTablePredictedFHThousandths(IN ULONG uRawDepthBucket, IN ULONG uEnemyImproveBucket) { USHORT uRawGap = g_uBetaFHThousandths[_ShipDepthBucket(uRawDepthBucket)] - [uGapBetaBucket] - [uOwnImproveBucket] - [uEnemyImproveBucket]; - if (0xFFFF == uRawGap) + [uGapBetaBucket] + [uOwnImproveBucket] + [uEnemyImproveBucket]; + if (JOINT_TABLE_SENTINEL == uRawGap) { - return 0xFFFF; + return JOINT_TABLE_SENTINEL; } return (ULONG)(100000 - uRawGap); } @@ -781,13 +781,13 @@ _FlatTableExtraPlies(IN ULONG uRemainingDepth, IN ULONG uMoveNum) FLAG CanWeReduceOrPruneMove(IN SEARCHER_THREAD_CONTEXT *ctx, - IN MOVE mv, - IN ULONG x, - IN ULONG uLegalMoves, - IN SCORE iExtend, - IN SCORE iAlpha, - IN FLAG fThreat, - IN FLAG fIsLeftoverMove) + IN MOVE mv, + IN ULONG x, + IN ULONG uLegalMoves, + IN SCORE iExtend, + IN SCORE iAlpha, + IN FLAG fThreat, + IN FLAG fIsLeftoverMove) /** Routine description: @@ -1060,7 +1060,7 @@ Return value: #define LMP_BASE_MOVENUM (8) // currently unused, see above #define LMP_PER_PLY_MOVENUM (1) // currently unused, see above #define LMP_DYNAMIC_MIN_SAMPLES (1) // well-evidenced, not a guess -#define LMP_DYNAMIC_MAX_PCT_THOUSANDTHS (1) +#define LMP_DYNAMIC_MAX_PCT_THOUSANDTHS (10000) FLAG @@ -1149,7 +1149,7 @@ Return value: **/ { static ULONG uLMPStaticMaxPctThousandths[] = { - 200, 200, 150, 75, 50, 25, 12, 6, 3, 1, 0 + 325, 300, 250, 200, 150, 100, 80, 25, 6, 1, 0 }; ASSERT(ctx->uPly > 0); ASSERT(IS_VALID_DEPTH(uRemainingDepth)); |
