Luminex 5.14.0 - new version chess engine


Luminex - a UCI chess engine written in C++23. All evaluation values are self-engineered from chess first principles.
Author: Cheng Chang

Luminex 5.14.0 what's new?

King-Pawn Correction History & Search Overhaul

This release introduces king-pawn correction history — a 6th eval correction table indexed by king positions and pawn structure — along with a comprehensive search overhaul including smarter LMR, improved null move pruning, and quadratic king safety.

What's New

Evaluation

  • King-pawn correction history: 6th correction table indexed by pawn_key XOR king_sq hash, adding position-specific eval adjustments for king safety context (+65.6 Elo)
  • Quadratic king safety: Replaced sigmoid danger model with quadratic au²/8 scaling for more natural danger growth
  • King flight safety: Penalty for limited king escape squares (0-1 flights: +80 danger, 2 flights: +30 danger)
  • Non-linear mobility lookup tables: Replaced linear formulas with per-mobility-level tables for all piece types

Search

  • Multi-table correction history (5 tables): pawn + nonpawn[2] + minor + major, weighted moving average per table, ±32 cp each
  • Selective corrhist update: Skip correction updates when in check or best move is capture
  • Correction cap ±200: Increased from ±100 for wider eval adjustment range
  • Confidence-weighted pruning: Correction history magnitude modulates futility/reverse-futility margins
  • Capture-response LMR: +1 reduction for quiets after opponent's capture (depth >= 4)
  • Deep worsening LMR: 4-ply eval trajectory makes LMR more aggressive for consistently worsening positions; history influence clamped to [-3,3]
  • NMP static_eval guard: Require eval >= static_eval for null move pruning
  • Eval-adaptive null move R: R+1 when eval > beta + 200
  • Probcut dynamic SEE: SEE threshold = max(rbeta - eval, 0)
  • Broader IIR: depth >= 3 instead of 4
  • Bad captures deferred: Search SEE<0 captures AFTER quiets
  • Faster history decay: Gravity 32768→16368
  • Separate noisy/quiet LMR: Quiets get 1.6x base reduction of captures
  • Tighter singular extension margin: depth10/16 instead of depth2
  • Shuffling detection: Skip singular extension on back-and-forth moves
  • Qsearch depth-dependent SEE: Threshold from fixed 0 to -60*depth
  • LMP depth limit extended from 6 to 8
  • Eval cache 512K→64K: Reduced L2/L3 pressure (+10.8 Elo)

New Features

  • Polyglot opening book support: New BookFile UCI option for opening book path

Test Results

Self-play vs v5.13.0, tc=1+0.01:

RunCutechess Elo
Run 1+127.0 ± 30.7 (219W-79L-102D)

vs StashV20 (2509 Elo), tc=1+0.01:

RunCutechess Elo
Run 1-86.9 ± 47.6 (67W-116L-17D)

Estimated Strength

~2422 CCRL Blitz equivalent (+100 Elo over v5.13.0)

Binaries

PlatformFileNotes
Linux (modern)luminex-linux-x86-64-modernAVX2 + BMI2 (CPUs since ~2015)
Linux (compat)luminex-linux-x86-64SSE4.2 + POPCNT
Windows (modern)luminex-windows-x86-64-modern.exeClangCL optimized
Windows (compat)luminex-windows-x86-64.exeMSVC compatible
macOSluminex-macos-arm64Apple Silicon


Comments

Popular posts from this blog

We already have the new Fritz 20 program - what does it look like and how does it work?

Stockfish 250702 wins Android Chess Engines Tournament, 2025.08.03-04