-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Replace Val-types by singleton types in lu
and qr
#40623
Conversation
Instead of forcing more aggressive inlining, it might be better to use just |
I didn't know about it, I'll try that out. |
This is ready for a first rough "review". Currently, this is "just" adding new accepted keyword values. Would we actively deprecate the old |
Maybe we create a label - |
Deprecations are already off by default, so we can make something a deprecation already. For things that we want to change before 2.0, that's what the 2.0 milestone is for. I also keep a document with a list of things (linking to issues where appropriate). That's handy because sometimes a change is too small or vague to create an issue for but we still want to remember it. |
This comment has been minimized.
This comment has been minimized.
I have now updated the tests and deprecated the |
Tests pass, this is ready for review. |
Anyone who wants to take a look? Since the old way of calling the decomposition functions continues to work, I guess the main issue to check is whether the NEWS entry is helpful and explicit enough. |
This is generally a great change that makes it much clearer which pivoting strategy is being used. However, I'm wondering if we should use empty structs instead of symbols here since we already to structs for selecting algorithm in SVD, ref julia/stdlib/LinearAlgebra/src/LinearAlgebra.jl Lines 163 to 165 in bb5b98e
|
That sounds like a good idea, since that no longer depends on constant propagation. |
lu
and qr
lu
and qr
Perhaps some input/feedback on the naming would be helpful. The |
It's actually one of the main issues with using structs: it seems excessive to export them when they are only used for dispatch in a few functions but it also feels wrong to qualify them. I think I prefer for exporting though. I think the names are okay but I generally prefer to write out the words at the cost of some slightly longer names, i.e. something like |
For the time being, I went with |
Co-authored-by: Andreas Noack <andreas@noack.dk>
Gentle bump. |
Sorry for interferring in this discussion, but because these changes (especially those in |
This PR only renames |
Ref JuliaLang/julia#40623 Co-authored-by: Lyndon White <oxinabox@ucc.asn.au>
Ref JuliaLang/julia#40623 Co-authored-by: Lyndon White <oxinabox@ucc.asn.au>
Co-authored-by: Andreas Noack <andreas@noack.dk>
Co-authored-by: Andreas Noack <andreas@noack.dk>
What about |
I was wondering the same recently after getting lost in the lu/cholesky/qr files when I still saw some |
It's "complete pivoting" I believe this is equivalent to (I have a need for |
Actually It pivots the largest value to the diagonal, so maybe that's |
This is a rebase of #25303. The first commit doesn't change the tests functionally and thereby proves that this is non-breaking. Seems like all
@inline
s in theqr
code are necessary for type stability. If we go for it, we'll need tests for the new argument and a NEWS announcement.Closes #25303, closes JuliaLang/LinearAlgebra.jl#476.