<feed xmlns='http://www.w3.org/2005/Atom'>
<title>typhoon.git/src/TODO, branch master</title>
<subtitle>The typhoon chess playing engine.
</subtitle>
<id>https://git.acknak.org/cgit/typhoon.git/atom?h=master</id>
<link rel='self' href='https://git.acknak.org/cgit/typhoon.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.acknak.org/cgit/typhoon.git/'/>
<updated>2026-09-06T04:52:40Z</updated>
<entry>
<title>King-safety recalibration, lazy-eval material floor, eval hot-path trimming</title>
<updated>2026-09-06T04:52:40Z</updated>
<author>
<name>Scott Gasch</name>
<email>scott@gasch.org</email>
</author>
<published>2026-09-06T04:52:40Z</published>
<link rel='alternate' type='text/html' href='https://git.acknak.org/cgit/typhoon.git/commit/?id=9e995e7c39a83ae9b5ba86f3346e0281744bf773'/>
<id>urn:sha1:9e995e7c39a83ae9b5ba86f3346e0281744bf773</id>
<content type='text'>
Recalibrate iKingSwingP90 against the bitboard-rewritten
CountKingSafetyDefects (~1.28B samples via new CALIBRATE_POSITIONAL/
CALIBRATE_BASE_MARGIN/CALIBRATE_MARGIN_SAFETY diagnostic build flags,
board_representation/EVAL.md section 9). Add LAZY_EVAL_MIN_MATERIAL:
measured the regular lazy exit's real swing exceeding its own assumed
margin 20.6% of the time in near-bare-king endgames (vs &lt;=0.36%
elsewhere) -- skip lazy eval entirely below that material floor.
Double the stale search.c/searchsup.c CountKingSafetyDefects extension
thresholds as a stopgap pending their own recalibration.

Eval hot-path trimming (measured via EVAL_TIME, ~1759 -&gt; ~1386 avg
cycles/eval on a representative middlegame position):
  - Pull _GetFileStormDefects out of EstimatePositionalScore's hot path
    (cost more than the "cheap cached lookup" it was assumed to be,
    running on ~90% of all Eval() calls).
  - Add pos-&gt;bbOccupiedSide[2], incrementally maintained alongside
    bbOccupied, so _BuildFriendlySideBB is a field read instead of a
    6-term OR.
  - Switch CoorFromBitBoardRank8ToRank1/Rank1ToRank8 to the existing
    static-inline FastFirstBit/FastLastBit (same bsf/bsr instruction,
    no call/ret overhead).
  - Defer EvalPasserRaces' uRacerDist/fDontCountMeOut past its
    no-passer early return.
  - Remove the mailbox-era "max mobility in a row" term from
    _EvalBishop/_EvalRook (no bitboard-mobility equivalent need for it).
  - Simplify _EvalBishopPairs and rook file-openness/passer bonuses to
    flat DNA-tunable constants instead of distance/pawn-count-scaled
    tables, rook file-openness now a branchless bitboard-indexed lookup.
  - Remove pos-&gt;cPiece (write-only, no reader anywhere).
  - Collapse WHITE/BLACK mirror-branches (castle-rights block,
    rook-trapped-in-corner) to color-indexed constants.
  - Close the PAWN_BIT..KING_BIT gap (bits 7-3 -&gt; bits 4-0), removing
    the bvPattern &gt;&gt;= 3 before its KING_COUNTER_BY_ATTACK_PATTERN
    lookup. This also fixes a real bug introduced earlier this session
    when _WhoControlsSquareFast was converted to read these constants
    directly: g_SwapTable is only [32][32], but the old bit values
    (up to 0xF8) indexed far out of bounds on any attacked square --
    data.c's InitializeSwapTable was always built assuming the bits
    0-4 range this change now actually produces.

Co-Authored-By: Claude Sonnet 5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01XxmVi2sTMwpPp4i6WYFjan
</content>
</entry>
<entry>
<title>Update TODO (no code changes)</title>
<updated>2026-08-30T18:14:33Z</updated>
<author>
<name>Scott Gasch</name>
<email>scott@gasch.org</email>
</author>
<published>2026-08-30T18:14:33Z</published>
<link rel='alternate' type='text/html' href='https://git.acknak.org/cgit/typhoon.git/commit/?id=0eb79a56c9174397050535bbfdc3f1e767ba9ffc'/>
<id>urn:sha1:0eb79a56c9174397050535bbfdc3f1e767ba9ffc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Initial checkin for typhoon chess engine.</title>
<updated>2016-06-02T01:58:58Z</updated>
<author>
<name>Scott Gasch</name>
<email>scott.gasch@gmail.com</email>
</author>
<published>2016-06-02T01:58:58Z</published>
<link rel='alternate' type='text/html' href='https://git.acknak.org/cgit/typhoon.git/commit/?id=3fd43cd5fcb22bb65bf2a92a25d95d801b11c9e0'/>
<id>urn:sha1:3fd43cd5fcb22bb65bf2a92a25d95d801b11c9e0</id>
<content type='text'>
</content>
</entry>
</feed>
