Search strength and efficiency
- Null-move reduction now scales conservatively with the static-evaluation margin above beta. Positions at least 200 or 400 centipawns above beta receive one or two additional reduction plies, capped at two.
- Existing null-move eligibility, non-pawn-material zugzwang guard, repetition handling, and failed-null threat detection remain intact.
- Null searches below beta are unchanged.
Measured strength
- Two independent 3,000-game formal samples produced 2180 wins, 2046 losses, and 1774 draws: approximately +7.8 Elo ±7.4 combined.
- A separate 800-game pilot measured +7.82 Elo ±20.09.
- Games used paired 8moves_v3 openings at 1+0.01, one thread, and 64 MB hash.
Search efficiency
- Deterministic depth-12 benchmark: 2,982,995 → 2,725,178 nodes (8.64% fewer).
- NET-493 depth-18 probe: 3,782,988 → 2,604,235 nodes (31.16% fewer) with the same best move.
Validation
- Full optimized suite: 170 passed, 0 failed, 3 intentionally ignored.
- Independent internal review approved the change with no blocking findings.
- CI built six binaries successfully: portable and AVX2 Windows/Linux builds plus Intel and Apple Silicon macOS builds.
- The UCI handshake reports Rusty Rival 1.0.58.
Minor-piece zugzwang remains a residual null-move risk because Rival does not yet use high-depth verification search. That follow-up is deliberately excluded from this release so it can be tested as an independent playing change.
Full changelog: v1.0.57...v1.0.58