-
-
Notifications
You must be signed in to change notification settings - Fork 9
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
When to determine rank in dense pivoted QR? #514
Comments
As mentioned in #26410 there is some overlap there.
My approach would be to change the meaning of |
I'm with @KlausC on this. In my code I need a rank-revealing QR of a matrix that could be sparse or dense (not for solving a linear system; I need information from Q and R). |
Continues the discussion in JuliaLang/julia#26392. Currently, there is a difference between when the rank is determined in sparse and dense pivoted QR. For our LAPACK based dense pivoted QR, the rank is not determined as part of the factorization but instead as part of the least squares solver. In contrast, the SuiteSparse based sparse pivoted QR determines the rank as part of the factorization. As a consequence,
qrfact(SparseMatrixCSC)
takes a (currently undocumented, see https://github.com/JuliaLang/julia/issues/26592)tol
argument whereas the tolerance in the dense case is specified inldiv!
(also undocumented). Hence, the size ofF.R
will depend on the rank in the sparse case but not in the dense whereldiv!
will do the truncation ofR
.The questions is if we should move the rank determination to the factorization step in the dense case as well. This would also be consistent with pivoted Cholesky (i.e. LAPACK is inconsistent here.). In practice, it will require a minor non-disruptive modification of the
QRPivoted
structure but it will probably simplifyldiv!
a bit as well.The text was updated successfully, but these errors were encountered: