Captures were ordered by SEE and then MVV-LVA alone, so nothing learned
which captures actually cut. A capture history table, keyed by the side,
the piece taking, the to square and the piece taken, is taught at the
quiet history's cutoff sites: a capture that cuts gains d², and every
capture tried before a cutoff loses d², whether a capture or a quiet
cut. A capture that cuts still teaches neither quiet memory.
It is read where the quiet memories are (the main search's nodes, not
the root or quiescence), on both the keyed and the spilled list paths.
An entry adds 16 a point to the capture's key, so a full entry
(131,072) is short of one pawn of SEE (200,000) by more than a quiet's
widest history and the largest tiebreak. The swap's sign still picks
the band, a losing capture stays behind every quiet, and the table can
reorder captures a pawn apart but never two. `the_bands_do_not_overlap`
checks this, and the table is cleared with the other memories at each
go.
The bench moves 7.1% (9,312,660 to 9,972,665). The reference search
does not read the memories, so its counts hold. The tactical suite goes
from 231 to 232 and the strategic total from 104,989 to 104,632, inside
the 447 the total moves by under one centipawn nudges. The floor test
on WAC.021 is moved to the new depth nine floors.
Co-Authored-By: Andrew Wright <[email protected]>
Bench: 9972665
Elo: not measured
Summary
Captures were ordered by SEE and then MVV-LVA, so nothing learned which captures actually cut. This adds a capture history table to
MoveOrdering:MoveOrdering::cutoff: a capture that cuts gains d², and every capture intriedloses d², whether a capture or a quiet cut. A capture cutoff still teaches neither quiet memory.plyisSome: main search nodes, not the root or quiescence), on both the keyed and the spilledorder_by_sortpaths.the_bands_do_not_overlapasserts this.forgetwith the other memories.Pins moved: bench 9,312,660 to 9,972,665 (+7.1%). The tactical suite goes from 231 to 232. The strategic total goes from 104,989 to 104,632, which is inside the 447 noise the total shows under one centipawn nudges. The WAC.021 floor test now uses the new depth nine floors (budget 120,000 to 180,000). The reference search's counts don't change.
Strength is not measured yet. It is to be played as sprt [0, 5] at 10+0.1 against b0600cb.
Tests run: release, optimised debug,
machine-testandtarget-cpu=x86-64suites, both clippy runs, fmt.Link to Devin session: https://app.devin.ai/sessions/eecd5bd45e4d476db1e20ed292a722ec
Open in Devin Desktop: https://app.devin.ai/desktop/session/eecd5bd45e4d476db1e20ed292a722ec?variant=devin
Requested by: @aywrite