Skip to content

Update version number and julia_compat to 1.14 - #810

Merged
ViralBShah merged 2 commits into
mainfrom
vs/sparse-ver-1.14
Sep 10, 2026
Merged

ViralBShah merged 2 commits into
mainfrom
vs/sparse-ver-1.14

Conversation

@ViralBShah

Copy link
Copy Markdown
Member

No description provided.

ViralBShah and others added 2 commits September 9, 2026 20:27
`qr(A)' \ b` and `ldiv!(x, qr(A)', b)` now solve the underdetermined
system `A'x = b` for a tall `A`, returning the minimum-norm solution.
With `A[prow, pcol] == Q*R` we have `A' == Pcol*R'*Q'*Prow`, so the
solve is a forward substitution with `R'` followed by a multiplication
by `Q`, reusing the same permutations, workspace and lock as the
existing `ldiv!`. Free variables are zeroed to select the minimum-norm
solution, which also drops the equations that the leading rank block of
`R` cannot represent when `A` is rank deficient.

Wide `A` is rejected with the same `DimensionMismatch` that dense QR
throws, since solving the resulting overdetermined system needs a
factorization of `A'` rather than of `A`.

This also fixes `A' \ b` and `transpose(A) \ b` for non-square sparse
`A`, which routed through the missing method and threw a `MethodError`.

Fixes #656.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CSC6hQqcWDvAuvdkXJstBM
@codecov

codecov Bot commented Sep 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.07143% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 92.54%. Comparing base (023c1c3) to head (753d223).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
src/solvers/spqr.jl 91.07% 5 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #810   +/-   ##
=======================================
  Coverage   92.54%   92.54%           
=======================================
  Files          12       12           
  Lines        8503     8563   +60     
=======================================
+ Hits         7869     7925   +56     
- Misses        634      638    +4     

☔ 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 a248d20 into main Sep 10, 2026
10 checks passed
@ViralBShah
ViralBShah deleted the vs/sparse-ver-1.14 branch September 10, 2026 14:22
@KristofferC

Copy link
Copy Markdown
Member

Was the first commit here accidentally added? It doesn't seem to have anything to do with the PR title?

@ViralBShah

Copy link
Copy Markdown
Member Author

Yes, it seems like it. Some branches and state got messed up. I thought I had it straightened out.

@ViralBShah

Copy link
Copy Markdown
Member Author

The stray commit is the change from #804; the branch got based on it by mistake and the squash merge pulled it into main. #817 reverts the SPQR portion of the merge (keeping the version bump) so that #804 can go through review on its own.

@ViralBShah

Copy link
Copy Markdown
Member Author

Opened #818 to revert this commit outright (superseding #817). The version bump will be redone separately.

@ViralBShah

Copy link
Copy Markdown
Member Author

Correction: #817 is the one to look at. It reverts only the stray SPQR commit and keeps the version bump. #818 is closed.

ViralBShah added a commit that referenced this pull request Sep 11, 2026
#810 was meant to only bump the version and julia compat to 1.14, but it
was accidentally based on the branch of #804 and squash-merged with the
"Solve with the adjoint of a sparse QR factorization" change included
(see
#810 (comment)).
This reverts the `src/solvers/spqr.jl` and `test/spqr.jl` portion of
a248d20 so that #804 can be reviewed and merged on its own. The
`Project.toml` bump is kept.

Both files are restored byte-for-byte to their state before a248d20, and
`test/spqr.jl` passes locally on the 1.14-DEV build.

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

https://claude.ai/code/session_01RFzXKGsJuSogARQpDGipPr

Co-authored-by: Claude Fable 5.1 <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.

2 participants