Watch it converge

Pick a covariance ensemble and a field size, and race the field's standard tools on honest wall time — each method charged only for its own compute, on your machine. The lattice race prices every contestant at once — milliseconds for the structured grammars, a second or two of single-threaded JavaScript for the dense fits (the compiled engines are another two orders of magnitude faster). GHK must factor one (n−1)-dimensional difference covariance per contestant before its first draw, then simulates its way down. Mendell–Elston, the analytic sequential-conditioning approximation, finishes fast and then never improves. Frequency simulation crawls its 1/√M slope, and ignoring the correlation never arrives at all.

Vertical axis: total-variation distance to the lattice answer (log scale). Horizontal axis: wall-clock compute spent by that method (log scale), measured live and excluding rendering. GHK here is the plain protocol: per-contestant fresh Cholesky of the difference covariance, sequential conditioning, pseudorandom draws, shares normalized. Mendell–Elston propagates truncated-normal moments analytically; its line is flat because its error is bias, not noise. On the dense ensembles all simulation-based arms floor at the small grammar-fit residual instead of zero: that visible gap is the honest boundary of the fitted approximation (largest for the AR(1) chain, whose locality structure is the one family the grammar serves worst).

The lattice number is the full all-contestant computation, including (for the dense rows) the in-browser eigenfit of the covariance to the race grammar. GHK and Mendell–Elston price one contestant at a time through that contestant's own difference distribution — the per-alternative structure is why their clocks start seconds late at large field sizes.