From b875ed994eb917ec686018a733d2f20ca33133d0 Mon Sep 17 00:00:00 2001 From: Mark Hoemmen Date: Tue, 14 Dec 2021 19:21:46 -0700 Subject: [PATCH] P1673R6: Fix rank_k_update ambiguity 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 https://github.com/kokkos/stdBLAS/issues/134 . --- D1673/P1673.bs | 115 ++++++++----------------------------------------- 1 file changed, 19 insertions(+), 96 deletions(-) diff --git a/D1673/P1673.bs b/D1673/P1673.bs index 78b951b8..3c4446fe 100644 --- a/D1673/P1673.bs +++ b/D1673/P1673.bs @@ -232,6 +232,12 @@ Date: 2021-12-15 * Replace "Requires" with "Preconditions," per new wording guidelines. + * 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&&`. + # Purpose of this paper This paper proposes a C++ Standard Library dense linear algebra @@ -3704,22 +3710,6 @@ void triangular_matrix_right_product( // [linalg.alg.blas3.rank-k.syrk], // rank-k symmetric matrix update -template -void symmetric_matrix_rank_k_update( - in_matrix_1_t A, - inout_matrix_t C, - Triangle t); -template -void symmetric_matrix_rank_k_update( - ExecutionPolicy&& exec, - in_matrix_1_t A, - inout_matrix_t C, - Triangle t); template -void hermitian_matrix_rank_k_update( - in_matrix_1_t A, - inout_matrix_t C, - Triangle t); -template -void hermitian_matrix_rank_k_update( - ExecutionPolicy&& exec, - in_matrix_1_t A, - inout_matrix_t C, - Triangle t); template -void symmetric_matrix_rank_k_update( - in_matrix_1_t A, - inout_matrix_t C, - Triangle t); -template -void symmetric_matrix_rank_k_update( - ExecutionPolicy&& exec, - in_matrix_1_t A, - inout_matrix_t C, - Triangle t); template -void hermitian_matrix_rank_k_update( - in_matrix_1_t A, - inout_matrix_t C, - Triangle t); -template -void hermitian_matrix_rank_k_update( - ExecutionPolicy&& exec, - in_matrix_1_t A, - inout_matrix_t C, - Triangle t); template