Skip to content

Polish weakly joined clusters in the PowerMean soft covers - #105

Merged
timholy merged 1 commit into
mainfrom
teh/powermean-weakest-link
Oct 28, 2026
Merged

timholy merged 1 commit into
mainfrom
teh/powermean-weakest-link

Conversation

@timholy

@timholy timholy commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

Balancing rows and columns determines the log products across a cluster joined to the rest of the support only by entries of weight w to about max(tol, eps)/w, so rescaling by powers of two changed the products of the PowerMean soft covers by up to O(1) across the weakest joins. After the Newton steps converge, the solver now polishes those clusters by exact shifts over a hierarchy of weak joins, then re-checks the Newton test.

On four SuiteSparse Jacobians the products agree between presentations to 1e-13 or better at p = 1, 2, 4, 8; problems without weak joins pay one no-op pass. New: maxpolish keyword, shift field in PowerMeanStats, and a warning when the polish budget ends unsettled.

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

@codecov

codecov Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 95.95960% with 12 lines in your changes missing coverage. Please review.
✅ Project coverage is 98.31%. Comparing base (fdffce8) to head (7b8bd52).

Files with missing lines Patch % Lines
src/powermean_newton.jl 95.63% 12 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #105      +/-   ##
==========================================
- Coverage   98.40%   98.31%   -0.10%     
==========================================
  Files          25       25              
  Lines        7541     7824     +283     
==========================================
+ Hits         7421     7692     +271     
- Misses        120      132      +12     

☔ 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.

Balancing rows and columns determines the log products across a cluster
of rows and columns joined to the rest of the support only by entries of
weight w (r^p) to about max(tol, eps)/w, so rescaling A by exact powers of
two changed the products of the PowerMean soft covers by up to O(1) across
the weakest joins. After the Newton steps converge, the solver now
polishes the cover: clusters are the components of the entries above
thresholds spaced a factor of 10 apart in weight, and each cluster is
shifted to its exact 1-D minimizer over its joining entries, swept
Gauss-Seidel per level, finest first, alternating two hierarchies offset
by half a level. The Newton test is checked again afterwards, so the
returned cover still satisfies it. The asymmetric and symmetric solvers
share the polish through the double cover of the symmetric support.

On four SuiteSparse Jacobians the products now agree between presentations
to 1e-13 or better at p = 1, 2, 4, 8; on problems without weak joins the
polish is one no-op pass. `soft_cover` and `soft_symcover` gain
`maxpolish` (default 100) bounding the polish passes, and `PowerMeanStats`
gains `shift`, the largest cluster shift of the last pass, which reports
the residual when the budget runs out (with a warning).

Assisted-by: Claude Fable 5.1 <noreply@anthropic.com>
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
@timholy
timholy force-pushed the teh/powermean-weakest-link branch from 71609f9 to 7b8bd52 Compare October 28, 2026 18:53
@timholy timholy changed the title Multilevel Newton stage for the PowerMean soft covers Polish weakly joined clusters in the PowerMean soft covers Oct 28, 2026
@timholy
timholy merged commit dcaf2eb into main Oct 28, 2026
5 of 7 checks passed
@timholy
timholy deleted the teh/powermean-weakest-link branch October 28, 2026 19:19
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