v1.1.0 - Search & Pruning Upgrades
Coco v1.1.0
A batch of search-selectivity, pruning, and tactical-vision upgrades. Every change was validated through the SPRT testing funnel before merge.
Highlights
- Static Exchange Evaluation (SEE): A fast swap-list SEE now prunes losing captures in Quiescence Search before they touch the recursive tree.
- Safe QS Futility Pruning: Quiet captures in Quiescence are pruned after the best 2 captures using a wide 350 cp margin (promotions excluded).
- Internal Iterative Reductions (IIR): PV nodes with a total TT cache miss at depth >= 3 get depth reduced by 1, cutting redundant branch exploration for big branch reduction.
- Improving Heuristic: Reverse Futility Pruning margins and Late Move Reductions now scale dynamically based on whether the static eval improved over the last 2 plies.
- Dynamic Stockfish-Style Time Management: Best-move stability tracking, falling-evaluation extensions, and a single-legal-move (easy move) early cutoff now steer the clock budget.
- Singular Extensions (partial): A conservative, non-recursive singular verification search around the TT move, with a multicut short-circuit when the exclude-search still fails high over beta.
- Slider X-Ray King Masking:
checkers/pinned/pin_raysare precalculated once per node and used to filter illegal moves beforemake_move, reducing search nodes while keeping peak NPS.
Performance
- Bulk perft counting (depth-1 fast path) for faster perft.
- Build now uses
-march=native -fltofor full host-ISA utilization and link-time optimization, with AVX2 intrinsics included in the NNUE header.
Assets
coco-chess.exe— statically-linked Windows build (no external DLLs required).coco.nnue— the paired neural network weight file. Place it next to the executable (or in the working directory); the engine falls back between the two automatically.
Requirements
- A CPU supporting AVX2 (built with
-march=native). - Windows (x64).