diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 285d5f55..35dc1e6f 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -102,8 +102,6 @@ jobs: test-stdBLAS: runs-on: ubuntu-latest - container: - image: amklinv/mdspan-dependencies:latest needs: build-stdblas steps: diff --git a/CMakeLists.txt b/CMakeLists.txt index 8c528fa2..a2b7f0a3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -121,6 +121,14 @@ option(LINALG_ENABLE_BLAS "Assume that we are linking with a BLAS library." ${BLAS_FOUND}) +find_package(TBB) +option(LINALG_ENABLE_TBB + "Enable TBB. Default: autodetect TBB installation." + ${TBB_FOUND}) +if(LINALG_ENABLE_TBB) + find_package(TBB REQUIRED) +endif() + find_package(KokkosKernels) option(LINALG_ENABLE_KOKKOS "Enable Kokkos-based implementation. Default: autodetect Kokkos installation." @@ -144,6 +152,10 @@ add_library(std::linalg ALIAS linalg) target_link_libraries(linalg INTERFACE std::mdspan) +if(LINALG_ENABLE_TBB) + target_link_libraries(linalg INTERFACE TBB::tbb) +endif() + if(LINALG_ENABLE_KOKKOS) target_link_libraries(linalg INTERFACE Kokkos::kokkos) target_link_libraries(linalg INTERFACE Kokkos::kokkoskernels) diff --git a/README.md b/README.md index 05240003..c8e3852f 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,8 @@ Other compilers, including MSVC 2019, have been tested in the past. - If you want to build examples, set LINALG_ENABLE_EXAMPLES=ON - If you have a BLAS installation, set LINALG_ENABLE_BLAS=ON. BLAS support is currently experimental. + - If you have a TBB installation, set LINALG_ENABLE_TBB=ON. + TBB support is currently experimental. 4. Build and install as usual 5. If you enabled tests, use "ctest" to run them diff --git a/examples/01_scale.cpp b/examples/01_scale.cpp index aefd190a..53fcc4d4 100644 --- a/examples/01_scale.cpp +++ b/examples/01_scale.cpp @@ -2,18 +2,10 @@ #include -#if (! defined(__GNUC__)) || (__GNUC__ > 9) -# define MDSPAN_EXAMPLES_USE_EXECUTION_POLICIES 1 -#endif - -#ifdef MDSPAN_EXAMPLES_USE_EXECUTION_POLICIES -# include -#endif - // Make mdspan less verbose -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; int main(int argc, char* argv[]) { std::cout << "Scale" << std::endl; @@ -30,7 +22,7 @@ int main(int argc, char* argv[]) { // Call linalg::scale x = 2.0*x; std::experimental::linalg::scale(2.0, x); -#ifdef MDSPAN_EXAMPLES_USE_EXECUTION_POLICIES +#ifdef LINALG_HAS_EXECUTION std::experimental::linalg::scale(std::execution::par, 2.0, x); #else std::experimental::linalg::scale(2.0, x); diff --git a/examples/02_matrix_vector_product_basic.cpp b/examples/02_matrix_vector_product_basic.cpp index 9fc0c907..ccabe659 100644 --- a/examples/02_matrix_vector_product_basic.cpp +++ b/examples/02_matrix_vector_product_basic.cpp @@ -2,18 +2,10 @@ #include -#if (! defined(__GNUC__)) || (__GNUC__ > 9) -# define MDSPAN_EXAMPLES_USE_EXECUTION_POLICIES 1 -#endif - -#ifdef MDSPAN_EXAMPLES_USE_EXECUTION_POLICIES -# include -#endif - // Make mdspan less verbose -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; int main(int argc, char* argv[]) { std::cout << "Matrix Vector Product Basic" << std::endl; @@ -41,7 +33,7 @@ int main(int argc, char* argv[]) { std::experimental::linalg::matrix_vector_product(A, x, y); // y = 0.5 * y + 2 * A * x -#ifdef MDSPAN_EXAMPLES_USE_EXECUTION_POLICIES +#ifdef LINALG_HAS_EXECUTION std::experimental::linalg::matrix_vector_product(std::execution::par, std::experimental::linalg::scaled(2.0, A), x, std::experimental::linalg::scaled(0.5, y), y); diff --git a/examples/03_matrix_vector_product_mixedprec.cpp b/examples/03_matrix_vector_product_mixedprec.cpp index 94c6db06..f3ee8883 100644 --- a/examples/03_matrix_vector_product_mixedprec.cpp +++ b/examples/03_matrix_vector_product_mixedprec.cpp @@ -3,11 +3,11 @@ #include // Make mdspan less verbose -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 std::experimental::submdspan; -using std::experimental::full_extent; +using MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent; int main(int argc, char* argv[]) { std::cout << "Matrix Vector Product MixedPrec" << std::endl; diff --git a/include/experimental/__p1673_bits/linalg_config.h.in b/include/experimental/__p1673_bits/linalg_config.h.in index 5703497d..21ab176d 100644 --- a/include/experimental/__p1673_bits/linalg_config.h.in +++ b/include/experimental/__p1673_bits/linalg_config.h.in @@ -5,3 +5,4 @@ #cmakedefine LINALG_ENABLE_CONCEPTS #cmakedefine LINALG_ENABLE_KOKKOS #cmakedefine LINALG_ENABLE_KOKKOS_DEFAULT +#cmakedefine LINALG_ENABLE_TBB diff --git a/include/experimental/__p1673_bits/linalg_execpolicy_mapper.hpp b/include/experimental/__p1673_bits/linalg_execpolicy_mapper.hpp index 0f96b5bb..2f01c4bf 100644 --- a/include/experimental/__p1673_bits/linalg_execpolicy_mapper.hpp +++ b/include/experimental/__p1673_bits/linalg_execpolicy_mapper.hpp @@ -1,6 +1,6 @@ // For GCC 9 (< 10), unconditionally includes a TBB header file. // If GCC < 10 was not built with TBB support, this causes a build error. -#if (! defined(__GNUC__)) || (__GNUC__ > 9) +#ifdef LINALG_HAS_EXECUTION #include #endif @@ -39,7 +39,17 @@ namespace experimental { inline namespace __p1673_version_0 { namespace linalg { template -auto execpolicy_mapper(T) { return std::experimental::linalg::impl::inline_exec_t(); } +auto execpolicy_mapper(const T) { + return std::experimental::linalg::impl::inline_exec_t(); +} + +#ifdef LINALG_HAS_EXECUTION +template<> +auto execpolicy_mapper(const std::execution::parallel_policy) { + return std::execution::par; +} +#endif + } } } diff --git a/include/experimental/__p1673_bits/macros.hpp b/include/experimental/__p1673_bits/macros.hpp index a9ad8d2a..7380e25f 100644 --- a/include/experimental/__p1673_bits/macros.hpp +++ b/include/experimental/__p1673_bits/macros.hpp @@ -43,6 +43,30 @@ #ifndef LINALG_INCLUDE_EXPERIMENTAL___P1673_BITS_MACROS_HPP_ #define LINALG_INCLUDE_EXPERIMENTAL___P1673_BITS_MACROS_HPP_ +#ifdef _MSVC_LANG +#define _LINALG_CPLUSPLUS _MSVC_LANG +#else +#define _LINALG_CPLUSPLUS __cplusplus +#endif + +#define LINALG_CXX_STD_14 201402L +#define LINALG_CXX_STD_17 201703L +#define LINALG_CXX_STD_20 202002L + +#define LINALG_HAS_CXX_14 (_LINALG_CPLUSPLUS >= LINALG_CXX_STD_14) +#define LINALG_HAS_CXX_17 (_LINALG_CPLUSPLUS >= LINALG_CXX_STD_17) +#define LINALG_HAS_CXX_20 (_LINALG_CPLUSPLUS >= LINALG_CXX_STD_20) + +static_assert(_LINALG_CPLUSPLUS >= LINALG_CXX_STD_17, "stdBLAS requires C++17 or later."); + +#if ! defined(__clang__) && ! defined(_MSC_VER) && defined(__GNUC__) +# if defined(LINALG_ENABLE_TBB) +# define LINALG_HAS_EXECUTION 1 +# endif +#else +# define LINALG_HAS_EXECUTION 1 +#endif + #define P1673_MATRIX_EXTENTS_TEMPLATE_PARAMETERS( MATRIX_NAME ) \ class SizeType_ ## MATRIX_NAME , \ ::std::size_t numRows_ ## MATRIX_NAME , \ diff --git a/tests/native/add.cpp b/tests/native/add.cpp index 0d387a5e..fee0d2a9 100644 --- a/tests/native/add.cpp +++ b/tests/native/add.cpp @@ -6,9 +6,9 @@ #include namespace { - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::experimental::linalg::add; TEST(BLAS1_add, vector_double) diff --git a/tests/native/conjugate_transposed.cpp b/tests/native/conjugate_transposed.cpp index 41edac6a..7b32555b 100644 --- a/tests/native/conjugate_transposed.cpp +++ b/tests/native/conjugate_transposed.cpp @@ -6,9 +6,9 @@ #include namespace { - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::experimental::linalg::conjugate_transposed; TEST(conjugate_transposed, mdspan_complex_double) diff --git a/tests/native/conjugated.cpp b/tests/native/conjugated.cpp index 3362d2c6..00edfd1d 100644 --- a/tests/native/conjugated.cpp +++ b/tests/native/conjugated.cpp @@ -6,10 +6,10 @@ #include namespace { - using std::experimental::dextents; - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dextents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::experimental::linalg::conjugated; template diff --git a/tests/native/copy.cpp b/tests/native/copy.cpp index 0bfe1023..1606a204 100644 --- a/tests/native/copy.cpp +++ b/tests/native/copy.cpp @@ -6,9 +6,9 @@ #include namespace { - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::experimental::linalg::copy; template diff --git a/tests/native/dot.cpp b/tests/native/dot.cpp index f5773589..3f97aa52 100644 --- a/tests/native/dot.cpp +++ b/tests/native/dot.cpp @@ -22,9 +22,9 @@ double ddot_wrapper (const int N, const double* DX, #endif // 0 namespace { - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::experimental::linalg::dot; using std::experimental::linalg::dotc; diff --git a/tests/native/gemm.cpp b/tests/native/gemm.cpp index e88d7267..a66bbb62 100644 --- a/tests/native/gemm.cpp +++ b/tests/native/gemm.cpp @@ -6,10 +6,10 @@ #include namespace { - using std::experimental::mdspan; - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::layout_left; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::layout_left; using std::experimental::linalg::explicit_diagonal; using std::experimental::linalg::implicit_unit_diagonal; using std::experimental::linalg::lower_triangle; diff --git a/tests/native/gemv.cpp b/tests/native/gemv.cpp index b126ae4f..ebdfef1e 100644 --- a/tests/native/gemv.cpp +++ b/tests/native/gemv.cpp @@ -6,10 +6,10 @@ #include namespace { - using std::experimental::mdspan; - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::layout_left; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::layout_left; using std::experimental::linalg::matrix_vector_product; using std::experimental::linalg::transposed; using std::cout; diff --git a/tests/native/gemv_no_ambig.cpp b/tests/native/gemv_no_ambig.cpp index 17c3a21c..798b759d 100644 --- a/tests/native/gemv_no_ambig.cpp +++ b/tests/native/gemv_no_ambig.cpp @@ -5,18 +5,11 @@ #include #include -#if (! defined(__GNUC__)) || (__GNUC__ > 9) -# define MDSPAN_EXAMPLES_USE_EXECUTION_POLICIES 1 -#endif -#ifdef MDSPAN_EXAMPLES_USE_EXECUTION_POLICIES -# include -#endif - namespace { -using std::experimental::mdspan; -using std::experimental::extents; -using std::experimental::dynamic_extent; +using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; +using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; +using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::experimental::linalg::matrix_vector_product; using std::experimental::linalg::scaled; @@ -49,7 +42,7 @@ TEST(gemv, no_ambiguity) scaled(2.0, A), x, scaled(0.5, y), y); -#ifdef MDSPAN_EXAMPLES_USE_EXECUTION_POLICIES +#ifdef LINALG_HAS_EXECUTION matrix_vector_product(std::execution::par, scaled(2.0, A), x, scaled(0.5, y), y); diff --git a/tests/native/givens.cpp b/tests/native/givens.cpp index 8a2c57e4..90068f6c 100644 --- a/tests/native/givens.cpp +++ b/tests/native/givens.cpp @@ -6,9 +6,9 @@ #include namespace { - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::experimental::linalg::givens_rotation_setup; using std::experimental::linalg::givens_rotation_apply; diff --git a/tests/native/gtest_fixtures.hpp b/tests/native/gtest_fixtures.hpp index 04f1a039..5c8afb16 100644 --- a/tests/native/gtest_fixtures.hpp +++ b/tests/native/gtest_fixtures.hpp @@ -49,9 +49,9 @@ #include #include - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using dbl_vector_t = mdspan>; using cpx_vector_t = mdspan, extents>; constexpr ptrdiff_t NROWS(10); diff --git a/tests/native/hemm.cpp b/tests/native/hemm.cpp index e493aa3b..478f1a2b 100644 --- a/tests/native/hemm.cpp +++ b/tests/native/hemm.cpp @@ -7,10 +7,10 @@ #include namespace { - using std::experimental::mdspan; - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::layout_left; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::layout_left; using std::experimental::linalg::explicit_diagonal; using std::experimental::linalg::implicit_unit_diagonal; using std::experimental::linalg::lower_triangle; diff --git a/tests/native/idx_abs_max.cpp b/tests/native/idx_abs_max.cpp index d17148d5..e5130143 100644 --- a/tests/native/idx_abs_max.cpp +++ b/tests/native/idx_abs_max.cpp @@ -6,7 +6,9 @@ #include namespace { - + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::experimental::linalg::idx_abs_max; TEST_F(unsigned_double_vector, idx_abs_max) @@ -26,17 +28,15 @@ namespace { TEST(BLAS1_idx_abs_max, trivial_case) { - namespace stdexp = std::experimental; - constexpr auto expected = std::numeric_limits::max(); std::array arr; - using extents_type = stdexp::extents; - stdexp::mdspan a(arr.data(),0); + using extents_type = extents; + mdspan a(arr.data(),0); EXPECT_EQ(expected, idx_abs_max(a)); - using extents_type2 = stdexp::extents; - stdexp::mdspan b(arr.data()); + using extents_type2 = extents; + mdspan b(arr.data()); EXPECT_EQ(expected, idx_abs_max(b)); } diff --git a/tests/native/iterator.cpp b/tests/native/iterator.cpp index 75bac785..345f9b43 100644 --- a/tests/native/iterator.cpp +++ b/tests/native/iterator.cpp @@ -10,13 +10,13 @@ #include namespace { - using std::experimental::full_extent; - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::layout_left; - using std::experimental::layout_right; - using std::experimental::layout_stride; // does compile - using std::experimental::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::layout_left; + using MDSPAN_IMPL_STANDARD_NAMESPACE::layout_right; + using MDSPAN_IMPL_STANDARD_NAMESPACE::layout_stride; // does compile + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::experimental::submdspan; MDSPAN_TEMPLATE_REQUIRES( diff --git a/tests/native/matrix_inf_norm.cpp b/tests/native/matrix_inf_norm.cpp index 48e58c38..25555969 100644 --- a/tests/native/matrix_inf_norm.cpp +++ b/tests/native/matrix_inf_norm.cpp @@ -7,16 +7,19 @@ #include namespace { + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::experimental::linalg::matrix_inf_norm; using std::cout; using std::endl; template - using basic_matrix_t = std::experimental::mdspan< + using basic_matrix_t = mdspan< ElementType, - std::experimental::extents, + extents, Layout, std::experimental::default_accessor>; diff --git a/tests/native/matrix_one_norm.cpp b/tests/native/matrix_one_norm.cpp index 65b8bc1a..a89c2c79 100644 --- a/tests/native/matrix_one_norm.cpp +++ b/tests/native/matrix_one_norm.cpp @@ -7,20 +7,20 @@ #include namespace { - //using std::experimental::mdspan; - //using std::experimental::dynamic_extent; - //using std::experimental::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; using std::experimental::linalg::matrix_one_norm; using std::cout; using std::endl; template - using basic_matrix_t = std::experimental::mdspan< + using basic_matrix_t = mdspan< ElementType, - std::experimental::extents< + extents< std::size_t, - std::experimental::dynamic_extent, - std::experimental::dynamic_extent>, + dynamic_extent, + dynamic_extent>, Layout, std::experimental::default_accessor>; diff --git a/tests/native/norm2.cpp b/tests/native/norm2.cpp index 7294773e..b620831b 100644 --- a/tests/native/norm2.cpp +++ b/tests/native/norm2.cpp @@ -21,9 +21,9 @@ double dnrm2_wrapper(const int N, const double* X, const int INCX) #endif // 0 namespace { - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::experimental::linalg::vector_norm2; TEST(BLAS1_norm2, mdspan_zero) diff --git a/tests/native/scale.cpp b/tests/native/scale.cpp index 0b3af6b4..a729bfab 100644 --- a/tests/native/scale.cpp +++ b/tests/native/scale.cpp @@ -5,9 +5,9 @@ #include namespace { - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::experimental::linalg::scale; TEST(BLAS1_scale, mdspan_double) diff --git a/tests/native/scaled.cpp b/tests/native/scaled.cpp index 9f554226..e74a689d 100644 --- a/tests/native/scaled.cpp +++ b/tests/native/scaled.cpp @@ -6,9 +6,9 @@ #include namespace { - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::experimental::linalg::scaled; template diff --git a/tests/native/swap.cpp b/tests/native/swap.cpp index bc9e7ebc..f0763dc1 100644 --- a/tests/native/swap.cpp +++ b/tests/native/swap.cpp @@ -5,9 +5,9 @@ #include namespace { - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::experimental::linalg::swap_elements; TEST(BLAS1_swap, mdspan_double) diff --git a/tests/native/symm.cpp b/tests/native/symm.cpp index 45bd9384..4f476e0b 100644 --- a/tests/native/symm.cpp +++ b/tests/native/symm.cpp @@ -7,10 +7,10 @@ #include namespace { - using std::experimental::mdspan; - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::layout_left; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::layout_left; using std::experimental::linalg::explicit_diagonal; using std::experimental::linalg::implicit_unit_diagonal; using std::experimental::linalg::lower_triangle; diff --git a/tests/native/transposed.cpp b/tests/native/transposed.cpp index 24ed4d56..72d8db31 100644 --- a/tests/native/transposed.cpp +++ b/tests/native/transposed.cpp @@ -6,9 +6,9 @@ #include namespace { - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::experimental::linalg::transposed; template diff --git a/tests/native/trmm.cpp b/tests/native/trmm.cpp index 70185745..e218d50c 100644 --- a/tests/native/trmm.cpp +++ b/tests/native/trmm.cpp @@ -12,11 +12,11 @@ namespace { using std::experimental::linalg::matrix_product; using std::experimental::linalg::transposed; using std::experimental::linalg::upper_triangle; - using std::experimental::dextents; - using std::experimental::dynamic_extent; - using std::experimental::extents; - using std::experimental::layout_left; - using std::experimental::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dextents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::extents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::layout_left; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; using std::cout; using std::endl; diff --git a/tests/native/trsm.cpp b/tests/native/trsm.cpp index 101c2752..fb3b7113 100644 --- a/tests/native/trsm.cpp +++ b/tests/native/trsm.cpp @@ -7,11 +7,11 @@ namespace { - using std::experimental::mdspan; - using std::experimental::dynamic_extent; - using std::experimental::dextents; - using std::experimental::layout_right; - using std::experimental::layout_left; + using MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent; + using MDSPAN_IMPL_STANDARD_NAMESPACE::dextents; + using MDSPAN_IMPL_STANDARD_NAMESPACE::layout_right; + using MDSPAN_IMPL_STANDARD_NAMESPACE::layout_left; constexpr std::size_t num_rows_A = 3; constexpr std::size_t num_cols_A = 3;