-
Notifications
You must be signed in to change notification settings - Fork 276
Sparse SVD #1566
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Sparse SVD #1566
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1566 +/- ##
==========================================
+ Coverage 77.01% 77.02% +0.01%
==========================================
Files 395 396 +1
Lines 63555 63683 +128
Branches 10365 10390 +25
==========================================
+ Hits 48944 49053 +109
- Misses 12171 12185 +14
- Partials 2440 2445 +5 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Pylint is complaining about "Possible unbalanced tuple unpacking". The source of the issue is that the function returns three variables, U, svals, and V, if m=n but it additionally returns a basis for the (left) null space if m!=n. There are multiple ways to make this warning go away, but I want some feedback about the return signature of the function. Should I always return the null space, or only if a specific option is included? |
My recommendation is to always return the same number of items from the function. We've been burned in the past with APIs that return different numbers of things based on arguments/options passed to the function. |
Summary/Motivation:
Presently, the
SVDToolbox
isn't widely utilized, in part because of the limited options for calculating the SVD. Scipy's dense SVD is time-consuming on problems larger than 1000x1000, while its sparse SVD does not work well to find the singular values of the smallest magnitude.Therefore, I've implemented a custom version of the SVD that is based on Rayleigh-Ritz iteration.
I'd appreciate testers for this method before we merge it.
Legal Acknowledgement
By contributing to this software project, I agree to the following terms and conditions for my contribution: