Repository navigation
Polish weakly joined clusters in the PowerMean soft covers - #105
Merged
Merged
Conversation
Codecov Report❌ Patch coverage is
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. 🚀 New features to boost your workflow:
|
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
force-pushed
the
teh/powermean-weakest-link
branch
from
October 28, 2026 18:53
71609f9 to
7b8bd52
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
maxpolishkeyword,shiftfield inPowerMeanStats, and a warning when the polish budget ends unsettled.Assisted-by: Claude Fable 5.1 noreply@anthropic.com