From 17f8e606388433aaf10009eccc63905dcba9ec8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Zuzek?= Date: Wed, 8 Mar 2023 10:57:21 +0100 Subject: [PATCH] Revert "fix infinite recursion crash on missing matrix_product overloads for transposed and scaled inputs #218" This reverts commit 098f6ef27e1e79a6634ea1f2ad6bffc91b3f506e. --- .../__p1673_bits/blas3_matrix_product.hpp | 47 +++++++------------ 1 file changed, 17 insertions(+), 30 deletions(-) diff --git a/include/experimental/__p1673_bits/blas3_matrix_product.hpp b/include/experimental/__p1673_bits/blas3_matrix_product.hpp index 4cff48e4..cb5c9795 100644 --- a/include/experimental/__p1673_bits/blas3_matrix_product.hpp +++ b/include/experimental/__p1673_bits/blas3_matrix_product.hpp @@ -368,6 +368,23 @@ constexpr bool extractConj(in_matrix_t A) template struct is_custom_matrix_product_avail : std::false_type {}; +template +struct is_custom_matrix_product_avail< + Exec, A_t, B_t, C_t, + std::enable_if_t< + std::is_void_v< + decltype( + matrix_product + (std::declval(), + std::declval(), + std::declval(), + std::declval())) + > + && !linalg::impl::is_inline_exec_v + > + > + : std::true_type{}; + template struct is_custom_matrix_product_with_update_avail : std::false_type {}; @@ -2089,36 +2106,6 @@ void hermitian_matrix_right_product( hermitian_matrix_right_product(std::experimental::linalg::impl::default_exec_t(), A, t, B, E, C); } -template -struct is_custom_matrix_product_avail< - Exec, A_t, B_t, C_t, - std::enable_if_t< - std::is_void_v< - decltype( - matrix_product( - std::declval(), - std::declval(), - std::declval(), - std::declval())) - > - && !std::is_same_v< // see #218 - decltype( - std::experimental::linalg::matrix_product( - std::declval(), - std::declval(), - std::declval(), - std::declval())), - decltype( - matrix_product( - std::declval(), - std::declval(), - std::declval(), - std::declval())) - > - && !linalg::impl::is_inline_exec_v - > - > - : std::true_type{}; } // end namespace linalg } // end inline namespace __p1673_version_0