-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
A[c|t]_ldiv_B! specializations for UmfpackLU-StridedVecOrMat, less generalized linear indexing and meta-fu, take 2 #20055
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
Conversation
…combinations, without generalized linear indexing and meta-fu.
|
do you plan on reverting #20046 inside matt's branch to avoid conflicts then? |
Dropping my commits from that branch seems like the best course of action. (And done.) Thanks! |
|
Bump – this looks ready to go. |
|
My understanding was this turned out to be unnecessary for now, though the added test coverage is nice. And this refactoring would be useful if we decide to transition to only allowing exactly-1-or-N indexing in the future. |
|
I think we should do this anyway. It structures the code well although it was a little hard for me to read initially. |
| _Aq_ldiv_B!(X, lu, B, UMFPACK_A) | ||
| At_ldiv_B!{Tb<:Complex}(X::StridedVecOrMat{Tb}, lu::UmfpackLU{Float64}, B::StridedVecOrMat{Tb}) = | ||
| _Aq_ldiv_B!(X, lu, B, UMFPACK_At) | ||
| Ac_ldiv_B!{Tb<:Complex}(X::StridedVecOrMat{Tb}, lu::UmfpackLU{Float64}, B::StridedVecOrMat{Tb}) = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happens here if one input's a vector and the other a 1-column matrix? I think that would have worked before but doesn't now?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch! I believe you are correct. From brief inspection, covering the vector-colmat and colmat-vector cases would require four additional kernels. Would covering those cases justify the additional code complexity? Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if that functionality was being used anywhere, then might be a reason to prefer the old version
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Of course please feel welcome to revert this commit if so. (And if so, we should revive #20045 to retain the bug fix.) Thanks!
(This pull request is #20046, but instead targeting master rather than mb/deprecate-17440 per discussion elsewhere). Towards fixing some generalized linear indexing deprecation warnings in #20040, this pull request rewrites the
A[c|t]_ldiv_B[!]specializations forUmfpackLU-StridedVecOrMatcombinations, leveraging multiple dispatch to remove generalized linear indexing and meta-fu. This pull request also fixes the issue described in and integrates the tests from #20045. Best!