summaryrefslogtreecommitdiff
path: root/src/searchsup.c
diff options
context:
space:
mode:
authorScott Gasch <[email protected]>2026-10-14 10:49:20 -0700
committerScott Gasch <[email protected]>2026-10-14 10:49:20 -0700
commit3d54c2cc82366040f00d5901f80dbe4e9d7bfe10 (patch)
treee143c4db3a541feb9aa88fac1ef78a9ff77117e0 /src/searchsup.c
parentdad4620a92f51a1d0825fc99fa98fd2b16c0f280 (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.c40
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));