diff options
| author | Scott Gasch <[email protected]> | 2026-09-25 08:44:25 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2026-09-25 08:44:25 -0700 |
| commit | 9b28080f8b3dca4588cb2aaaf748451f45e3c626 (patch) | |
| tree | 54e0aff5d6ee1520c590c7c04a5ae2f8299e7497 /src/root.c | |
| parent | 66740dc89c7351c120c25788d0079055034f4942 (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.c | 55 |
1 files changed, 15 insertions, 40 deletions
@@ -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(); // |
