Catalyst v3.1.0
What's New
Search Fixes
- Fixed a null-move pruning regression that had NMP gated to cut-nodes only instead of all non-PV nodes — this was quietly costing a lot of search efficiency
- Removed a direct depth reduction on alpha-raise (confirmed anti-scalar by community testing), relying on standard LMR instead
- Restricted RFP at TT-PV and quiet TT nodes for more accurate pruning
- Added repetition-avoidance logic so the engine prefers a non-repeating alternative when clearly ahead
Move Ordering & History
- Split history bonus/malus constants per table type (butterfly, piece-to, pawn, continuation) instead of sharing one scale
- Skip history updates on trivial single-move cutoffs at low depth to reduce ordering noise
- Restored plain gravity-based updates for continuation history
Transposition Table
- Switched to a 10-byte entry, 3-per-cluster, 32-byte layout — 50% more TT capacity for the same hash size
- Tuned age-weighting in the replacement policy for more accurate eviction of stale entries
- Allocate TT with
MAP_HUGETLB, falling back to transparent huge pages (THP)
General Fixes
- Removed mid-search periodic info prints
- Fixed
best_thread()score priority logic - Various stability and correctness improvements
Performance
Elo | +35.74 ± 6.80 (95%)
Conf | 10+0.10s | Threads=1 | Hash=128MB
Games| N: 4000 | W: 1065 | L: 655 | D: 2280
Penta| [42, 366, 859, 606, 127]
LOS | 100.00%
Downloads
Pick the binary for your CPU:
| Binary | Requirements |
|---|---|
| Catalyst-v3.1.0-avx512vnni | AVX-512 VNNI (Zen 4, Cascade Lake) |
| Catalyst-v3.1.0-avx512 | AVX-512 + BMI2 |
| Catalyst-v3.1.0-bmi2 | AVX2 + BMI2 |
| Catalyst-v3.1.0-avx2 | AVX2 |
| Catalyst-v3.1.0-sse41 | SSE4.1 (older CPUs) |
| Catalyst-v3.1.0-x86-64 | Any x86-64 CPU |
If unsure, use avx2.