Skip to content

lasso: give fresh S&P downloads a decade of headroom - #37

Merged
tschm merged 1 commit into
mainfrom
sp500-headroom
Oct 14, 2026
Merged

tschm merged 1 commit into
mainfrom
sp500-headroom

Conversation

@tschm

@tschm tschm commented Oct 14, 2026

Copy link
Copy Markdown
Member

Follow-up to #36. #36 was merged before this commit reached it.

A clean-clone reproduction, done the way the journal will do it (fresh clone, empty uv cache, uv run --locked, both data sets downloaded), compared every S&P corner. The test compares only every 10th. On that download the QP baseline's worst corner gap was 8.8e-10: inside #36's 1e-9 tolerance, but with little margin. The path's own KKT residual was 3.0e-12.

  • Test: the QP-gap tolerance is 1e-8 on downloads other than the note's snapshot. It stays 1e-10 on the snapshot.
  • Note: says the QP drifts by up to 9e-10 on two October 2026 downloads, and that the tests allow 1e-8 there.
  • Platform paragraph: tolerances are 1e-12 to 1e-9 on the note's data, and up to 1e-8 on fresh downloads.

From the same clean-clone run:

  • the Fama–French download matches the note byte for byte;
  • 14 tests pass;
  • all five figures are drawn;
  • every test-problem and Fama–French number matches the note.

🤖 Generated with Claude Code

A clean-clone reproduction (fresh uv cache, uv run --locked, both data
sets downloaded) compared every S&P corner rather than every 10th, and on
that download the QP baseline missed by up to 8.8e-10: inside the 1e-9
tolerance, but with little margin. The path's own KKT residual was 3.0e-12.
Allow 1e-8 on data that are not the snapshot (1e-10 on it, as before), and
say in the note that the QP drifts by up to 9e-10 and what the tests
allow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tschm
tschm merged commit 66862a6 into main Oct 14, 2026
5 checks passed
@tschm
tschm deleted the sp500-headroom branch October 14, 2026 13:49
tschm added a commit that referenced this pull request Oct 14, 2026
CI: #37 and #38 were merged within a minute, and #37's older build
finished publishing 23 seconds after #38's, so the paper and arxiv
branches went back to the older commit. The publish job now runs in one
concurrency group without cancelling, and a build that is no longer of
main's tip skips publishing, so the newest merge's files always win.

lasso.tex: the note uses British spelling throughout (optimisation,
factorisation, centred), so 'MIT licence', the noun. A spelling pass
found nothing else.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant