Implement ldiv!() for QRSparse#676
Open
JamesWrigley wants to merge 2 commits intoJuliaSparse:mainfrom
Open
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #676 +/- ##
==========================================
+ Coverage 84.19% 84.23% +0.04%
==========================================
Files 12 12
Lines 9313 9339 +26
==========================================
+ Hits 7841 7867 +26
Misses 1472 1472 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Member
|
The asymmetry between UMFPACK and SPQR here on thread safety is concerning, but otherwise LGTM. A 100 x 10 sparse matrix is incredibly small so I'm not sure the 15% hit here is really representative. |
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.
I originally was going to implement a separate workspace like how FastLapackInterface.jl does it, but seeing as there's already a
QRSparsetype that kinda functions as a workspace already I decided it made more sense to re-use that. ReusingQRSparseis also consistent with the way thatUmfpackLUholds a workspace. UnlikeUmfpackLUI did not add a lock because for the example in theworkspace reusetest it added a ~15% overhead. Instead the docstring clearly warns that usingQRSparsewithldiv!()is not threadsafe and tells users to make an explicit copy.Preallocating
Wremoved most of the allocations, and taking a view ofF.Rremoved the other big one. Benchmarks:Fixes #242. Written with help from Claude 🤖