Since you’re here...

We hope you will consider supporting us today. We need your support to continue to exist, because good entries are more and more work time. Every reader contribution, however big or small, is so valuable. Support "Chess Engines Diary" even a small amount– and it only takes a minute. Thank you.
============================== My email: jotes@go2.pl



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