-
Notifications
You must be signed in to change notification settings - Fork 22
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
P1673: Overloading of symmetric_matrix_rank_k_update and similar functions is ambiguous #134
Comments
Remove all overloads of `symmetric_matrix_rank_k_update` and `hermitian_matrix_rank_k_update` that do not take an `alpha` parameter. This prevents ambiguity between overloads that take `ExecutionPolicy&&` but not `alpha`, and overloads that take `alpha` but not `ExecutionPolicy&&`. This fixes kokkos/stdBLAS#134 .
The issue with the proposal should be fixed in R6 (PR ORNL/cpp-proposals-pub#186 ). I'll file a separate issue for the implementation. |
R6 was submitted with the overloads removed. However, per discussion with @crtrott , I'm leaving this issue open. We may want to bring back the overloads, if we can figure out how to constrain them (e.g., by saying that |
My PR #263 (merged today) fixes this in the implementation, and adds tests. |
@youyu3 observed that functions like
symmetric_matrix_rank_k_update
take all possible combinations of (ExecutionPolicy&&
or not,alpha
or not). Without further constraints onExecutionPolicy
, this makes calls to the function ambiguous.This is an issue in P1673 itself; we'll need some way to resolve this. The most straightforward way would be to require
alpha
unconditionally (even if it's always1.0
), and only overload onExecutionPolicy&&
.The text was updated successfully, but these errors were encountered: