module

Experion::Eval

Constants

MATE = 30000
MATE_IN_MAX = 29000
PASSED_EG = StaticArray[0, 12, 20, 38, 68, 118, 190, 0]
PASSED_MG = StaticArray[0, 4, 8, 18, 32, 56, 95, 0]
TEMPO = 12

Instance methods

east_one(b : UInt64) : UInt64
Source
evaluate(pos : Position) : Int32
Source
hang_overlay(pos : Position) : Int32

Hung-piece penalty only. Pure NNUE (blend 100) skips classical eval, so search otherwise has no explicit "this piece is en prise" term. Quiet-trained nets under-penalize those positions because game data rarely contains them. STM-relative, no tempo (NNUE already adds it). Tropism + king-zone pressure on top scored 35% vs Crafty and was reverted; hang-only scored 42.5% with the first Black wins.

Source
insufficient_material?(pos : Position) : Bool

No way to force mate: bare kings, or king + single minor vs bare king.

Source
north_fill(b : UInt64) : UInt64
Source
passed_pawns(pawns : UInt64, enemies : UInt64, color : Int32) : UInt64
Source
south_fill(b : UInt64) : UInt64
Source
undefended_hang?(pos : Position, sq : Int32, color : Int32) : Bool

True when sq has an enemy attacker other than the king and no defender (king included). King-as-attacker was tried and reverted.

Source
west_one(b : UInt64) : UInt64
Source