diff --git a/include/experimental/__p1673_bits/linalg_execpolicy_mapper.hpp b/include/experimental/__p1673_bits/linalg_execpolicy_mapper.hpp index 38b2cf2a..5f79d99c 100644 --- a/include/experimental/__p1673_bits/linalg_execpolicy_mapper.hpp +++ b/include/experimental/__p1673_bits/linalg_execpolicy_mapper.hpp @@ -119,7 +119,7 @@ inline auto map_execpolicy_with_check = [](auto&& policy) { using input_type = remove_cvref_t; using return_type = remove_cvref_t(policy)))>; // Only inline_exec_t is allowed to map to itself. - using inline_type = impl::inline_exec_t; + using inline_type = inline_exec_t; static_assert(std::is_same_v || ! std::is_same_v, "Specializations of execpolicy_mapper must return " diff --git a/tests/kokkos-based/dot_kokkos.cpp b/tests/kokkos-based/dot_kokkos.cpp index f90443e4..0b913de1 100644 --- a/tests/kokkos-based/dot_kokkos.cpp +++ b/tests/kokkos-based/dot_kokkos.cpp @@ -21,7 +21,7 @@ auto dot_gold_solution(x_t x, y_t y, T initValue, bool useInit) template void kokkos_blas1_dot_test_impl(x_t x, y_t y, T initValue, bool useInit) { - namespace stdla = std::experimental::linalg; + namespace stdla = MDSPAN_IMPL_STANDARD_NAMESPACE::MDSPAN_IMPL_PROPOSED_NAMESPACE::linalg; using value_type = typename x_t::value_type; const std::size_t extent = x.extent(0); @@ -35,10 +35,10 @@ void kokkos_blas1_dot_test_impl(x_t x, y_t y, T initValue, bool useInit) T result = {}; if (useInit){ - result = stdla::dot(KokkosKernelsSTD::kokkos_exec<>(), + result = stdla::dot(Kokkos::DefaultExecutionSpace(), x, y, initValue); }else{ - result = stdla::dot(KokkosKernelsSTD::kokkos_exec<>(), + result = stdla::dot(Kokkos::DefaultExecutionSpace(), x, y); } diff --git a/tests/kokkos-based/gtest_fixtures.hpp b/tests/kokkos-based/gtest_fixtures.hpp index 54eebc9d..fd18cf46 100644 --- a/tests/kokkos-based/gtest_fixtures.hpp +++ b/tests/kokkos-based/gtest_fixtures.hpp @@ -18,17 +18,18 @@ #ifndef LINALG_TESTS_KOKKOS_BLAS1_FIXTURES_HPP_ #define LINALG_TESTS_KOKKOS_BLAS1_FIXTURES_HPP_ +#include #include -#include #include #include "gtest/gtest.h" #include // it is fine to put these here even if this // is a header since this is limited to tests -using std::experimental::mdspan; -using std::experimental::extents; -using std::experimental::dynamic_extent; +using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; +using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; +using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; +using MDSPAN_IMPL_STANDARD_NAMESPACE::MDSPAN_IMPL_PROPOSED_NAMESPACE::dims; // // helper class for generating random numbers @@ -170,7 +171,7 @@ class _blas1_signed_fixture : public ::testing::Test Kokkos::View y_view; Kokkos::View z_view; - using mdspan_t = mdspan>; + using mdspan_t = mdspan>; mdspan_t x; mdspan_t y; mdspan_t z; @@ -292,8 +293,8 @@ class _blas2_signed_fixture : public ::testing::Test Kokkos::View y_e0_view; Kokkos::View z_e0_view; - using mdspan_r1_t = mdspan>; - using mdspan_r2_t = mdspan>; + using mdspan_r1_t = mdspan>; + using mdspan_r2_t = mdspan>; mdspan_r2_t A_e0e1; //e0 x e1 mdspan_r2_t B_e0e1; //e0 x e1 mdspan_r2_t A_sym_e0; //e0 x e0, symmetric diff --git a/tests/kokkos-based/helpers.hpp b/tests/kokkos-based/helpers.hpp index d8bb04d5..18780058 100644 --- a/tests/kokkos-based/helpers.hpp +++ b/tests/kokkos-based/helpers.hpp @@ -18,8 +18,8 @@ #ifndef LINALG_TESTS_KOKKOS_HELPERS_HPP_ #define LINALG_TESTS_KOKKOS_HELPERS_HPP_ +#include #include -#include #include #if KOKKOS_VERSION < 30699 @@ -92,9 +92,9 @@ mdspan_t make_mdspan(ValueType *data, std::size_t ext0, std::size_t ext1) { template void set(A_t A, ValueType value) { - using size_type = typename std::experimental::extents<>::size_type; - for (size_type i = 0; i < A.extent(0); ++i) { - for (size_type j = 0; j < A.extent(1); ++j) { + using index_type = typename MDSPAN_IMPL_STANDARD_NAMESPACE::extents::index_type; + for (index_type i = 0; i < A.extent(0); ++i) { + for (index_type j = 0; j < A.extent(1); ++j) { A(i, j) = value; } } @@ -106,13 +106,13 @@ template -auto abs_max(mdspan, LayoutPolicy, AccessorPolicy> v) +auto abs_max(mdspan, LayoutPolicy, AccessorPolicy> v) { const auto size = v.extent(0); if (size == 0) { throw std::runtime_error("abs_max() requires non-empty input"); } - const auto i = std::experimental::linalg::vector_idx_abs_max(v); + const auto i = MDSPAN_IMPL_STANDARD_NAMESPACE::MDSPAN_IMPL_PROPOSED_NAMESPACE::linalg::vector_idx_abs_max(v); if (i >= size) { // shouldn't happen: empty case is handled above throw std::runtime_error("Fatal: vector_idx_abs_max() failed"); } @@ -124,7 +124,7 @@ template -auto abs_max(mdspan, LayoutPolicy, AccessorPolicy> A) +auto abs_max(mdspan, LayoutPolicy, AccessorPolicy> A) { const auto ext0 = A.extent(0); const auto ext1 = A.extent(1); @@ -170,8 +170,8 @@ template bool is_same_vector( - mdspan, LayoutPolicy1, AccessorPolicy1> v1, - mdspan, LayoutPolicy2, AccessorPolicy2> v2) + mdspan, LayoutPolicy1, AccessorPolicy1> v1, + mdspan, LayoutPolicy2, AccessorPolicy2> v2) { const auto size = v1.extent(0); if (size != v2.extent(0)) @@ -196,7 +196,7 @@ template bool is_same_vector( - mdspan, LayoutPolicy, AccessorPolicy> v1, + mdspan, LayoutPolicy, AccessorPolicy> v1, const std::vector &v2) { return is_same_vector(v1, make_mdspan(v2)); @@ -209,7 +209,7 @@ template bool is_same_vector( const std::vector &v1, - mdspan, LayoutPolicy, AccessorPolicy> v2) + mdspan, LayoutPolicy, AccessorPolicy> v2) { return is_same_vector(v2, v1); } @@ -231,8 +231,8 @@ template auto vector_abs_diff( - mdspan, LayoutPolicy1, AccessorPolicy1> v1, - mdspan, LayoutPolicy2, AccessorPolicy2> v2) + mdspan, LayoutPolicy1, AccessorPolicy1> v1, + mdspan, LayoutPolicy2, AccessorPolicy2> v2) { const auto v1_view = KokkosKernelsSTD::Impl::mdspan_to_view(v1); const auto v2_view = KokkosKernelsSTD::Impl::mdspan_to_view(v2); @@ -260,7 +260,7 @@ template auto vector_abs_diff( - mdspan, LayoutPolicy, AccessorPolicy> v1, + mdspan, LayoutPolicy, AccessorPolicy> v1, const std::vector &v2) { return vector_abs_diff(v1, make_mdspan(v2)); @@ -273,7 +273,7 @@ template auto vector_abs_diff( const std::vector &v1, - mdspan, LayoutPolicy, AccessorPolicy> v2) + mdspan, LayoutPolicy, AccessorPolicy> v2) { return vector_abs_diff(v2, v1); } @@ -295,8 +295,8 @@ template auto vector_rel_diff( - mdspan, LayoutPolicy1, AccessorPolicy1> v1, - mdspan, LayoutPolicy2, AccessorPolicy2> v2) + mdspan, LayoutPolicy1, AccessorPolicy1> v1, + mdspan, LayoutPolicy2, AccessorPolicy2> v2) { using RetType = decltype(std::abs(v1[0] - v2[0])); const auto size = v1.extent(0); @@ -317,7 +317,7 @@ template auto vector_rel_diff( - mdspan, LayoutPolicy, AccessorPolicy> v1, + mdspan, LayoutPolicy, AccessorPolicy> v1, const std::vector &v2) { return vector_rel_diff(v1, make_mdspan(v2)); @@ -330,7 +330,7 @@ template auto vector_rel_diff( const std::vector &v1, - mdspan, LayoutPolicy, AccessorPolicy> v2) + mdspan, LayoutPolicy, AccessorPolicy> v2) { return vector_rel_diff(v2, v1); } @@ -355,8 +355,8 @@ template bool is_same_matrix( - mdspan, LayoutPolicy1, AccessorPolicy1> A, - mdspan, LayoutPolicy2, AccessorPolicy2> B) + mdspan, LayoutPolicy1, AccessorPolicy1> A, + mdspan, LayoutPolicy2, AccessorPolicy2> B) { const auto ext0 = A.extent(0); const auto ext1 = A.extent(1); @@ -384,7 +384,7 @@ template bool is_same_matrix( - mdspan, LayoutPolicy1, AccessorPolicy1> A, + mdspan, LayoutPolicy1, AccessorPolicy1> A, const std::vector &B) { return is_same_matrix(A, make_mdspan(B.data(), A.extent(0), A.extent(1))); @@ -396,7 +396,7 @@ template bool is_same_matrix(const std::vector &A, - mdspan, LayoutPolicy1, AccessorPolicy1> B) + mdspan, LayoutPolicy1, AccessorPolicy1> B) { return is_same_matrix(make_mdspan(A.data(), B.extent(0), B.extent(1)), B); } @@ -412,8 +412,8 @@ template auto matrix_abs_diff( - mdspan, LayoutPolicy1, AccessorPolicy1> A, - mdspan, LayoutPolicy2, AccessorPolicy2> B) + mdspan, LayoutPolicy1, AccessorPolicy1> A, + mdspan, LayoutPolicy2, AccessorPolicy2> B) { const auto A_view = KokkosKernelsSTD::Impl::mdspan_to_view(A); const auto B_view = KokkosKernelsSTD::Impl::mdspan_to_view(B); @@ -448,8 +448,8 @@ template auto matrix_rel_diff( - mdspan, LayoutPolicy1, AccessorPolicy1> A, - mdspan, LayoutPolicy2, AccessorPolicy2> B) + mdspan, LayoutPolicy1, AccessorPolicy1> A, + mdspan, LayoutPolicy2, AccessorPolicy2> B) { using RetType = decltype(std::abs(A(0, 0) - B(0, 0))); const auto ext0 = A.extent(0); diff --git a/tests/kokkos-based/mdspan_to_view.cpp b/tests/kokkos-based/mdspan_to_view.cpp index 3f13ff45..09b4be80 100644 --- a/tests/kokkos-based/mdspan_to_view.cpp +++ b/tests/kokkos-based/mdspan_to_view.cpp @@ -11,14 +11,15 @@ void expect_shallow_copy(MDSpanType mdsp, KViewType kv) template void mdspan_to_view_test_impl() { - using std::experimental::mdspan; - using std::experimental::extents; - using std::experimental::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::MDSPAN_IMPL_PROPOSED_NAMESPACE::dims; // rank1, non-const { std::vector a(5); - using mdspan_t = mdspan>; + using mdspan_t = mdspan>; mdspan_t mdsp(a.data(), a.size()); auto kv = KokkosKernelsSTD::Impl::mdspan_to_view(mdsp); @@ -32,7 +33,7 @@ void mdspan_to_view_test_impl() // rank1, const { std::vector a(5); - using mdspan_t = mdspan>; + using mdspan_t = mdspan>; mdspan_t mdsp(a.data(), a.size()); auto kv = KokkosKernelsSTD::Impl::mdspan_to_view(mdsp); @@ -46,7 +47,7 @@ void mdspan_to_view_test_impl() // rank2, non-const { std::vector a(12); - using mdspan_t = mdspan>; + using mdspan_t = mdspan>; mdspan_t mdsp(a.data(), 3, 4); auto kv = KokkosKernelsSTD::Impl::mdspan_to_view(mdsp); @@ -61,7 +62,7 @@ void mdspan_to_view_test_impl() // rank2, const { std::vector a(12); - using mdspan_t = mdspan>; + using mdspan_t = mdspan>; mdspan_t mdsp(a.data(), 3, 4); auto kv = KokkosKernelsSTD::Impl::mdspan_to_view(mdsp); @@ -94,21 +95,22 @@ TEST(mdspan_to_view, for_complex_double){ template void transposed_mdspan_to_view_test_impl() { - using std::experimental::mdspan; - using std::experimental::extents; - using std::experimental::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::MDSPAN_IMPL_PROPOSED_NAMESPACE::dims; - using lr_t = std::experimental::layout_right; - using ll_t = std::experimental::layout_left; + using lr_t = Kokkos::layout_right; + using ll_t = Kokkos::layout_left; std::vector a(12); std::iota(a.begin(), a.end(), 0); { // mdspan is layout right - using mdspan_t = mdspan, lr_t>; + using mdspan_t = mdspan, lr_t>; mdspan_t mdsp(a.data(), 3, 4); - auto mdsp_T = std::experimental::linalg::transposed(mdsp); + auto mdsp_T = MDSPAN_IMPL_STANDARD_NAMESPACE::MDSPAN_IMPL_PROPOSED_NAMESPACE::linalg::transposed(mdsp); auto kv = KokkosKernelsSTD::Impl::mdspan_to_view(mdsp_T); using kv_type = decltype(kv); @@ -117,9 +119,9 @@ void transposed_mdspan_to_view_test_impl() // the conversion from transposed() to view basically discards the transposition // so behaves as if we were tranposing the nested mspan directly - static_assert(std::is_same_v); - EXPECT_TRUE(kv.extent(0) == 3); - EXPECT_TRUE(kv.extent(1) == 4); + static_assert(std::is_same_v); + EXPECT_TRUE(kv.extent(0) == 4); + EXPECT_TRUE(kv.extent(1) == 3); expect_shallow_copy(mdsp, kv); int count=0; @@ -134,9 +136,9 @@ void transposed_mdspan_to_view_test_impl() { // mdspan is layout left - using mdspan_t = mdspan, ll_t>; + using mdspan_t = mdspan, ll_t>; mdspan_t mdsp(a.data(), 3, 4); - auto mdsp_T = std::experimental::linalg::transposed(mdsp); + auto mdsp_T = MDSPAN_IMPL_STANDARD_NAMESPACE::MDSPAN_IMPL_PROPOSED_NAMESPACE::linalg::transposed(mdsp); auto kv = KokkosKernelsSTD::Impl::mdspan_to_view(mdsp_T); using kv_type = decltype(kv); @@ -145,9 +147,9 @@ void transposed_mdspan_to_view_test_impl() // the conversion from transposed() to view basically discards the transposition // so behaves as if we were tranposing the nested mspan directly - static_assert(std::is_same_v); - EXPECT_TRUE(kv.extent(0) == 3); - EXPECT_TRUE(kv.extent(1) == 4); + static_assert(std::is_same_v); + EXPECT_TRUE(kv.extent(0) == 4); + EXPECT_TRUE(kv.extent(1) == 3); expect_shallow_copy(mdsp, kv); int count=0; diff --git a/tests/native/conjugated.cpp b/tests/native/conjugated.cpp index 50f0fe2b..f7ac1016 100644 --- a/tests/native/conjugated.cpp +++ b/tests/native/conjugated.cpp @@ -290,10 +290,6 @@ namespace { { using MDSPAN_IMPL_STANDARD_NAMESPACE :: MDSPAN_IMPL_PROPOSED_NAMESPACE :: linalg::impl::has_conj; - static_assert(! has_conj::value); - static_assert(! has_conj< ::std::size_t>::value); - static_assert(! has_conj::value); - static_assert(! has_conj::value); static_assert(! has_conj::value); static_assert(has_conj>::value); diff --git a/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/blas1_dot_kk.hpp b/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/blas1_dot_kk.hpp index 4b1b9885..6a9bc88b 100644 --- a/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/blas1_dot_kk.hpp +++ b/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/blas1_dot_kk.hpp @@ -11,24 +11,24 @@ namespace KokkosKernelsSTD { template::size_type ext_x, + size_t ext_x, class Layout_x, class ElementType_y, - std::experimental::extents<>::size_type ext_y, + size_t ext_y, class Layout_y, class Scalar> Scalar dot(kokkos_exec /*kexe*/, - std::experimental::mdspan< + Kokkos::mdspan< ElementType_x, - std::experimental::extents, + Kokkos::extents, Layout_x, - std::experimental::default_accessor + Kokkos::default_accessor > x, - std::experimental::mdspan< + Kokkos::mdspan< ElementType_y, - std::experimental::extents, + Kokkos::extents, Layout_y, - std::experimental::default_accessor + Kokkos::default_accessor > y, Scalar init) { @@ -42,8 +42,10 @@ Scalar dot(kokkos_exec /*kexe*/, Impl::signal_kokkos_impl_called("dot"); - auto x_view = Impl::mdspan_to_view(x); - auto y_view = Impl::mdspan_to_view(y); + // Note lbv 21-05-25: we probably want to specify + // the views further based on Layout_{x,y} + Kokkos::View x_view(x); + Kokkos::View y_view(y); // This overload is for the default_accessor (see the args above). // We cannot use KokkosBlas::dot here because it would automatically @@ -69,26 +71,25 @@ Scalar dot(kokkos_exec /*kexe*/, template::size_type ext_x, + size_t ext_x, class Layout_x, class ElementType_y, - std::experimental::extents<>::size_type ext_y, + size_t ext_y, class Layout_y, class Scalar> Scalar dot(kokkos_exec, - std::experimental::mdspan< + Kokkos::mdspan< ElementType_x, - std::experimental::extents, + Kokkos::extents, Layout_x, - std::experimental::linalg::conjugated_accessor< - std::experimental::default_accessor, ElementType_x - > + Kokkos::Experimental::linalg::conjugated_accessor< + Kokkos::default_accessor> > x, - std::experimental::mdspan< + Kokkos::mdspan< ElementType_y, - std::experimental::extents, + Kokkos::extents, Layout_y, - std::experimental::default_accessor + Kokkos::default_accessor > y, Scalar init) { @@ -104,6 +105,9 @@ Scalar dot(kokkos_exec, auto x_view = Impl::mdspan_to_view(x); auto y_view = Impl::mdspan_to_view(y); + // Note lbv 21-05-25: we could do something like this instead? + // Kokkos::View x_view(x); + // Kokkos::View y_view(y); // this overload is for x with conjugated (with nested default) accessor // so can call KokkosBlas::dot because it automatically conjugates x diff --git a/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/exec_policy_wrapper_kk.hpp b/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/exec_policy_wrapper_kk.hpp index 3ceb9f0e..6cabe535 100644 --- a/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/exec_policy_wrapper_kk.hpp +++ b/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/exec_policy_wrapper_kk.hpp @@ -14,11 +14,11 @@ auto execpolicy_mapper(kokkos_exec) { return kokkos_exec() // Remap standard execution policies to Kokkos #ifdef LINALG_ENABLE_KOKKOS_DEFAULT -namespace std { -namespace experimental { +namespace MDSPAN_IMPL_STANDARD_NAMESPACE { +namespace MDSPAN_IMPL_PROPOSED_NAMESPACE { inline namespace __p1673_version_0 { namespace linalg { - auto execpolicy_mapper(std::experimental::linalg::impl::default_exec_t) { return KokkosKernelsSTD::kokkos_exec<>(); } + auto execpolicy_mapper(impl::default_exec_t) { return KokkosKernelsSTD::kokkos_exec<>(); } auto execpolicy_mapper(std::execution::parallel_policy) { return KokkosKernelsSTD::kokkos_exec<>(); } auto execpolicy_mapper(std::execution::parallel_unsequenced_policy) { return KokkosKernelsSTD::kokkos_exec<>(); } } diff --git a/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/mdspan_to_view_mapper_kk.hpp b/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/mdspan_to_view_mapper_kk.hpp index 8cdf2e0a..f432a500 100644 --- a/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/mdspan_to_view_mapper_kk.hpp +++ b/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/mdspan_to_view_mapper_kk.hpp @@ -12,12 +12,12 @@ template struct LayoutMapper; template<> -struct LayoutMapper { +struct LayoutMapper { using type = Kokkos::LayoutLeft; }; template<> -struct LayoutMapper { +struct LayoutMapper { using type = Kokkos::LayoutRight; }; @@ -54,12 +54,12 @@ auto to_kokkos_pointer(const std::complex* p) { // template< class ElementType, - std::experimental::extents<>::size_type ext, + Kokkos::extents::size_type ext, class Layout, class Accessor> -auto mdspan_to_view(std::experimental::mdspan< +auto mdspan_to_view(Kokkos::mdspan< ElementType, - std::experimental::extents, + Kokkos::extents, Layout, Accessor > a) @@ -70,13 +70,13 @@ auto mdspan_to_view(std::experimental::mdspan< template< class ElementType, - std::experimental::extents<>::size_type ext0, - std::experimental::extents<>::size_type ext1, + Kokkos::extents::size_type ext0, + Kokkos::extents::size_type ext1, class Layout, class Accessor> -auto mdspan_to_view(std::experimental::mdspan< +auto mdspan_to_view(Kokkos::mdspan< ElementType, - std::experimental::extents, + Kokkos::extents, Layout, Accessor > a) @@ -98,7 +98,7 @@ auto mdspan_to_view(std::experimental::mdspan< Suppose that one has: A, B, C : mdspans and wants to do: C = A^T B One would do this by calling: - AT = std::experimental::linalg::transposed(A) + AT = MDSPAN_IMPL_STANDARD_NAMESPACE::MDSPAN_IMPL_PROPOSED_NAMESPACE::linalg::transposed(A) matrix_product(kokkos_exec<>, AT, B, C) Our Kokkos impl would then see: @@ -124,14 +124,14 @@ auto mdspan_to_view(std::experimental::mdspan< */ template< class ElementType, - std::experimental::extents<>::size_type ext0, - std::experimental::extents<>::size_type ext1, + Kokkos::extents::size_type ext0, + Kokkos::extents::size_type ext1, class NestedLayout, class Accessor> -auto mdspan_to_view(std::experimental::mdspan< +auto mdspan_to_view(Kokkos::mdspan< ElementType, - std::experimental::extents, - std::experimental::linalg::layout_transpose, + Kokkos::extents, + MDSPAN_IMPL_STANDARD_NAMESPACE::MDSPAN_IMPL_PROPOSED_NAMESPACE::linalg::layout_transpose, Accessor > a) { diff --git a/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/static_extent_match.hpp b/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/static_extent_match.hpp index 457c5ca2..34d8d6d8 100644 --- a/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/static_extent_match.hpp +++ b/tpl-implementations/include/experimental/__p1673_bits/kokkos-kernels/static_extent_match.hpp @@ -24,8 +24,10 @@ namespace Impl { template constexpr bool static_extent_match(size_type extent1, size_type extent2) { - return extent1 == std::experimental::dynamic_extent || - extent2 == std::experimental::dynamic_extent || + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + + return extent1 == dynamic_extent || + extent2 == dynamic_extent || extent1 == extent2; } diff --git a/tpl-implementations/include/experimental/linalg_kokkoskernels b/tpl-implementations/include/experimental/linalg_kokkoskernels index 468780f6..e4dd296b 100644 --- a/tpl-implementations/include/experimental/linalg_kokkoskernels +++ b/tpl-implementations/include/experimental/linalg_kokkoskernels @@ -1,34 +1,34 @@ #pragma once -#include +#include #include #include "__p1673_bits/kokkos-kernels/mdspan_to_view_mapper_kk.hpp" #include "__p1673_bits/kokkos-kernels/kokkos_conjugate.hpp" // blas1 (according to P1673) #include "__p1673_bits/kokkos-kernels/blas1_dot_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas1_add_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas1_scale_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas1_idx_abs_max_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas1_vector_norm2_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas1_vector_abs_sum_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas1_vector_sum_of_squares_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas1_matrix_frob_norm_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas1_matrix_inf_norm_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas1_matrix_one_norm_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas1_swap_elements_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas1_copy_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas1_add_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas1_scale_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas1_idx_abs_max_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas1_vector_norm2_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas1_vector_abs_sum_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas1_vector_sum_of_squares_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas1_matrix_frob_norm_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas1_matrix_inf_norm_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas1_matrix_one_norm_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas1_swap_elements_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas1_copy_kk.hpp" -// blas2 (according to P1673) -#include "__p1673_bits/kokkos-kernels/blas2_matrix_rank_1_update.hpp" -#include "__p1673_bits/kokkos-kernels/blas2_matrix_rank_2_update.hpp" -#include "__p1673_bits/kokkos-kernels/blas2_gemv_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas2_symv_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas2_hemv_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas2_triangular_mat_vec_product.hpp" +// // blas2 (according to P1673) +// #include "__p1673_bits/kokkos-kernels/blas2_matrix_rank_1_update.hpp" +// #include "__p1673_bits/kokkos-kernels/blas2_matrix_rank_2_update.hpp" +// #include "__p1673_bits/kokkos-kernels/blas2_gemv_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas2_symv_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas2_hemv_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas2_triangular_mat_vec_product.hpp" -// blas3 (according to P1673) -#include "__p1673_bits/kokkos-kernels/blas3_overwriting_gemm_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas3_matrix_rank_k_update.hpp" -#include "__p1673_bits/kokkos-kernels/blas3_matrix_rank_2k_update.hpp" -#include "__p1673_bits/kokkos-kernels/blas3_matrix_product_kk.hpp" -#include "__p1673_bits/kokkos-kernels/blas3_triangular_matrix_matrix_solve.hpp" +// // blas3 (according to P1673) +// #include "__p1673_bits/kokkos-kernels/blas3_overwriting_gemm_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas3_matrix_rank_k_update.hpp" +// #include "__p1673_bits/kokkos-kernels/blas3_matrix_rank_2k_update.hpp" +// #include "__p1673_bits/kokkos-kernels/blas3_matrix_product_kk.hpp" +// #include "__p1673_bits/kokkos-kernels/blas3_triangular_matrix_matrix_solve.hpp"