summaryrefslogtreecommitdiff
path: root/src/root.c
diff options
context:
space:
mode:
authorScott Gasch <[email protected]>2026-09-25 08:44:25 -0700
committerScott Gasch <[email protected]>2026-09-25 08:44:25 -0700
commit9b28080f8b3dca4588cb2aaaf748451f45e3c626 (patch)
tree54e0aff5d6ee1520c590c7c04a5ae2f8299e7497 /src/root.c
parent66740dc89c7351c120c25788d0079055034f4942 (diff)
Two ideas:
1. Nullmove R=3 + depth/6 along with some ShouldWeDoNullmoveSearch tweaking and calibrating. 2. Probe EGTB everywhere in the search as long as the table/position is resident in memory.
Diffstat (limited to 'src/root.c')
-rw-r--r--src/root.c55
1 files changed, 15 insertions, 40 deletions
diff --git a/src/root.c b/src/root.c
index a8a61bf..86d8b76 100644
--- a/src/root.c
+++ b/src/root.c
@@ -501,46 +501,6 @@ Return value:
Trace("Never used endgame pruning heuristic.\n");
}
#endif
-#ifdef TEST_NULL
- n = (double)(ctx->sCounters.tree.u64AvoidNullSuccess);
- d = n + (double)(ctx->sCounters.tree.u64AvoidNullFailures);
- if (d != 0.0)
- {
- Trace("Avoid null move heuristic rate was %5.3f percent.\n"
- "Avoid null move heuristic was "
- "%"COMPILER_LONGLONG_UNSIGNED_FORMAT " / "
- "%"COMPILER_LONGLONG_UNSIGNED_FORMAT ".\n",
- ((n / d) * 100.0),
- ctx->sCounters.tree.u64AvoidNullSuccess,
- (ctx->sCounters.tree.u64AvoidNullSuccess +
- ctx->sCounters.tree.u64AvoidNullFailures));
- }
- else
- {
- Trace("Never used the avoid null move heuristic.\n");
- }
- n = (double)(ctx->sCounters.tree.u64QuickNullSuccess);
- n += (double)(ctx->sCounters.tree.u64QuickNullDeferredSuccess);
- d = n + (double)(ctx->sCounters.tree.u64QuickNullFailures);
- if (d != 0.0)
- {
- Trace("Quick null move heuristic rate was %5.3f percent.\n"
- "Quick null move heuristic rate was "
- "%"COMPILER_LONGLONG_UNSIGNED_FORMAT " ("
- "%"COMPILER_LONGLONG_UNSIGNED_FORMAT ") / "
- "%"COMPILER_LONGLONG_UNSIGNED_FORMAT ".\n",
- ((n / d) * 100.0),
- ctx->sCounters.tree.u64QuickNullSuccess,
- ctx->sCounters.tree.u64QuickNullDeferredSuccess,
- (ctx->sCounters.tree.u64QuickNullSuccess +
- ctx->sCounters.tree.u64QuickNullDeferredSuccess +
- ctx->sCounters.tree.u64QuickNullFailures));
- }
- else
- {
- Trace("Never used the quick null move heuristic.\n");
- }
-#endif
n = (double)ctx->sCounters.tree.u64BetaCutoffsOnFirstMove;
d = (double)ctx->sCounters.tree.u64BetaCutoffs + 1;
Trace("First move beta cutoff rate was %5.3f percent.\n",
@@ -1547,6 +1507,21 @@ Return value:
g_Options.u64CMEvidenceTries[u] = ctx->sCounters.tree.u64CMEvidenceTries[u];
g_Options.u64CMEvidenceFH[u] = ctx->sCounters.tree.u64CMEvidenceFH[u];
}
+#ifdef TEST_NULL
+ for (u = 0; u < NC_TOTAL_BUCKETS; u++)
+ {
+ g_Options.u64NCAttempts[u] = ctx->sCounters.tree.u64NCAttempts[u];
+ g_Options.u64NCNullFH[u] = ctx->sCounters.tree.u64NCNullFH[u];
+ g_Options.u64NCRealFH[u] = ctx->sCounters.tree.u64NCRealFH[u];
+ g_Options.u64NCBothFH[u] = ctx->sCounters.tree.u64NCBothFH[u];
+ g_Options.u64NCNullProbeNodeSum[u] =
+ ctx->sCounters.tree.u64NCNullProbeNodeSum[u];
+ g_Options.u64NCFirstMoveNodeSum[u] =
+ ctx->sCounters.tree.u64NCFirstMoveNodeSum[u];
+ g_Options.u64NCRealLoopNodeSum[u] =
+ ctx->sCounters.tree.u64NCRealLoopNodeSum[u];
+ }
+#endif
g_MoveTimer.dEndTime = SystemTimeStamp();
//