Skip to content

Make the symmetric heuristic start scale-covariant - #53

Merged
timholy merged 3 commits into
mainfrom
teh/covariant-sym-init
Sep 4, 2026
Merged

Make the symmetric heuristic start scale-covariant#53
timholy merged 3 commits into
mainfrom
teh/covariant-sym-init

Conversation

@timholy

@timholy timholy commented Sep 3, 2026

Copy link
Copy Markdown
Member

The unconstrained AbsLog{2} start for symcover now fits the diagonally normalized entries |A_ij|/sqrt(|A_ii A_jj|) and rescales by sqrt|A_ii|. The start, and hence the whole heuristic, is scale-covariant whenever every component of the support contains a nonzero diagonal entry.

Assisted-by: Claude Fable 5.1 noreply@anthropic.com

@codecov

codecov Bot commented Sep 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.92%. Comparing base (03d948c) to head (ff07b71).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #53   +/-   ##
=======================================
  Coverage   98.91%   98.92%           
=======================================
  Files          15       15           
  Lines        3785     3805   +20     
=======================================
+ Hits         3744     3764   +20     
  Misses         41       41           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

The unconstrained AbsLog{2} start for symcover now fits the diagonally
normalized entries |A_ij|/sqrt(|A_ii A_jj|) and rescales by sqrt|A_ii|.
The start, and hence the whole heuristic, is scale-covariant whenever
every component of the support contains a nonzero diagonal entry.

Assisted-by: Claude Fable 5.1 <noreply@anthropic.com>
The :leaveout initializer now reruns the unconstrained AbsLog{2} kernel
with the dropped entry excluded from the support iterator, instead of
polishing the full-support start with Gauss-Seidel sweeps. Excluding
the entry also removes it from the diagonal reference, so a dropped
diagonal entry's row takes its reference from its neighbors, and the
start equals the :geomean start of the matrix with that entry zeroed.

Assisted-by: Claude Fable 5.1 <noreply@anthropic.com>
@timholy
timholy force-pushed the teh/covariant-sym-init branch from 65f5580 to 71a3c4c Compare September 4, 2026 09:52
The count of inner solves on the dense exact path varies by a few across
machines with BLAS roundoff; on one CI runner the symmetric 60x60 case
took 35. Give the symmetric bound the same kind of margin the
nonsymmetric bound already has.

Assisted-by: Claude Fable 5.1 <noreply@anthropic.com>
@timholy
timholy merged commit ca05d67 into main Sep 4, 2026
3 checks passed
@timholy
timholy deleted the teh/covariant-sym-init branch September 4, 2026 12:21
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