Skip to content

Document that sparse cond of a singular matrix returns Inf - #1130

Merged
ViralBShah merged 1 commit into
mainfrom
vs/cond-docs-singular
Oct 27, 2026
Merged

ViralBShah merged 1 commit into
mainfrom
vs/cond-docs-singular

Conversation

@ViralBShah

Copy link
Copy Markdown
Member

#1126 made sparse cond return Inf for a singular matrix, but its docstring does not say so, nor that rounding can hide the singularity. Raised in the post-merge review of #1126.

The material is the behaviour on main:

julia> cond(sparse([1.0 2; 3 6]), 1)
Inf

julia> A = [1.0 2 3; 4 5 6; 7 8 9];   # singular

julia> cond(sparse(A), 1), cond(A, 1)
(1.0808639105689187e17, Inf)

The UMFPACK LU of the second matrix ends with a pivot that rounding leaves nonzero, while LAPACK's partial pivoting meets an exact zero, so the docstring says that a finite but very large result can still mean a singular matrix, and that sparse and dense can disagree on which case they report.

Written by Claude Code.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov

codecov Bot commented Oct 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.70%. Comparing base (2bef1fd) to head (96793cd).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1130   +/-   ##
=======================================
  Coverage   94.70%   94.70%           
=======================================
  Files          16       16           
  Lines       10423    10423           
=======================================
  Hits         9871     9871           
  Misses        552      552           

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

@ViralBShah
ViralBShah merged commit 5b98f3c into main Oct 27, 2026
12 checks passed
@ViralBShah
ViralBShah deleted the vs/cond-docs-singular branch October 27, 2026 00:10
@ViralBShah ViralBShah added backport 1.14 backport 1.13 Change should be backported to release-1.13 labels Oct 27, 2026
@ViralBShah ViralBShah mentioned this pull request Oct 27, 2026
30 tasks done
ViralBShah added a commit that referenced this pull request Oct 27, 2026
Backports of the merged PRs labelled `backport 1.14`, cherry-picked with
`-x` in the order they were merged on `main`. `release-1.14` starts at
b0aa455 (#1104), the commit JuliaLang/julia's `release-1.14` pins, and
every PR merged on `main` since then is labelled, so this branch's tree
is identical to `main`'s at 9bfad27.

- [x] #1105
- [x] #1011
- [x] #1107
- [x] #1108
- [x] #1110
- [x] #1111
- [x] #1114
- [x] #1112
- [x] #1115
- [x] #1117
- [x] #1118
- [x] #1109
- [x] #1113
- [x] #1122
- [x] #1123
- [x] #1120
- [x] #1124
- [x] #1125
- [x] #1116
- [x] #1121
- [x] #1126
- [x] #1128
- [x] #1130
- [x] #1131
- [x] #1119
- [x] #1133
- [x] #1127
- [x] #1135
- [x] #1134
- [x] #1137

#1137 removes the first-call compile time that #1128 added, which the
TTFX check flagged on this PR.

#1132 merged into the branch of #1131 and is part of its commit.

Not bug fixes: #1011 adds a deprecation, #1109 changes the `sprand`
value stream for a value function, #1113 changes the result shape of
`SparseMatrixCSC` of a vector view, and #1119, #1133, #1134 and #1135
add methods for views. They are included because they are labelled and
1.14 is not released yet.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com>
@ViralBShah ViralBShah removed the backport 1.13 Change should be backported to release-1.13 label Oct 27, 2026
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