diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index db965a63d466d718d95d9bf38d19881aab3f0b45..a89284abf85cf76c9af147b477e958b61e5bc96e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -37,7 +37,7 @@ testsuite:
     - docker
   before_script:
     - pip install "git+https://i10git.cs.fau.de/pycodegen/pystencils.git@v2.0-dev"
-    - pip install -e .
+    - pip install -e .[tests]
   script:
     - pytest -v --cov=src/pystencilssfg --cov-report=term --cov-config=pyproject.toml
     - coverage html
diff --git a/pyproject.toml b/pyproject.toml
index b4affebd54129a7c9c6f659cf1f19cacae72e097..c3d2183220780258555a71b965ac2757af8dd08f 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -23,11 +23,13 @@ requires = [
 build-backend = "setuptools.build_meta"
 
 [project.optional-dependencies]
-testing = [
+tests = [
     "flake8>=6.1.0",
     "mypy>=1.7.0",
     "black",
     "pyyaml",
+    "requests"
+    "fasteners",
 ]
 docs = [
     "sphinx",
diff --git a/tests/generator_scripts/.gitignore b/tests/generator_scripts/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..73fb7d9cb9955780f7d2d944aaa158171814fcb4
--- /dev/null
+++ b/tests/generator_scripts/.gitignore
@@ -0,0 +1,2 @@
+deps/mdspan-*
+*.lock
\ No newline at end of file
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/compressed_pair.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/compressed_pair.hpp
deleted file mode 100644
index 5783bdb800354e64fc6546b2462851c1f838168b..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/compressed_pair.hpp
+++ /dev/null
@@ -1,197 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-#pragma once
-
-#include "macros.hpp"
-#include "trait_backports.hpp"
-
-#if !defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-#  include "no_unique_address.hpp"
-#endif
-
-namespace std {
-namespace experimental {
-namespace detail {
-
-// For no unique address emulation, this is the case taken when neither are empty.
-// For real `[[no_unique_address]]`, this case is always taken.
-template <class _T, class _U, class _Enable = void> struct __compressed_pair {
-  _MDSPAN_NO_UNIQUE_ADDRESS _T __t_val;
-  _MDSPAN_NO_UNIQUE_ADDRESS _U __u_val;
-  MDSPAN_FORCE_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14 _T &__first() noexcept { return __t_val; }
-  MDSPAN_FORCE_INLINE_FUNCTION constexpr _T const &__first() const noexcept {
-    return __t_val;
-  }
-  MDSPAN_FORCE_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14 _U &__second() noexcept { return __u_val; }
-  MDSPAN_FORCE_INLINE_FUNCTION constexpr _U const &__second() const noexcept {
-    return __u_val;
-  }
-
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr __compressed_pair() noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr __compressed_pair(__compressed_pair const &) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr __compressed_pair(__compressed_pair &&) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  _MDSPAN_CONSTEXPR_14_DEFAULTED __compressed_pair &
-  operator=(__compressed_pair const &) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  _MDSPAN_CONSTEXPR_14_DEFAULTED __compressed_pair &
-  operator=(__compressed_pair &&) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  ~__compressed_pair() noexcept = default;
-  template <class _TLike, class _ULike>
-  MDSPAN_INLINE_FUNCTION constexpr __compressed_pair(_TLike &&__t, _ULike &&__u)
-      : __t_val((_TLike &&) __t), __u_val((_ULike &&) __u) {}
-};
-
-#if !defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-
-// First empty.
-template <class _T, class _U>
-struct __compressed_pair<
-    _T, _U,
-    enable_if_t<_MDSPAN_TRAIT(is_empty, _T) && !_MDSPAN_TRAIT(is_empty, _U)>>
-    : private _T {
-  _U __u_val;
-  MDSPAN_FORCE_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14 _T &__first() noexcept {
-    return *static_cast<_T *>(this);
-  }
-  MDSPAN_FORCE_INLINE_FUNCTION constexpr _T const &__first() const noexcept {
-    return *static_cast<_T const *>(this);
-  }
-  MDSPAN_FORCE_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14 _U &__second() noexcept { return __u_val; }
-  MDSPAN_FORCE_INLINE_FUNCTION constexpr _U const &__second() const noexcept {
-    return __u_val;
-  }
-
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr __compressed_pair() noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr __compressed_pair(__compressed_pair const &) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr __compressed_pair(__compressed_pair &&) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  _MDSPAN_CONSTEXPR_14_DEFAULTED __compressed_pair &
-  operator=(__compressed_pair const &) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  _MDSPAN_CONSTEXPR_14_DEFAULTED __compressed_pair &
-  operator=(__compressed_pair &&) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  ~__compressed_pair() noexcept = default;
-  template <class _TLike, class _ULike>
-  MDSPAN_INLINE_FUNCTION constexpr __compressed_pair(_TLike &&__t, _ULike &&__u)
-      : _T((_TLike &&) __t), __u_val((_ULike &&) __u) {}
-};
-
-// Second empty.
-template <class _T, class _U>
-struct __compressed_pair<
-    _T, _U,
-    enable_if_t<!_MDSPAN_TRAIT(is_empty, _T) && _MDSPAN_TRAIT(is_empty, _U)>>
-    : private _U {
-  _T __t_val;
-  MDSPAN_FORCE_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14 _T &__first() noexcept { return __t_val; }
-  MDSPAN_FORCE_INLINE_FUNCTION constexpr _T const &__first() const noexcept {
-    return __t_val;
-  }
-  MDSPAN_FORCE_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14 _U &__second() noexcept {
-    return *static_cast<_U *>(this);
-  }
-  MDSPAN_FORCE_INLINE_FUNCTION constexpr _U const &__second() const noexcept {
-    return *static_cast<_U const *>(this);
-  }
-
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr __compressed_pair() noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr __compressed_pair(__compressed_pair const &) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr __compressed_pair(__compressed_pair &&) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  _MDSPAN_CONSTEXPR_14_DEFAULTED __compressed_pair &
-  operator=(__compressed_pair const &) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  _MDSPAN_CONSTEXPR_14_DEFAULTED __compressed_pair &
-  operator=(__compressed_pair &&) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  ~__compressed_pair() noexcept = default;
-
-  template <class _TLike, class _ULike>
-  MDSPAN_INLINE_FUNCTION constexpr __compressed_pair(_TLike &&__t, _ULike &&__u)
-      : _U((_ULike &&) __u), __t_val((_TLike &&) __t) {}
-};
-
-// Both empty.
-template <class _T, class _U>
-struct __compressed_pair<
-    _T, _U,
-    enable_if_t<_MDSPAN_TRAIT(is_empty, _T) && _MDSPAN_TRAIT(is_empty, _U)>>
-    // We need to use the __no_unique_address_emulation wrapper here to avoid
-    // base class ambiguities.
-#ifdef _MDSPAN_COMPILER_MSVC
-// MSVC doesn't allow you to access public static member functions of a type
-// when you *happen* to privately inherit from that type.
-    : protected __no_unique_address_emulation<_T, 0>,
-      protected __no_unique_address_emulation<_U, 1>
-#else
-    : private __no_unique_address_emulation<_T, 0>,
-      private __no_unique_address_emulation<_U, 1>
-#endif
-{
-  using __first_base_t = __no_unique_address_emulation<_T, 0>;
-  using __second_base_t = __no_unique_address_emulation<_U, 1>;
-
-  MDSPAN_FORCE_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14 _T &__first() noexcept {
-    return this->__first_base_t::__ref();
-  }
-  MDSPAN_FORCE_INLINE_FUNCTION constexpr _T const &__first() const noexcept {
-    return this->__first_base_t::__ref();
-  }
-  MDSPAN_FORCE_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14 _U &__second() noexcept {
-    return this->__second_base_t::__ref();
-  }
-  MDSPAN_FORCE_INLINE_FUNCTION constexpr _U const &__second() const noexcept {
-    return this->__second_base_t::__ref();
-  }
-
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr __compressed_pair() noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr __compressed_pair(__compressed_pair const &) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr __compressed_pair(__compressed_pair &&) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  _MDSPAN_CONSTEXPR_14_DEFAULTED __compressed_pair &
-  operator=(__compressed_pair const &) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  _MDSPAN_CONSTEXPR_14_DEFAULTED __compressed_pair &
-  operator=(__compressed_pair &&) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  ~__compressed_pair() noexcept = default;
-  template <class _TLike, class _ULike>
-  MDSPAN_INLINE_FUNCTION constexpr __compressed_pair(_TLike &&__t, _ULike &&__u) noexcept
-    : __first_base_t(_T((_TLike &&) __t)),
-      __second_base_t(_U((_ULike &&) __u))
-  { }
-};
-
-#endif // !defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-
-} // end namespace detail
-} // end namespace experimental
-} // end namespace std
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/config.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/config.hpp
deleted file mode 100644
index d35e201cebd2bd8d0b1b99e6409e618a440c7a68..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/config.hpp
+++ /dev/null
@@ -1,274 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-#pragma once
-
-#ifndef __has_include
-#  define __has_include(x) 0
-#endif
-
-#if __has_include(<version>)
-#  include <version>
-#else
-#  include <type_traits>
-#  include <utility>
-#endif
-
-#ifdef _MSVC_LANG
-#define _MDSPAN_CPLUSPLUS _MSVC_LANG
-#else
-#define _MDSPAN_CPLUSPLUS __cplusplus
-#endif
-
-#define MDSPAN_CXX_STD_14 201402L
-#define MDSPAN_CXX_STD_17 201703L
-#define MDSPAN_CXX_STD_20 202002L
-
-#define MDSPAN_HAS_CXX_14 (_MDSPAN_CPLUSPLUS >= MDSPAN_CXX_STD_14)
-#define MDSPAN_HAS_CXX_17 (_MDSPAN_CPLUSPLUS >= MDSPAN_CXX_STD_17)
-#define MDSPAN_HAS_CXX_20 (_MDSPAN_CPLUSPLUS >= MDSPAN_CXX_STD_20)
-
-static_assert(_MDSPAN_CPLUSPLUS >= MDSPAN_CXX_STD_14, "mdspan requires C++14 or later.");
-
-#ifndef _MDSPAN_COMPILER_CLANG
-#  if defined(__clang__)
-#    define _MDSPAN_COMPILER_CLANG __clang__
-#  endif
-#endif
-
-#if !defined(_MDSPAN_COMPILER_MSVC) && !defined(_MDSPAN_COMPILER_MSVC_CLANG)
-#  if defined(_MSC_VER)
-#    if !defined(_MDSPAN_COMPILER_CLANG)
-#      define _MDSPAN_COMPILER_MSVC _MSC_VER
-#    else
-#      define _MDSPAN_COMPILER_MSVC_CLANG _MSC_VER
-#    endif
-#  endif
-#endif
-
-#ifndef _MDSPAN_COMPILER_INTEL
-#  ifdef __INTEL_COMPILER
-#    define _MDSPAN_COMPILER_INTEL __INTEL_COMPILER
-#  endif
-#endif
-
-#ifndef _MDSPAN_COMPILER_APPLECLANG
-#  ifdef __apple_build_version__
-#    define _MDSPAN_COMPILER_APPLECLANG __apple_build_version__
-#  endif
-#endif
-
-#ifndef _MDSPAN_HAS_CUDA
-#  if defined(__CUDACC__)
-#    define _MDSPAN_HAS_CUDA __CUDACC__
-#  endif
-#endif
-
-#ifndef _MDSPAN_HAS_HIP
-#  if defined(__HIPCC__)
-#    define _MDSPAN_HAS_HIP __HIPCC__
-#  endif
-#endif
-
-#ifndef _MDSPAN_HAS_SYCL
-#  if defined(SYCL_LANGUAGE_VERSION)
-#    define _MDSPAN_HAS_SYCL SYCL_LANGUAGE_VERSION
-#  endif
-#endif
-
-#ifndef __has_cpp_attribute
-#  define __has_cpp_attribute(x) 0
-#endif
-
-#ifndef _MDSPAN_PRESERVE_STANDARD_LAYOUT
-// Preserve standard layout by default, but we're not removing the old version
-// that turns this off until we're sure this doesn't have an unreasonable cost
-// to the compiler or optimizer.
-#  define _MDSPAN_PRESERVE_STANDARD_LAYOUT 1
-#endif
-
-#if !defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-#  if ((__has_cpp_attribute(no_unique_address) >= 201803L) && \
-       (!defined(__NVCC__) || MDSPAN_HAS_CXX_20) && \
-       (!defined(_MDSPAN_COMPILER_MSVC) || MDSPAN_HAS_CXX_20))
-#    define _MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS 1
-#    define _MDSPAN_NO_UNIQUE_ADDRESS [[no_unique_address]]
-#  else
-#    define _MDSPAN_NO_UNIQUE_ADDRESS
-#  endif
-#endif
-
-// NVCC older than 11.6 chokes on the no-unique-address-emulation
-// so just pretend to use it (to avoid the full blown EBO workaround
-// which NVCC also doesn't like ...), and leave the macro empty
-#ifndef _MDSPAN_NO_UNIQUE_ADDRESS
-#  if defined(__NVCC__)
-#    define _MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS 1
-#    define _MDSPAN_USE_FAKE_ATTRIBUTE_NO_UNIQUE_ADDRESS
-#  endif
-#  define _MDSPAN_NO_UNIQUE_ADDRESS
-#endif
-
-// AMDs HIP compiler seems to have issues with concepts
-// it pretends concepts exist, but doesn't ship <concept>
-#ifndef __HIPCC__
-#ifndef _MDSPAN_USE_CONCEPTS
-#  if defined(__cpp_concepts) && __cpp_concepts >= 201507L
-#    define _MDSPAN_USE_CONCEPTS 1
-#  endif
-#endif
-#endif
-
-#ifndef _MDSPAN_USE_FOLD_EXPRESSIONS
-#  if (defined(__cpp_fold_expressions) && __cpp_fold_expressions >= 201603L) \
-          || (!defined(__cpp_fold_expressions) && MDSPAN_HAS_CXX_17)
-#    define _MDSPAN_USE_FOLD_EXPRESSIONS 1
-#  endif
-#endif
-
-#ifndef _MDSPAN_USE_INLINE_VARIABLES
-#  if defined(__cpp_inline_variables) && __cpp_inline_variables >= 201606L \
-         || (!defined(__cpp_inline_variables) && MDSPAN_HAS_CXX_17)
-#    define _MDSPAN_USE_INLINE_VARIABLES 1
-#  endif
-#endif
-
-#ifndef _MDSPAN_NEEDS_TRAIT_VARIABLE_TEMPLATE_BACKPORTS
-#  if (!(defined(__cpp_lib_type_trait_variable_templates) && __cpp_lib_type_trait_variable_templates >= 201510L) \
-          || !MDSPAN_HAS_CXX_17)
-#    if !(defined(_MDSPAN_COMPILER_APPLECLANG) && MDSPAN_HAS_CXX_17)
-#      define _MDSPAN_NEEDS_TRAIT_VARIABLE_TEMPLATE_BACKPORTS 1
-#    endif
-#  endif
-#endif
-
-#ifndef _MDSPAN_USE_VARIABLE_TEMPLATES
-#  if (defined(__cpp_variable_templates) && __cpp_variable_templates >= 201304 && MDSPAN_HAS_CXX_17) \
-        || (!defined(__cpp_variable_templates) && MDSPAN_HAS_CXX_17)
-#    define _MDSPAN_USE_VARIABLE_TEMPLATES 1
-#  endif
-#endif // _MDSPAN_USE_VARIABLE_TEMPLATES
-
-#ifndef _MDSPAN_USE_CONSTEXPR_14
-#  if (defined(__cpp_constexpr) && __cpp_constexpr >= 201304) \
-        || (!defined(__cpp_constexpr) && MDSPAN_HAS_CXX_14) \
-        && (!(defined(__INTEL_COMPILER) && __INTEL_COMPILER <= 1700))
-#    define _MDSPAN_USE_CONSTEXPR_14 1
-#  endif
-#endif
-
-#ifndef _MDSPAN_USE_INTEGER_SEQUENCE
-#  if defined(_MDSPAN_COMPILER_MSVC)
-#    if (defined(__cpp_lib_integer_sequence) && __cpp_lib_integer_sequence >= 201304)
-#      define _MDSPAN_USE_INTEGER_SEQUENCE 1
-#    endif
-#  endif
-#endif
-#ifndef _MDSPAN_USE_INTEGER_SEQUENCE
-#  if (defined(__cpp_lib_integer_sequence) && __cpp_lib_integer_sequence >= 201304) \
-        || (!defined(__cpp_lib_integer_sequence) && MDSPAN_HAS_CXX_14) \
-        /* as far as I can tell, libc++ seems to think this is a C++11 feature... */ \
-        || (defined(__GLIBCXX__) && __GLIBCXX__ > 20150422 && __GNUC__ < 5 && !defined(__INTEL_CXX11_MODE__))
-     // several compilers lie about integer_sequence working properly unless the C++14 standard is used
-#    define _MDSPAN_USE_INTEGER_SEQUENCE 1
-#  elif defined(_MDSPAN_COMPILER_APPLECLANG) && MDSPAN_HAS_CXX_14
-     // appleclang seems to be missing the __cpp_lib_... macros, but doesn't seem to lie about C++14 making
-     // integer_sequence work
-#    define _MDSPAN_USE_INTEGER_SEQUENCE 1
-#  endif
-#endif
-
-#ifndef _MDSPAN_USE_RETURN_TYPE_DEDUCTION
-#  if (defined(__cpp_return_type_deduction) && __cpp_return_type_deduction >= 201304) \
-          || (!defined(__cpp_return_type_deduction) && MDSPAN_HAS_CXX_14)
-#    define _MDSPAN_USE_RETURN_TYPE_DEDUCTION 1
-#  endif
-#endif
-
-#ifndef _MDSPAN_USE_CLASS_TEMPLATE_ARGUMENT_DEDUCTION
-#  if (!defined(__NVCC__) || (__CUDACC_VER_MAJOR__ >= 11 && __CUDACC_VER_MINOR__ >= 7)) && \
-      ((defined(__cpp_deduction_guides) && __cpp_deduction_guides >= 201703) || \
-       (!defined(__cpp_deduction_guides) && MDSPAN_HAS_CXX_17))
-#    define _MDSPAN_USE_CLASS_TEMPLATE_ARGUMENT_DEDUCTION 1
-#  endif
-#endif
-
-#ifndef _MDSPAN_USE_STANDARD_TRAIT_ALIASES
-#  if (defined(__cpp_lib_transformation_trait_aliases) && __cpp_lib_transformation_trait_aliases >= 201304) \
-          || (!defined(__cpp_lib_transformation_trait_aliases) && MDSPAN_HAS_CXX_14)
-#    define _MDSPAN_USE_STANDARD_TRAIT_ALIASES 1
-#  elif defined(_MDSPAN_COMPILER_APPLECLANG) && MDSPAN_HAS_CXX_14
-     // appleclang seems to be missing the __cpp_lib_... macros, but doesn't seem to lie about C++14
-#    define _MDSPAN_USE_STANDARD_TRAIT_ALIASES 1
-#  endif
-#endif
-
-#ifndef _MDSPAN_DEFAULTED_CONSTRUCTORS_INHERITANCE_WORKAROUND
-#  ifdef __GNUC__
-#    if __GNUC__ < 9
-#      define _MDSPAN_DEFAULTED_CONSTRUCTORS_INHERITANCE_WORKAROUND 1
-#    endif
-#  endif
-#endif
-
-#ifndef MDSPAN_CONDITIONAL_EXPLICIT
-#  if MDSPAN_HAS_CXX_20 && !defined(_MDSPAN_COMPILER_MSVC)
-#    define MDSPAN_CONDITIONAL_EXPLICIT(COND) explicit(COND)
-#  else
-#    define MDSPAN_CONDITIONAL_EXPLICIT(COND)
-#  endif
-#endif
-
-#ifndef MDSPAN_USE_BRACKET_OPERATOR
-#  if defined(__cpp_multidimensional_subscript)
-#    define MDSPAN_USE_BRACKET_OPERATOR 1
-#  else
-#    define MDSPAN_USE_BRACKET_OPERATOR 0
-#  endif
-#endif
-
-#ifndef MDSPAN_USE_PAREN_OPERATOR
-#  if !MDSPAN_USE_BRACKET_OPERATOR
-#    define MDSPAN_USE_PAREN_OPERATOR 1
-#  else
-#    define MDSPAN_USE_PAREN_OPERATOR 0
-#  endif
-#endif
-
-#if MDSPAN_USE_BRACKET_OPERATOR
-#  define __MDSPAN_OP(mds,...) mds[__VA_ARGS__]
-// Corentins demo compiler for subscript chokes on empty [] call,
-// though I believe the proposal supports it?
-#ifdef MDSPAN_NO_EMPTY_BRACKET_OPERATOR
-#  define __MDSPAN_OP0(mds) mds.accessor().access(mds.data_handle(),0)
-#else
-#  define __MDSPAN_OP0(mds) mds[]
-#endif
-#  define __MDSPAN_OP1(mds, a) mds[a]
-#  define __MDSPAN_OP2(mds, a, b) mds[a,b]
-#  define __MDSPAN_OP3(mds, a, b, c) mds[a,b,c]
-#  define __MDSPAN_OP4(mds, a, b, c, d) mds[a,b,c,d]
-#  define __MDSPAN_OP5(mds, a, b, c, d, e) mds[a,b,c,d,e]
-#  define __MDSPAN_OP6(mds, a, b, c, d, e, f) mds[a,b,c,d,e,f]
-#else
-#  define __MDSPAN_OP(mds,...) mds(__VA_ARGS__)
-#  define __MDSPAN_OP0(mds) mds()
-#  define __MDSPAN_OP1(mds, a) mds(a)
-#  define __MDSPAN_OP2(mds, a, b) mds(a,b)
-#  define __MDSPAN_OP3(mds, a, b, c) mds(a,b,c)
-#  define __MDSPAN_OP4(mds, a, b, c, d) mds(a,b,c,d)
-#  define __MDSPAN_OP5(mds, a, b, c, d, e) mds(a,b,c,d,e)
-#  define __MDSPAN_OP6(mds, a, b, c, d, e, f) mds(a,b,c,d,e,f)
-#endif
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/default_accessor.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/default_accessor.hpp
deleted file mode 100644
index f94816d7e2e1880703a7a02e53e6d900dd61d924..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/default_accessor.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-#pragma once
-
-#include "macros.hpp"
-
-#include <cstddef> // size_t
-
-namespace std {
-namespace experimental {
-
-template <class ElementType>
-struct default_accessor {
-
-  using offset_policy = default_accessor;
-  using element_type = ElementType;
-  using reference = ElementType&;
-  using data_handle_type = ElementType*;
-
-  MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr default_accessor() noexcept = default;
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class OtherElementType,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_convertible, OtherElementType(*)[], element_type(*)[])
-    )
-  )
-  MDSPAN_INLINE_FUNCTION
-  constexpr default_accessor(default_accessor<OtherElementType>) noexcept {}
-
-  MDSPAN_INLINE_FUNCTION
-  constexpr data_handle_type
-  offset(data_handle_type p, size_t i) const noexcept {
-    return p + i;
-  }
-
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr reference access(data_handle_type p, size_t i) const noexcept {
-    return p[i];
-  }
-
-};
-
-} // end namespace experimental
-} // end namespace std
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/dynamic_extent.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/dynamic_extent.hpp
deleted file mode 100644
index 9a8346bffcf74e5fb475ef9e3633b9a35c8b12ec..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/dynamic_extent.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-#pragma once
-
-#include "macros.hpp"
-
-#include <cstddef>  // size_t
-#include <limits>   // numeric_limits
-
-namespace std {
-namespace experimental {
-
-_MDSPAN_INLINE_VARIABLE constexpr auto dynamic_extent = std::numeric_limits<size_t>::max();
-
-} // end namespace experimental
-} // namespace std
-
-//==============================================================================================================
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/extents.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/extents.hpp
deleted file mode 100644
index 2295d81f9d9f514aa7e7b7287ff19648429e606b..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/extents.hpp
+++ /dev/null
@@ -1,595 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-
-#pragma once
-#include "dynamic_extent.hpp"
-
-#ifdef __cpp_lib_span
-#include <span>
-#endif
-#include <array>
-
-#include <cinttypes>
-
-namespace std {
-namespace experimental {
-namespace detail {
-
-// Function used to check compatibility of extents in converting constructor
-// can't be a private member function for some reason.
-template <size_t... Extents, size_t... OtherExtents>
-static constexpr std::integral_constant<bool, false> __check_compatible_extents(
-    std::integral_constant<bool, false>,
-    std::integer_sequence<size_t, Extents...>,
-    std::integer_sequence<size_t, OtherExtents...>) noexcept {
-  return {};
-}
-
-// This helper prevents ICE's on MSVC.
-template <size_t Lhs, size_t Rhs>
-struct __compare_extent_compatible : std::integral_constant<bool,
-     Lhs == dynamic_extent ||
-     Rhs == dynamic_extent ||
-     Lhs == Rhs>
-{};
-
-template <size_t... Extents, size_t... OtherExtents>
-static constexpr std::integral_constant<
-    bool, _MDSPAN_FOLD_AND(__compare_extent_compatible<Extents, OtherExtents>::value)>
-__check_compatible_extents(
-    std::integral_constant<bool, true>,
-    std::integer_sequence<size_t, Extents...>,
-    std::integer_sequence<size_t, OtherExtents...>) noexcept {
-  return {};
-}
-
-// ------------------------------------------------------------------
-// ------------ static_array ----------------------------------------
-// ------------------------------------------------------------------
-
-// array like class which provides an array of static values with get
-// function and operator [].
-
-// Implementation of Static Array with recursive implementation of get.
-template <size_t R, class T, T... Extents> struct static_array_impl;
-
-template <size_t R, class T, T FirstExt, T... Extents>
-struct static_array_impl<R, T, FirstExt, Extents...> {
-  MDSPAN_INLINE_FUNCTION
-  constexpr static T get(size_t r) {
-    if (r == R)
-      return FirstExt;
-    else
-      return static_array_impl<R + 1, T, Extents...>::get(r);
-  }
-  template <size_t r> MDSPAN_INLINE_FUNCTION constexpr static T get() {
-#if MDSPAN_HAS_CXX_17
-    if constexpr (r == R)
-      return FirstExt;
-    else
-      return static_array_impl<R + 1, T, Extents...>::template get<r>();
-#else
-    get(r);
-#endif
-  }
-};
-
-// End the recursion
-template <size_t R, class T, T FirstExt>
-struct static_array_impl<R, T, FirstExt> {
-  MDSPAN_INLINE_FUNCTION
-  constexpr static T get(size_t) { return FirstExt; }
-  template <size_t> MDSPAN_INLINE_FUNCTION constexpr static T get() {
-    return FirstExt;
-  }
-};
-
-// Don't start recursion if size 0
-template <class T> struct static_array_impl<0, T> {
-  MDSPAN_INLINE_FUNCTION
-  constexpr static T get(size_t) { return T(); }
-  template <size_t> MDSPAN_INLINE_FUNCTION constexpr static T get() {
-    return T();
-  }
-};
-
-// Static array, provides get<r>(), get(r) and operator[r]
-template <class T, T... Values> struct static_array:
-  public static_array_impl<0, T, Values...>  {
-
-public:
-  using value_type = T;
-
-  MDSPAN_INLINE_FUNCTION
-  constexpr static size_t size() { return sizeof...(Values); }
-};
-
-
-// ------------------------------------------------------------------
-// ------------ index_sequence_scan ---------------------------------
-// ------------------------------------------------------------------
-
-// index_sequence_scan takes compile time values and provides get(r)
-// and get<r>() which return the sum of the first r-1 values.
-
-// Recursive implementation for get
-template <size_t R, size_t... Values> struct index_sequence_scan_impl;
-
-template <size_t R, size_t FirstVal, size_t... Values>
-struct index_sequence_scan_impl<R, FirstVal, Values...> {
-  MDSPAN_INLINE_FUNCTION
-  constexpr static size_t get(size_t r) {
-    if (r > R)
-      return FirstVal + index_sequence_scan_impl<R + 1, Values...>::get(r);
-    else
-      return 0;
-  }
-};
-
-template <size_t R, size_t FirstVal>
-struct index_sequence_scan_impl<R, FirstVal> {
-#if defined(__NVCC__) || defined(__NVCOMPILER)
-  // NVCC warns about pointless comparison with 0 for R==0 and r being const
-  // evaluatable and also 0.
-  MDSPAN_INLINE_FUNCTION
-  constexpr static size_t get(size_t r) {
-    return static_cast<int64_t>(R) > static_cast<int64_t>(r) ? FirstVal : 0;
-  }
-#else
-  MDSPAN_INLINE_FUNCTION
-  constexpr static size_t get(size_t r) { return R > r ? FirstVal : 0; }
-#endif
-};
-template <> struct index_sequence_scan_impl<0> {
-  MDSPAN_INLINE_FUNCTION
-  constexpr static size_t get(size_t) { return 0; }
-};
-
-// ------------------------------------------------------------------
-// ------------ possibly_empty_array  -------------------------------
-// ------------------------------------------------------------------
-
-// array like class which provides get function and operator [], and
-// has a specialization for the size 0 case.
-// This is needed to make the maybe_static_array be truly empty, for
-// all static values.
-
-template <class T, size_t N> struct possibly_empty_array {
-  T vals[N];
-  MDSPAN_INLINE_FUNCTION
-  constexpr T &operator[](size_t r) { return vals[r]; }
-  MDSPAN_INLINE_FUNCTION
-  constexpr const T &operator[](size_t r) const { return vals[r]; }
-};
-
-template <class T> struct possibly_empty_array<T, 0> {
-  MDSPAN_INLINE_FUNCTION
-  constexpr T operator[](size_t) { return T(); }
-  MDSPAN_INLINE_FUNCTION
-  constexpr const T operator[](size_t) const { return T(); }
-};
-
-// ------------------------------------------------------------------
-// ------------ maybe_static_array ----------------------------------
-// ------------------------------------------------------------------
-
-// array like class which has a mix of static and runtime values but
-// only stores the runtime values.
-// The type of the static and the runtime values can be different.
-// The position of a dynamic value is indicated through a tag value.
-template <class TDynamic, class TStatic, TStatic dyn_tag, TStatic... Values>
-struct maybe_static_array {
-
-  static_assert(is_convertible<TStatic, TDynamic>::value, "maybe_static_array: TStatic must be convertible to TDynamic");
-  static_assert(is_convertible<TDynamic, TStatic>::value, "maybe_static_array: TDynamic must be convertible to TStatic");
-
-private:
-  // Static values member
-  using static_vals_t = static_array<TStatic, Values...>;
-  constexpr static size_t m_size = sizeof...(Values);
-  constexpr static size_t m_size_dynamic =
-      _MDSPAN_FOLD_PLUS_RIGHT((Values == dyn_tag), 0);
-
-  // Dynamic values member
-  _MDSPAN_NO_UNIQUE_ADDRESS possibly_empty_array<TDynamic, m_size_dynamic>
-      m_dyn_vals;
-
-  // static mapping of indices to the position in the dynamic values array
-  using dyn_map_t = index_sequence_scan_impl<0, static_cast<size_t>(Values == dyn_tag)...>;
-public:
-
-  // two types for static and dynamic values
-  using value_type = TDynamic;
-  using static_value_type = TStatic;
-  // tag value indicating dynamic value
-  constexpr static static_value_type tag_value = dyn_tag;
-
-  constexpr maybe_static_array() = default;
-
-  // constructor for all static values
-  // TODO: add precondition check?
-  MDSPAN_TEMPLATE_REQUIRES(class... Vals,
-                           /* requires */ ((m_size_dynamic == 0) &&
-                                           (sizeof...(Vals) > 0)))
-  MDSPAN_INLINE_FUNCTION
-  constexpr maybe_static_array(Vals...) : m_dyn_vals{} {}
-
-  // constructors from dynamic values only
-  MDSPAN_TEMPLATE_REQUIRES(class... DynVals,
-                           /* requires */ (sizeof...(DynVals) ==
-                                               m_size_dynamic &&
-                                           m_size_dynamic > 0))
-  MDSPAN_INLINE_FUNCTION
-  constexpr maybe_static_array(DynVals... vals)
-      : m_dyn_vals{static_cast<TDynamic>(vals)...} {}
-
-
-  MDSPAN_TEMPLATE_REQUIRES(class T, size_t N,
-                           /* requires */ (N == m_size_dynamic && N > 0))
-  MDSPAN_INLINE_FUNCTION
-  constexpr maybe_static_array(const std::array<T, N> &vals) {
-    for (size_t r = 0; r < N; r++)
-      m_dyn_vals[r] = static_cast<TDynamic>(vals[r]);
-  }
-
-  MDSPAN_TEMPLATE_REQUIRES(class T, size_t N,
-                           /* requires */ (N == m_size_dynamic && N == 0))
-  MDSPAN_INLINE_FUNCTION
-  constexpr maybe_static_array(const std::array<T, N> &) : m_dyn_vals{} {}
-
-#ifdef __cpp_lib_span
-  MDSPAN_TEMPLATE_REQUIRES(class T, size_t N,
-                           /* requires */ (N == m_size_dynamic))
-  MDSPAN_INLINE_FUNCTION
-  constexpr maybe_static_array(const std::span<T, N> &vals) {
-    for (size_t r = 0; r < N; r++)
-      m_dyn_vals[r] = static_cast<TDynamic>(vals[r]);
-  }
-#endif
-
-  // constructors from all values
-  MDSPAN_TEMPLATE_REQUIRES(class... DynVals,
-                           /* requires */ (sizeof...(DynVals) !=
-                                               m_size_dynamic &&
-                                           m_size_dynamic > 0))
-  MDSPAN_INLINE_FUNCTION
-  constexpr maybe_static_array(DynVals... vals) {
-    static_assert((sizeof...(DynVals) == m_size), "Invalid number of values.");
-    TDynamic values[m_size]{static_cast<TDynamic>(vals)...};
-    for (size_t r = 0; r < m_size; r++) {
-      TStatic static_val = static_vals_t::get(r);
-      if (static_val == dyn_tag) {
-        m_dyn_vals[dyn_map_t::get(r)] = values[r];
-      }
-// Precondition check
-#ifdef _MDSPAN_DEBUG
-      else {
-        assert(values[r] == static_cast<TDynamic>(static_val));
-      }
-#endif
-    }
-  }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-      class T, size_t N,
-      /* requires */ (N != m_size_dynamic && m_size_dynamic > 0))
-  MDSPAN_INLINE_FUNCTION
-  constexpr maybe_static_array(const std::array<T, N> &vals) {
-    static_assert((N == m_size), "Invalid number of values.");
-// Precondition check
-#ifdef _MDSPAN_DEBUG
-    assert(N == m_size);
-#endif
-    for (size_t r = 0; r < m_size; r++) {
-      TStatic static_val = static_vals_t::get(r);
-      if (static_val == dyn_tag) {
-        m_dyn_vals[dyn_map_t::get(r)] = static_cast<TDynamic>(vals[r]);
-      }
-// Precondition check
-#ifdef _MDSPAN_DEBUG
-      else {
-        assert(static_cast<TDynamic>(vals[r]) ==
-               static_cast<TDynamic>(static_val));
-      }
-#endif
-    }
-  }
-
-#ifdef __cpp_lib_span
-  MDSPAN_TEMPLATE_REQUIRES(
-      class T, size_t N,
-      /* requires */ (N != m_size_dynamic && m_size_dynamic > 0))
-  MDSPAN_INLINE_FUNCTION
-  constexpr maybe_static_array(const std::span<T, N> &vals) {
-    static_assert((N == m_size) || (m_size == dynamic_extent));
-#ifdef _MDSPAN_DEBUG
-    assert(N == m_size);
-#endif
-    for (size_t r = 0; r < m_size; r++) {
-      TStatic static_val = static_vals_t::get(r);
-      if (static_val == dyn_tag) {
-        m_dyn_vals[dyn_map_t::get(r)] = static_cast<TDynamic>(vals[r]);
-      }
-#ifdef _MDSPAN_DEBUG
-      else {
-        assert(static_cast<TDynamic>(vals[r]) ==
-               static_cast<TDynamic>(static_val));
-      }
-#endif
-    }
-  }
-#endif
-
-  // access functions
-  MDSPAN_INLINE_FUNCTION
-  constexpr static TStatic static_value(size_t r) { return static_vals_t::get(r); }
-
-  MDSPAN_INLINE_FUNCTION
-  constexpr TDynamic value(size_t r) const {
-    TStatic static_val = static_vals_t::get(r);
-    return static_val == dyn_tag ? m_dyn_vals[dyn_map_t::get(r)]
-                                        : static_cast<TDynamic>(static_val);
-  }
-  MDSPAN_INLINE_FUNCTION
-  constexpr TDynamic operator[](size_t r) const { return value(r); }
-
-
-  // observers
-  MDSPAN_INLINE_FUNCTION
-  constexpr static size_t size() { return m_size; }
-  MDSPAN_INLINE_FUNCTION
-  constexpr static size_t size_dynamic() { return m_size_dynamic; }
-};
-
-} // namespace detail
-} // namespace experimental
-} // namespace std
-
-namespace std {
-namespace experimental {
-
-// ------------------------------------------------------------------
-// ------------ extents ---------------------------------------------
-// ------------------------------------------------------------------
-
-// Class to describe the extents of a multi dimensional array.
-// Used by mdspan, mdarray and layout mappings.
-// See ISO C++ standard [mdspan.extents]
-
-template <class IndexType, size_t... Extents> class extents {
-public:
-  // typedefs for integral types used
-  using index_type = IndexType;
-  using size_type = make_unsigned_t<index_type>;
-  using rank_type = size_t;
-
-  static_assert(std::is_integral<index_type>::value && !std::is_same<index_type, bool>::value,
-                "extents::index_type must be a signed or unsigned integer type");
-private:
-  constexpr static rank_type m_rank = sizeof...(Extents);
-  constexpr static rank_type m_rank_dynamic =
-      _MDSPAN_FOLD_PLUS_RIGHT((Extents == dynamic_extent), /* + ... + */ 0);
-
-  // internal storage type using maybe_static_array
-  using vals_t =
-      detail::maybe_static_array<IndexType, size_t, dynamic_extent, Extents...>;
-  _MDSPAN_NO_UNIQUE_ADDRESS vals_t m_vals;
-
-public:
-  // [mdspan.extents.obs], observers of multidimensional index space
-  MDSPAN_INLINE_FUNCTION
-  constexpr static rank_type rank() noexcept { return m_rank; }
-  MDSPAN_INLINE_FUNCTION
-  constexpr static rank_type rank_dynamic() noexcept { return m_rank_dynamic; }
-
-  MDSPAN_INLINE_FUNCTION
-  constexpr index_type extent(rank_type r) const noexcept { return m_vals.value(r); }
-  MDSPAN_INLINE_FUNCTION
-  constexpr static size_t static_extent(rank_type r) noexcept {
-    return vals_t::static_value(r);
-  }
-
-  // [mdspan.extents.cons], constructors
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr extents() noexcept = default;
-
-  // Construction from just dynamic or all values.
-  // Precondition check is deferred to maybe_static_array constructor
-  MDSPAN_TEMPLATE_REQUIRES(
-      class... OtherIndexTypes,
-      /* requires */ (
-          _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_convertible, OtherIndexTypes,
-                                         index_type) /* && ... */) &&
-          _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_nothrow_constructible, index_type,
-                                         OtherIndexTypes) /* && ... */) &&
-          (sizeof...(OtherIndexTypes) == m_rank ||
-           sizeof...(OtherIndexTypes) == m_rank_dynamic)))
-  MDSPAN_INLINE_FUNCTION
-  constexpr explicit extents(OtherIndexTypes... dynvals) noexcept
-      : m_vals(static_cast<index_type>(dynvals)...) {}
-
-  MDSPAN_TEMPLATE_REQUIRES(
-      class OtherIndexType, size_t N,
-      /* requires */
-      (
-          _MDSPAN_TRAIT(is_convertible, OtherIndexType, index_type) &&
-          _MDSPAN_TRAIT(is_nothrow_constructible, index_type,
-              OtherIndexType) &&
-          (N == m_rank || N == m_rank_dynamic)))
-  MDSPAN_INLINE_FUNCTION
-  MDSPAN_CONDITIONAL_EXPLICIT(N != m_rank_dynamic)
-  constexpr extents(const array<OtherIndexType, N> &exts) noexcept
-      : m_vals(std::move(exts)) {}
-
-#ifdef __cpp_lib_span
-  MDSPAN_TEMPLATE_REQUIRES(
-      class OtherIndexType, size_t N,
-      /* requires */
-      (_MDSPAN_TRAIT(is_convertible, OtherIndexType, index_type) &&
-       _MDSPAN_TRAIT(is_nothrow_constructible, index_type, OtherIndexType) &&
-       (N == m_rank || N == m_rank_dynamic)))
-  MDSPAN_INLINE_FUNCTION
-  MDSPAN_CONDITIONAL_EXPLICIT(N != m_rank_dynamic)
-  constexpr extents(const span<OtherIndexType, N> &exts) noexcept
-      : m_vals(std::move(exts)) {}
-#endif
-
-private:
-  // Function to construct extents storage from other extents.
-  // With C++ 17 the first two variants could be collapsed using if constexpr
-  // in which case you don't need all the requires clauses.
-  // in C++ 14 mode that doesn't work due to infinite recursion
-  MDSPAN_TEMPLATE_REQUIRES(
-      size_t DynCount, size_t R, class OtherExtents, class... DynamicValues,
-      /* requires */ ((R < m_rank) && (static_extent(R) == dynamic_extent)))
-  MDSPAN_INLINE_FUNCTION
-  vals_t __construct_vals_from_extents(std::integral_constant<size_t, DynCount>,
-                                       std::integral_constant<size_t, R>,
-                                       const OtherExtents &exts,
-                                       DynamicValues... dynamic_values) noexcept {
-    return __construct_vals_from_extents(
-        std::integral_constant<size_t, DynCount + 1>(),
-        std::integral_constant<size_t, R + 1>(), exts, dynamic_values...,
-        exts.extent(R));
-  }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-      size_t DynCount, size_t R, class OtherExtents, class... DynamicValues,
-      /* requires */ ((R < m_rank) && (static_extent(R) != dynamic_extent)))
-  MDSPAN_INLINE_FUNCTION
-  vals_t __construct_vals_from_extents(std::integral_constant<size_t, DynCount>,
-                                       std::integral_constant<size_t, R>,
-                                       const OtherExtents &exts,
-                                       DynamicValues... dynamic_values) noexcept {
-    return __construct_vals_from_extents(
-        std::integral_constant<size_t, DynCount>(),
-        std::integral_constant<size_t, R + 1>(), exts, dynamic_values...);
-  }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-      size_t DynCount, size_t R, class OtherExtents, class... DynamicValues,
-      /* requires */ ((R == m_rank) && (DynCount == m_rank_dynamic)))
-  MDSPAN_INLINE_FUNCTION
-  vals_t __construct_vals_from_extents(std::integral_constant<size_t, DynCount>,
-                                       std::integral_constant<size_t, R>,
-                                       const OtherExtents &,
-                                       DynamicValues... dynamic_values) noexcept {
-    return vals_t{static_cast<index_type>(dynamic_values)...};
-  }
-
-public:
-
-  // Converting constructor from other extents specializations
-  MDSPAN_TEMPLATE_REQUIRES(
-      class OtherIndexType, size_t... OtherExtents,
-      /* requires */
-      (
-          /* multi-stage check to protect from invalid pack expansion when sizes
-             don't match? */
-          decltype(detail::__check_compatible_extents(
-              std::integral_constant<bool, sizeof...(Extents) ==
-                                               sizeof...(OtherExtents)>{},
-              std::integer_sequence<size_t, Extents...>{},
-              std::integer_sequence<size_t, OtherExtents...>{}))::value))
-  MDSPAN_INLINE_FUNCTION
-  MDSPAN_CONDITIONAL_EXPLICIT((((Extents != dynamic_extent) &&
-                                (OtherExtents == dynamic_extent)) ||
-                               ...) ||
-                              (std::numeric_limits<index_type>::max() <
-                               std::numeric_limits<OtherIndexType>::max()))
-  constexpr extents(const extents<OtherIndexType, OtherExtents...> &other) noexcept
-      : m_vals(__construct_vals_from_extents(
-            std::integral_constant<size_t, 0>(),
-            std::integral_constant<size_t, 0>(), other)) {}
-
-  // Comparison operator
-  template <class OtherIndexType, size_t... OtherExtents>
-  MDSPAN_INLINE_FUNCTION friend constexpr bool
-  operator==(const extents &lhs,
-             const extents<OtherIndexType, OtherExtents...> &rhs) noexcept {
-    bool value = true;
-    for (size_type r = 0; r < m_rank; r++)
-      value &= rhs.extent(r) == lhs.extent(r);
-    return value;
-  }
-
-#if !(MDSPAN_HAS_CXX_20)
-  template <class OtherIndexType, size_t... OtherExtents>
-  MDSPAN_INLINE_FUNCTION friend constexpr bool
-  operator!=(extents const &lhs,
-             extents<OtherIndexType, OtherExtents...> const &rhs) noexcept {
-    return !(lhs == rhs);
-  }
-#endif
-};
-
-// Recursive helper classes to implement dextents alias for extents
-namespace detail {
-
-template <class IndexType, size_t Rank,
-          class Extents = ::std::experimental::extents<IndexType>>
-struct __make_dextents;
-
-template <class IndexType, size_t Rank, size_t... ExtentsPack>
-struct __make_dextents<
-    IndexType, Rank, ::std::experimental::extents<IndexType, ExtentsPack...>> {
-  using type = typename __make_dextents<
-      IndexType, Rank - 1,
-      ::std::experimental::extents<IndexType,
-                                   ::std::experimental::dynamic_extent,
-                                   ExtentsPack...>>::type;
-};
-
-template <class IndexType, size_t... ExtentsPack>
-struct __make_dextents<
-    IndexType, 0, ::std::experimental::extents<IndexType, ExtentsPack...>> {
-  using type = ::std::experimental::extents<IndexType, ExtentsPack...>;
-};
-
-} // end namespace detail
-
-// [mdspan.extents.dextents], alias template
-template <class IndexType, size_t Rank>
-using dextents = typename detail::__make_dextents<IndexType, Rank>::type;
-
-// Deduction guide for extents
-#if defined(_MDSPAN_USE_CLASS_TEMPLATE_ARGUMENT_DEDUCTION)
-template <class... IndexTypes>
-extents(IndexTypes...)
-    -> extents<size_t,
-               size_t((IndexTypes(), ::std::experimental::dynamic_extent))...>;
-#endif
-
-// Helper type traits for identifying a class as extents.
-namespace detail {
-
-template <class T> struct __is_extents : ::std::false_type {};
-
-template <class IndexType, size_t... ExtentsPack>
-struct __is_extents<::std::experimental::extents<IndexType, ExtentsPack...>>
-    : ::std::true_type {};
-
-template <class T>
-#if MDSPAN_HAS_CXX_17
-inline
-#else
-static
-#endif
-constexpr bool __is_extents_v = __is_extents<T>::value;
-
-} // namespace detail
-} // namespace experimental
-} // namespace std
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/full_extent_t.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/full_extent_t.hpp
deleted file mode 100644
index a8742620ede1858418d0c057cd788355bc2d3e28..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/full_extent_t.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-#pragma once
-
-#include "macros.hpp"
-
-namespace std {
-namespace experimental {
-
-struct full_extent_t { explicit full_extent_t() = default; };
-
-_MDSPAN_INLINE_VARIABLE constexpr auto full_extent = full_extent_t{ };
-
-} // end namespace experimental
-} // namespace std
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/layout_left.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/layout_left.hpp
deleted file mode 100644
index 0bfa5680977d43c647d59f09ae0600e3ba00de91..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/layout_left.hpp
+++ /dev/null
@@ -1,223 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-#pragma once
-
-#include "macros.hpp"
-#include "trait_backports.hpp"
-#include "extents.hpp"
-
-namespace std {
-namespace experimental {
-
-//==============================================================================
-
-template <class Extents>
-class layout_left::mapping {
-  public:
-    using extents_type = Extents;
-    using index_type = typename extents_type::index_type;
-    using size_type = typename extents_type::size_type;
-    using rank_type = typename extents_type::rank_type;
-    using layout_type = layout_left;
-  private:
-
-    static_assert(detail::__is_extents_v<extents_type>, "std::experimental::layout_left::mapping must be instantiated with a specialization of std::experimental::extents.");
-
-    template <class>
-    friend class mapping;
-
-    // i0+(i1 + E(1)*(i2 + E(2)*i3))
-    template <size_t r, size_t Rank>
-    struct __rank_count {};
-
-    template <size_t r, size_t Rank, class I, class... Indices>
-    _MDSPAN_HOST_DEVICE
-    constexpr index_type __compute_offset(
-      __rank_count<r,Rank>, const I& i, Indices... idx) const {
-      return __compute_offset(__rank_count<r+1,Rank>(), idx...) *
-                 __extents.extent(r) + i;
-    }
-
-    template<class I>
-    _MDSPAN_HOST_DEVICE
-    constexpr index_type __compute_offset(
-      __rank_count<extents_type::rank()-1,extents_type::rank()>, const I& i) const {
-      return i;
-    }
-
-    _MDSPAN_HOST_DEVICE
-    constexpr index_type __compute_offset(__rank_count<0,0>) const { return 0; }
-
-  public:
-
-    //--------------------------------------------------------------------------------
-
-    MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mapping() noexcept = default;
-    MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mapping(mapping const&) noexcept = default;
-
-    _MDSPAN_HOST_DEVICE
-    constexpr mapping(extents_type const& __exts) noexcept
-      :__extents(__exts)
-    { }
-
-    MDSPAN_TEMPLATE_REQUIRES(
-      class OtherExtents,
-      /* requires */ (
-        _MDSPAN_TRAIT(is_constructible, extents_type, OtherExtents)
-      )
-    )
-    MDSPAN_CONDITIONAL_EXPLICIT((!is_convertible<OtherExtents, extents_type>::value)) // needs two () due to comma
-    MDSPAN_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14
-    mapping(mapping<OtherExtents> const& other) noexcept // NOLINT(google-explicit-constructor)
-      :__extents(other.extents())
-    {
-       /*
-        * TODO: check precondition
-        * other.required_span_size() is a representable value of type index_type
-        */
-    }
-
-    MDSPAN_TEMPLATE_REQUIRES(
-      class OtherExtents,
-      /* requires */ (
-        _MDSPAN_TRAIT(is_constructible, extents_type, OtherExtents) &&
-        (extents_type::rank() <= 1)
-      )
-    )
-    MDSPAN_CONDITIONAL_EXPLICIT((!is_convertible<OtherExtents, extents_type>::value)) // needs two () due to comma
-    MDSPAN_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14
-    mapping(layout_right::mapping<OtherExtents> const& other) noexcept // NOLINT(google-explicit-constructor)
-      :__extents(other.extents())
-    {
-       /*
-        * TODO: check precondition
-        * other.required_span_size() is a representable value of type index_type
-        */
-    }
-
-    MDSPAN_TEMPLATE_REQUIRES(
-      class OtherExtents,
-      /* requires */ (
-        _MDSPAN_TRAIT(is_constructible, extents_type, OtherExtents)
-      )
-    )
-    MDSPAN_CONDITIONAL_EXPLICIT((extents_type::rank() > 0))
-    MDSPAN_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14
-    mapping(layout_stride::mapping<OtherExtents> const& other) noexcept // NOLINT(google-explicit-constructor)
-      :__extents(other.extents())
-    {
-       /*
-        * TODO: check precondition
-        * other.required_span_size() is a representable value of type index_type
-        */
-       #if !defined(_MDSPAN_HAS_CUDA) && !defined(_MDSPAN_HAS_HIP) && !defined(NDEBUG)
-       index_type stride = 1;
-       for(rank_type r=0; r<__extents.rank(); r++) {
-         if(stride != static_cast<index_type>(other.stride(r))) {
-           // Note this throw will lead to a terminate if triggered since this function is marked noexcept
-           throw std::runtime_error("Assigning layout_stride to layout_left with invalid strides.");
-         }
-         stride *= __extents.extent(r);
-       }
-       #endif
-    }
-
-    MDSPAN_INLINE_FUNCTION_DEFAULTED _MDSPAN_CONSTEXPR_14_DEFAULTED mapping& operator=(mapping const&) noexcept = default;
-
-    MDSPAN_INLINE_FUNCTION
-    constexpr const extents_type& extents() const noexcept {
-      return __extents;
-    }
-
-    MDSPAN_INLINE_FUNCTION
-    constexpr index_type required_span_size() const noexcept {
-      index_type value = 1;
-      for(rank_type r=0; r<extents_type::rank(); r++) value*=__extents.extent(r);
-      return value;
-    }
-
-    //--------------------------------------------------------------------------------
-
-    MDSPAN_TEMPLATE_REQUIRES(
-      class... Indices,
-      /* requires */ (
-        (sizeof...(Indices) == extents_type::rank()) &&
-        _MDSPAN_FOLD_AND(
-           (_MDSPAN_TRAIT(is_convertible, Indices, index_type) &&
-            _MDSPAN_TRAIT(is_nothrow_constructible, index_type, Indices))
-        )
-      )
-    )
-    _MDSPAN_HOST_DEVICE
-    constexpr index_type operator()(Indices... idxs) const noexcept {
-      return __compute_offset(__rank_count<0, extents_type::rank()>(), static_cast<index_type>(idxs)...);
-    }
-
-
-
-    MDSPAN_INLINE_FUNCTION static constexpr bool is_always_unique() noexcept { return true; }
-    MDSPAN_INLINE_FUNCTION static constexpr bool is_always_exhaustive() noexcept { return true; }
-    MDSPAN_INLINE_FUNCTION static constexpr bool is_always_strided() noexcept { return true; }
-
-    MDSPAN_INLINE_FUNCTION constexpr bool is_unique() const noexcept { return true; }
-    MDSPAN_INLINE_FUNCTION constexpr bool is_exhaustive() const noexcept { return true; }
-    MDSPAN_INLINE_FUNCTION constexpr bool is_strided() const noexcept { return true; }
-
-    MDSPAN_INLINE_FUNCTION
-    constexpr index_type stride(rank_type i) const noexcept
-#if MDSPAN_HAS_CXX_20
-      requires ( Extents::rank() > 0 )
-#endif
-    {
-      index_type value = 1;
-      for(rank_type r=0; r<i; r++) value*=__extents.extent(r);
-      return value;
-    }
-
-    template<class OtherExtents>
-    MDSPAN_INLINE_FUNCTION
-    friend constexpr bool operator==(mapping const& lhs, mapping<OtherExtents> const& rhs) noexcept {
-      return lhs.extents() == rhs.extents();
-    }
-
-    // In C++ 20 the not equal exists if equal is found
-#if !(MDSPAN_HAS_CXX_20)
-    template<class OtherExtents>
-    MDSPAN_INLINE_FUNCTION
-    friend constexpr bool operator!=(mapping const& lhs, mapping<OtherExtents> const& rhs) noexcept {
-      return lhs.extents() != rhs.extents();
-    }
-#endif
-
-    // Not really public, but currently needed to implement fully constexpr useable submdspan:
-    template<size_t N, class SizeType, size_t ... E, size_t ... Idx>
-    constexpr index_type __get_stride(std::experimental::extents<SizeType, E...>,integer_sequence<size_t, Idx...>) const {
-      return _MDSPAN_FOLD_TIMES_RIGHT((Idx<N? __extents.template __extent<Idx>():1),1);
-    }
-    template<size_t N>
-    constexpr index_type __stride() const noexcept {
-      return __get_stride<N>(__extents, make_index_sequence<extents_type::rank()>());
-    }
-
-private:
-   _MDSPAN_NO_UNIQUE_ADDRESS extents_type __extents{};
-
-};
-
-
-} // end namespace experimental
-} // end namespace std
-
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/layout_right.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/layout_right.hpp
deleted file mode 100644
index a3f3ab8691c53301ead701d404129910ff5f7646..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/layout_right.hpp
+++ /dev/null
@@ -1,224 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-#pragma once
-
-#include "macros.hpp"
-#include "trait_backports.hpp"
-#include "extents.hpp"
-#include <stdexcept>
-#include "layout_stride.hpp"
-
-namespace std {
-namespace experimental {
-
-//==============================================================================
-template <class Extents>
-class layout_right::mapping {
-  public:
-    using extents_type = Extents;
-    using index_type = typename extents_type::index_type;
-    using size_type = typename extents_type::size_type;
-    using rank_type = typename extents_type::rank_type;
-    using layout_type = layout_right;
-  private:
-
-    static_assert(detail::__is_extents_v<extents_type>, "std::experimental::layout_right::mapping must be instantiated with a specialization of std::experimental::extents.");
-
-    template <class>
-    friend class mapping;
-
-    // i0+(i1 + E(1)*(i2 + E(2)*i3))
-    template <size_t r, size_t Rank>
-    struct __rank_count {};
-
-    template <size_t r, size_t Rank, class I, class... Indices>
-    _MDSPAN_HOST_DEVICE
-    constexpr index_type __compute_offset(
-      index_type offset, __rank_count<r,Rank>, const I& i, Indices... idx) const {
-      return __compute_offset(offset * __extents.extent(r) + i,__rank_count<r+1,Rank>(),  idx...);
-    }
-
-    template<class I, class ... Indices>
-    _MDSPAN_HOST_DEVICE
-    constexpr index_type __compute_offset(
-      __rank_count<0,extents_type::rank()>, const I& i, Indices... idx) const {
-      return __compute_offset(i,__rank_count<1,extents_type::rank()>(),idx...);
-    }
-
-    _MDSPAN_HOST_DEVICE
-    constexpr index_type __compute_offset(size_t offset, __rank_count<extents_type::rank(), extents_type::rank()>) const {
-      return static_cast<index_type>(offset);
-    }
-
-    _MDSPAN_HOST_DEVICE
-    constexpr index_type __compute_offset(__rank_count<0,0>) const { return 0; }
-
-  public:
-
-    //--------------------------------------------------------------------------------
-
-    MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mapping() noexcept = default;
-    MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mapping(mapping const&) noexcept = default;
-
-    _MDSPAN_HOST_DEVICE
-    constexpr mapping(extents_type const& __exts) noexcept
-      :__extents(__exts)
-    { }
-
-    MDSPAN_TEMPLATE_REQUIRES(
-      class OtherExtents,
-      /* requires */ (
-        _MDSPAN_TRAIT(is_constructible, extents_type, OtherExtents)
-      )
-    )
-    MDSPAN_CONDITIONAL_EXPLICIT((!is_convertible<OtherExtents, extents_type>::value)) // needs two () due to comma
-    MDSPAN_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14
-    mapping(mapping<OtherExtents> const& other) noexcept // NOLINT(google-explicit-constructor)
-      :__extents(other.extents())
-    {
-       /*
-        * TODO: check precondition
-        * other.required_span_size() is a representable value of type index_type
-        */
-    }
-
-    MDSPAN_TEMPLATE_REQUIRES(
-      class OtherExtents,
-      /* requires */ (
-        _MDSPAN_TRAIT(is_constructible, extents_type, OtherExtents) &&
-        (extents_type::rank() <= 1)
-      )
-    )
-    MDSPAN_CONDITIONAL_EXPLICIT((!is_convertible<OtherExtents, extents_type>::value)) // needs two () due to comma
-    MDSPAN_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14
-    mapping(layout_left::mapping<OtherExtents> const& other) noexcept // NOLINT(google-explicit-constructor)
-      :__extents(other.extents())
-    {
-       /*
-        * TODO: check precondition
-        * other.required_span_size() is a representable value of type index_type
-        */
-    }
-
-    MDSPAN_TEMPLATE_REQUIRES(
-      class OtherExtents,
-      /* requires */ (
-        _MDSPAN_TRAIT(is_constructible, extents_type, OtherExtents)
-      )
-    )
-    MDSPAN_CONDITIONAL_EXPLICIT((extents_type::rank() > 0))
-    MDSPAN_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14
-    mapping(layout_stride::mapping<OtherExtents> const& other) noexcept // NOLINT(google-explicit-constructor)
-      :__extents(other.extents())
-    {
-       /*
-        * TODO: check precondition
-        * other.required_span_size() is a representable value of type index_type
-        */
-       #if !defined(_MDSPAN_HAS_CUDA) && !defined(_MDSPAN_HAS_HIP) && !defined(NDEBUG)
-       index_type stride = 1;
-       for(rank_type r=__extents.rank(); r>0; r--) {
-         if(stride != static_cast<index_type>(other.stride(r-1))) {
-           // Note this throw will lead to a terminate if triggered since this function is marked noexcept
-           throw std::runtime_error("Assigning layout_stride to layout_right with invalid strides.");
-         }
-         stride *= __extents.extent(r-1);
-       }
-       #endif
-    }
-
-    MDSPAN_INLINE_FUNCTION_DEFAULTED _MDSPAN_CONSTEXPR_14_DEFAULTED mapping& operator=(mapping const&) noexcept = default;
-
-    MDSPAN_INLINE_FUNCTION
-    constexpr const extents_type& extents() const noexcept {
-      return __extents;
-    }
-
-    MDSPAN_INLINE_FUNCTION
-    constexpr index_type required_span_size() const noexcept {
-      index_type value = 1;
-      for(rank_type r=0; r != extents_type::rank(); ++r) value*=__extents.extent(r);
-      return value;
-    }
-
-    //--------------------------------------------------------------------------------
-
-    MDSPAN_TEMPLATE_REQUIRES(
-      class... Indices,
-      /* requires */ (
-        (sizeof...(Indices) == extents_type::rank()) &&
-        _MDSPAN_FOLD_AND(
-           (_MDSPAN_TRAIT(is_convertible, Indices, index_type) &&
-            _MDSPAN_TRAIT(is_nothrow_constructible, index_type, Indices))
-        )
-      )
-    )
-    _MDSPAN_HOST_DEVICE
-    constexpr index_type operator()(Indices... idxs) const noexcept {
-      return __compute_offset(__rank_count<0, extents_type::rank()>(), static_cast<index_type>(idxs)...);
-    }
-
-    MDSPAN_INLINE_FUNCTION static constexpr bool is_always_unique() noexcept { return true; }
-    MDSPAN_INLINE_FUNCTION static constexpr bool is_always_exhaustive() noexcept { return true; }
-    MDSPAN_INLINE_FUNCTION static constexpr bool is_always_strided() noexcept { return true; }
-    MDSPAN_INLINE_FUNCTION constexpr bool is_unique() const noexcept { return true; }
-    MDSPAN_INLINE_FUNCTION constexpr bool is_exhaustive() const noexcept { return true; }
-    MDSPAN_INLINE_FUNCTION constexpr bool is_strided() const noexcept { return true; }
-
-    MDSPAN_INLINE_FUNCTION
-    constexpr index_type stride(rank_type i) const noexcept
-#if MDSPAN_HAS_CXX_20
-      requires ( Extents::rank() > 0 )
-#endif
-    {
-      index_type value = 1;
-      for(rank_type r=extents_type::rank()-1; r>i; r--) value*=__extents.extent(r);
-      return value;
-    }
-
-    template<class OtherExtents>
-    MDSPAN_INLINE_FUNCTION
-    friend constexpr bool operator==(mapping const& lhs, mapping<OtherExtents> const& rhs) noexcept {
-      return lhs.extents() == rhs.extents();
-    }
-
-    // In C++ 20 the not equal exists if equal is found
-#if !(MDSPAN_HAS_CXX_20)
-    template<class OtherExtents>
-    MDSPAN_INLINE_FUNCTION
-    friend constexpr bool operator!=(mapping const& lhs, mapping<OtherExtents> const& rhs) noexcept {
-      return lhs.extents() != rhs.extents();
-    }
-#endif
-
-    // Not really public, but currently needed to implement fully constexpr useable submdspan:
-    template<size_t N, class SizeType, size_t ... E, size_t ... Idx>
-    constexpr index_type __get_stride(std::experimental::extents<SizeType, E...>,integer_sequence<size_t, Idx...>) const {
-      return _MDSPAN_FOLD_TIMES_RIGHT((Idx>N? __extents.template __extent<Idx>():1),1);
-    }
-    template<size_t N>
-    constexpr index_type __stride() const noexcept {
-      return __get_stride<N>(__extents, make_index_sequence<extents_type::rank()>());
-    }
-
-private:
-   _MDSPAN_NO_UNIQUE_ADDRESS extents_type __extents{};
-
-};
-
-} // end namespace experimental
-} // end namespace std
-
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/layout_stride.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/layout_stride.hpp
deleted file mode 100644
index cac4f90091da46a51017c11f33fe50e60953f57c..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/layout_stride.hpp
+++ /dev/null
@@ -1,479 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-#pragma once
-
-#include "macros.hpp"
-#include "extents.hpp"
-#include "trait_backports.hpp"
-#include "compressed_pair.hpp"
-
-#if !defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-#  include "no_unique_address.hpp"
-#endif
-
-#include <algorithm>
-#include <numeric>
-#include <array>
-#ifdef __cpp_lib_span
-#include <span>
-#endif
-#if defined(_MDSPAN_USE_CONCEPTS) && MDSPAN_HAS_CXX_20
-#include<concepts>
-#endif
-
-namespace std {
-namespace experimental {
-
-struct layout_left {
-  template<class Extents>
-    class mapping;
-};
-struct layout_right {
-  template<class Extents>
-    class mapping;
-};
-
-namespace detail {
-  template<class Layout, class Mapping>
-  constexpr bool __is_mapping_of =
-    is_same<typename Layout::template mapping<typename Mapping::extents_type>, Mapping>::value;
-
-#if defined(_MDSPAN_USE_CONCEPTS) && MDSPAN_HAS_CXX_20
-  template<class M>
-  concept __layout_mapping_alike = requires {
-    requires __is_extents<typename M::extents_type>::value;
-    { M::is_always_strided() } -> same_as<bool>;
-    { M::is_always_exhaustive() } -> same_as<bool>;
-    { M::is_always_unique() } -> same_as<bool>;
-    bool_constant<M::is_always_strided()>::value;
-    bool_constant<M::is_always_exhaustive()>::value;
-    bool_constant<M::is_always_unique()>::value;
-  };
-#endif
-} // namespace detail
-
-struct layout_stride {
-  template <class Extents>
-  class mapping
-#if !defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-    : private detail::__no_unique_address_emulation<
-        detail::__compressed_pair<
-          Extents,
-          std::array<typename Extents::index_type, Extents::rank()>
-        >
-      >
-#endif
-  {
-  public:
-    using extents_type = Extents;
-    using index_type = typename extents_type::index_type;
-    using size_type = typename extents_type::size_type;
-    using rank_type = typename extents_type::rank_type;
-    using layout_type = layout_stride;
-
-    // This could be a `requires`, but I think it's better and clearer as a `static_assert`.
-    static_assert(detail::__is_extents_v<Extents>, "std::experimental::layout_stride::mapping must be instantiated with a specialization of std::experimental::extents.");
-
-
-  private:
-
-    //----------------------------------------------------------------------------
-
-    using __strides_storage_t = array<index_type, extents_type::rank()>;//::std::experimental::dextents<index_type, extents_type::rank()>;
-    using __member_pair_t = detail::__compressed_pair<extents_type, __strides_storage_t>;
-
-#if defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-    _MDSPAN_NO_UNIQUE_ADDRESS __member_pair_t __members;
-#else
-    using __base_t = detail::__no_unique_address_emulation<__member_pair_t>;
-#endif
-
-    MDSPAN_FORCE_INLINE_FUNCTION constexpr __strides_storage_t const&
-    __strides_storage() const noexcept {
-#if defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-      return __members.__second();
-#else
-      return this->__base_t::__ref().__second();
-#endif
-    }
-    MDSPAN_FORCE_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14 __strides_storage_t&
-    __strides_storage() noexcept {
-#if defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-      return __members.__second();
-#else
-      return this->__base_t::__ref().__second();
-#endif
-    }
-
-    template<class SizeType, ::std::size_t ... Ep, ::std::size_t ... Idx>
-    _MDSPAN_HOST_DEVICE
-    constexpr index_type __get_size(::std::experimental::extents<SizeType, Ep...>,integer_sequence<::std::size_t, Idx...>) const {
-      return _MDSPAN_FOLD_TIMES_RIGHT( static_cast<index_type>(extents().extent(Idx)), 1 );
-    }
-
-    //----------------------------------------------------------------------------
-
-    template <class>
-    friend class mapping;
-
-    //----------------------------------------------------------------------------
-
-    // Workaround for non-deducibility of the index sequence template parameter if it's given at the top level
-    template <class>
-    struct __deduction_workaround;
-
-    template <size_t... Idxs>
-    struct __deduction_workaround<index_sequence<Idxs...>>
-    {
-      template <class OtherExtents>
-      MDSPAN_INLINE_FUNCTION
-      static constexpr bool _eq_impl(mapping const& self, mapping<OtherExtents> const& other) noexcept {
-        return    _MDSPAN_FOLD_AND((self.stride(Idxs) == other.stride(Idxs)) /* && ... */)
-               && _MDSPAN_FOLD_AND((self.extents().extent(Idxs) == other.extents().extent(Idxs)) /* || ... */);
-      }
-      template <class OtherExtents>
-      MDSPAN_INLINE_FUNCTION
-      static constexpr bool _not_eq_impl(mapping const& self, mapping<OtherExtents> const& other) noexcept {
-        return    _MDSPAN_FOLD_OR((self.stride(Idxs) != other.stride(Idxs)) /* || ... */)
-               || _MDSPAN_FOLD_OR((self.extents().extent(Idxs) != other.extents().extent(Idxs)) /* || ... */);
-      }
-
-      template <class... Integral>
-      MDSPAN_FORCE_INLINE_FUNCTION
-      static constexpr size_t _call_op_impl(mapping const& self, Integral... idxs) noexcept {
-        return _MDSPAN_FOLD_PLUS_RIGHT((idxs * self.stride(Idxs)), /* + ... + */ 0);
-      }
-
-      MDSPAN_INLINE_FUNCTION
-      static constexpr size_t _req_span_size_impl(mapping const& self) noexcept {
-        // assumes no negative strides; not sure if I'm allowed to assume that or not
-        return __impl::_call_op_impl(self, (self.extents().template __extent<Idxs>() - 1)...) + 1;
-      }
-
-      template<class OtherMapping>
-      MDSPAN_INLINE_FUNCTION
-      static constexpr const __strides_storage_t fill_strides(const OtherMapping& map) {
-        return __strides_storage_t{static_cast<index_type>(map.stride(Idxs))...};
-      }
-
-      MDSPAN_INLINE_FUNCTION
-      static constexpr const __strides_storage_t& fill_strides(const __strides_storage_t& s) {
-        return s;
-      }
-
-      template<class IntegralType>
-      MDSPAN_INLINE_FUNCTION
-      static constexpr const __strides_storage_t fill_strides(const array<IntegralType,extents_type::rank()>& s) {
-        return __strides_storage_t{static_cast<index_type>(s[Idxs])...};
-      }
-
-#ifdef __cpp_lib_span
-      template<class IntegralType>
-      MDSPAN_INLINE_FUNCTION
-      static constexpr const __strides_storage_t fill_strides(const span<IntegralType,extents_type::rank()>& s) {
-        return __strides_storage_t{static_cast<index_type>(s[Idxs])...};
-      }
-#endif
-
-      template<size_t K>
-      MDSPAN_INLINE_FUNCTION
-      static constexpr size_t __return_zero() { return 0; }
-
-      template<class Mapping>
-      MDSPAN_INLINE_FUNCTION
-      static constexpr typename Mapping::index_type
-        __OFFSET(const Mapping& m) { return m(__return_zero<Idxs>()...); }
-    };
-
-    // Can't use defaulted parameter in the __deduction_workaround template because of a bug in MSVC warning C4348.
-    using __impl = __deduction_workaround<make_index_sequence<Extents::rank()>>;
-
-
-    //----------------------------------------------------------------------------
-
-#if defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-    MDSPAN_INLINE_FUNCTION constexpr explicit
-    mapping(__member_pair_t&& __m) : __members(::std::move(__m)) {}
-#else
-    MDSPAN_INLINE_FUNCTION constexpr explicit
-    mapping(__base_t&& __b) : __base_t(::std::move(__b)) {}
-#endif
-
-  public:
-
-    //--------------------------------------------------------------------------------
-
-    MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mapping() noexcept = default;
-    MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mapping(mapping const&) noexcept = default;
-
-    MDSPAN_TEMPLATE_REQUIRES(
-      class IntegralTypes,
-      /* requires */ (
-        // MSVC 19.32 does not like using index_type here, requires the typename Extents::index_type
-        // error C2641: cannot deduce template arguments for 'std::experimental::layout_stride::mapping'
-        _MDSPAN_TRAIT(is_convertible, const remove_const_t<IntegralTypes>&, typename Extents::index_type) &&
-        _MDSPAN_TRAIT(is_nothrow_constructible, typename Extents::index_type, const remove_const_t<IntegralTypes>&)
-      )
-    )
-    MDSPAN_INLINE_FUNCTION
-    constexpr
-    mapping(
-      extents_type const& e,
-      array<IntegralTypes, extents_type::rank()> const& s
-    ) noexcept
-#if defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-      : __members{
-#else
-      : __base_t(__base_t{__member_pair_t(
-#endif
-          e, __strides_storage_t(__impl::fill_strides(s))
-#if defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-        }
-#else
-        )})
-#endif
-    {
-      /*
-       * TODO: check preconditions
-       * - s[i] > 0 is true for all i in the range [0, rank_ ).
-       * - REQUIRED-SPAN-SIZE(e, s) is a representable value of type index_type ([basic.fundamental]).
-       * - If rank_ is greater than 0, then there exists a permutation P of the integers in the
-       *   range [0, rank_), such that s[ pi ] >= s[ pi − 1 ] * e.extent( pi − 1 ) is true for
-       *   all i in the range [1, rank_ ), where pi is the ith element of P.
-       */
-    }
-
-#ifdef __cpp_lib_span
-    MDSPAN_TEMPLATE_REQUIRES(
-      class IntegralTypes,
-      /* requires */ (
-        // MSVC 19.32 does not like using index_type here, requires the typename Extents::index_type
-        // error C2641: cannot deduce template arguments for 'std::experimental::layout_stride::mapping'
-        _MDSPAN_TRAIT(is_convertible, const remove_const_t<IntegralTypes>&, typename Extents::index_type) &&
-        _MDSPAN_TRAIT(is_nothrow_constructible, typename Extents::index_type, const remove_const_t<IntegralTypes>&)
-      )
-    )
-    MDSPAN_INLINE_FUNCTION
-    constexpr
-    mapping(
-      extents_type const& e,
-      span<IntegralTypes, extents_type::rank()> const& s
-    ) noexcept
-#if defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-      : __members{
-#else
-      : __base_t(__base_t{__member_pair_t(
-#endif
-          e, __strides_storage_t(__impl::fill_strides(s))
-#if defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-        }
-#else
-        )})
-#endif
-    {
-      /*
-       * TODO: check preconditions
-       * - s[i] > 0 is true for all i in the range [0, rank_ ).
-       * - REQUIRED-SPAN-SIZE(e, s) is a representable value of type index_type ([basic.fundamental]).
-       * - If rank_ is greater than 0, then there exists a permutation P of the integers in the
-       *   range [0, rank_), such that s[ pi ] >= s[ pi − 1 ] * e.extent( pi − 1 ) is true for
-       *   all i in the range [1, rank_ ), where pi is the ith element of P.
-       */
-    }
-#endif // __cpp_lib_span
-
-#if !(defined(_MDSPAN_USE_CONCEPTS) && MDSPAN_HAS_CXX_20)
-    MDSPAN_TEMPLATE_REQUIRES(
-      class StridedLayoutMapping,
-      /* requires */ (
-        _MDSPAN_TRAIT(is_constructible, extents_type, typename StridedLayoutMapping::extents_type) &&
-        detail::__is_mapping_of<typename StridedLayoutMapping::layout_type, StridedLayoutMapping> &&
-        StridedLayoutMapping::is_always_unique() &&
-        StridedLayoutMapping::is_always_strided()
-      )
-    )
-#else
-    template<class StridedLayoutMapping>
-    requires(
-         detail::__layout_mapping_alike<StridedLayoutMapping> &&
-         _MDSPAN_TRAIT(is_constructible, extents_type, typename StridedLayoutMapping::extents_type) &&
-         StridedLayoutMapping::is_always_unique() &&
-         StridedLayoutMapping::is_always_strided()
-    )
-#endif
-    MDSPAN_CONDITIONAL_EXPLICIT(
-      (!is_convertible<typename StridedLayoutMapping::extents_type, extents_type>::value) &&
-      (detail::__is_mapping_of<layout_left, StridedLayoutMapping> ||
-       detail::__is_mapping_of<layout_right, StridedLayoutMapping> ||
-       detail::__is_mapping_of<layout_stride, StridedLayoutMapping>)
-    ) // needs two () due to comma
-    MDSPAN_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14
-    mapping(StridedLayoutMapping const& other) noexcept // NOLINT(google-explicit-constructor)
-#if defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-      : __members{
-#else
-      : __base_t(__base_t{__member_pair_t(
-#endif
-          other.extents(), __strides_storage_t(__impl::fill_strides(other))
-#if defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-        }
-#else
-        )})
-#endif
-    {
-      /*
-       * TODO: check preconditions
-       * - other.stride(i) > 0 is true for all i in the range [0, rank_ ).
-       * - other.required_span_size() is a representable value of type index_type ([basic.fundamental]).
-       * - OFFSET(other) == 0
-       */
-    }
-
-    //--------------------------------------------------------------------------------
-
-    MDSPAN_INLINE_FUNCTION_DEFAULTED _MDSPAN_CONSTEXPR_14_DEFAULTED
-    mapping& operator=(mapping const&) noexcept = default;
-
-    MDSPAN_INLINE_FUNCTION constexpr const extents_type& extents() const noexcept {
-#if defined(_MDSPAN_USE_ATTRIBUTE_NO_UNIQUE_ADDRESS)
-      return __members.__first();
-#else
-      return this->__base_t::__ref().__first();
-#endif
-    };
-
-    MDSPAN_INLINE_FUNCTION
-    constexpr array< index_type, extents_type::rank() > strides() const noexcept {
-      return __strides_storage();
-    }
-
-    MDSPAN_INLINE_FUNCTION
-    constexpr index_type required_span_size() const noexcept {
-      index_type span_size = 1;
-      for(unsigned r = 0; r < extents_type::rank(); r++) {
-        // Return early if any of the extents are zero
-        if(extents().extent(r)==0) return 0;
-        span_size += ( static_cast<index_type>(extents().extent(r) - 1 ) * __strides_storage()[r]);
-      }
-      return span_size;
-    }
-
-
-    MDSPAN_TEMPLATE_REQUIRES(
-      class... Indices,
-      /* requires */ (
-        sizeof...(Indices) == Extents::rank() &&
-        _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_convertible, Indices, index_type) /*&& ...*/ ) &&
-        _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_nothrow_constructible, index_type, Indices) /*&& ...*/)
-      )
-    )
-    MDSPAN_FORCE_INLINE_FUNCTION
-    constexpr index_type operator()(Indices... idxs) const noexcept {
-      return static_cast<index_type>(__impl::_call_op_impl(*this, static_cast<index_type>(idxs)...));
-    }
-
-    MDSPAN_INLINE_FUNCTION static constexpr bool is_always_unique() noexcept { return true; }
-    MDSPAN_INLINE_FUNCTION static constexpr bool is_always_exhaustive() noexcept {
-      return false;
-    }
-    MDSPAN_INLINE_FUNCTION static constexpr bool is_always_strided() noexcept { return true; }
-
-    MDSPAN_INLINE_FUNCTION static constexpr bool is_unique() noexcept { return true; }
-    MDSPAN_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14 bool is_exhaustive() const noexcept {
-      return required_span_size() == __get_size(extents(), make_index_sequence<extents_type::rank()>());
-    }
-    MDSPAN_INLINE_FUNCTION static constexpr bool is_strided() noexcept { return true; }
-
-
-    MDSPAN_INLINE_FUNCTION
-    constexpr index_type stride(rank_type r) const noexcept
-#if MDSPAN_HAS_CXX_20
-      requires ( Extents::rank() > 0 )
-#endif
-    {
-      return __strides_storage()[r];
-    }
-
-#if !(defined(_MDSPAN_USE_CONCEPTS) && MDSPAN_HAS_CXX_20)
-    MDSPAN_TEMPLATE_REQUIRES(
-      class StridedLayoutMapping,
-      /* requires */ (
-        detail::__is_mapping_of<typename StridedLayoutMapping::layout_type, StridedLayoutMapping> &&
-        (extents_type::rank() == StridedLayoutMapping::extents_type::rank()) &&
-        StridedLayoutMapping::is_always_strided()
-      )
-    )
-#else
-    template<class StridedLayoutMapping>
-    requires(
-         detail::__layout_mapping_alike<StridedLayoutMapping> &&
-         (extents_type::rank() == StridedLayoutMapping::extents_type::rank()) &&
-         StridedLayoutMapping::is_always_strided()
-    )
-#endif
-    MDSPAN_INLINE_FUNCTION
-    friend constexpr bool operator==(const mapping& x, const StridedLayoutMapping& y) noexcept {
-      bool strides_match = true;
-      for(rank_type r = 0; r < extents_type::rank(); r++)
-        strides_match = strides_match && (x.stride(r) == y.stride(r));
-      return (x.extents() == y.extents()) &&
-             (__impl::__OFFSET(y)== static_cast<typename StridedLayoutMapping::index_type>(0)) &&
-             strides_match;
-    }
-
-    // This one is not technically part of the proposal. Just here to make implementation a bit more optimal hopefully
-    MDSPAN_TEMPLATE_REQUIRES(
-      class OtherExtents,
-      /* requires */ (
-        (extents_type::rank() == OtherExtents::rank())
-      )
-    )
-    MDSPAN_INLINE_FUNCTION
-    friend constexpr bool operator==(mapping const& lhs, mapping<OtherExtents> const& rhs) noexcept {
-      return __impl::_eq_impl(lhs, rhs);
-    }
-
-#if !MDSPAN_HAS_CXX_20
-    MDSPAN_TEMPLATE_REQUIRES(
-      class StridedLayoutMapping,
-      /* requires */ (
-        detail::__is_mapping_of<typename StridedLayoutMapping::layout_type, StridedLayoutMapping> &&
-        (extents_type::rank() == StridedLayoutMapping::extents_type::rank()) &&
-        StridedLayoutMapping::is_always_strided()
-      )
-    )
-    MDSPAN_INLINE_FUNCTION
-    friend constexpr bool operator!=(const mapping& x, const StridedLayoutMapping& y) noexcept {
-      return not (x == y);
-    }
-
-    MDSPAN_TEMPLATE_REQUIRES(
-      class OtherExtents,
-      /* requires */ (
-        (extents_type::rank() == OtherExtents::rank())
-      )
-    )
-    MDSPAN_INLINE_FUNCTION
-    friend constexpr bool operator!=(mapping const& lhs, mapping<OtherExtents> const& rhs) noexcept {
-      return __impl::_not_eq_impl(lhs, rhs);
-    }
-#endif
-
-  };
-};
-
-} // end namespace experimental
-} // end namespace std
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/macros.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/macros.hpp
deleted file mode 100644
index 586964f3c218c7f3c60fe138e287abf0d36417e0..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/macros.hpp
+++ /dev/null
@@ -1,628 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-
-#pragma once
-
-#include "config.hpp"
-
-#include <type_traits> // std::is_void
-
-#ifndef _MDSPAN_HOST_DEVICE
-#  if defined(_MDSPAN_HAS_CUDA) || defined(_MDSPAN_HAS_HIP)
-#    define _MDSPAN_HOST_DEVICE __host__ __device__
-#  else
-#    define _MDSPAN_HOST_DEVICE
-#  endif
-#endif
-
-#ifndef MDSPAN_FORCE_INLINE_FUNCTION
-#  ifdef _MDSPAN_COMPILER_MSVC // Microsoft compilers
-#    define MDSPAN_FORCE_INLINE_FUNCTION __forceinline _MDSPAN_HOST_DEVICE
-#  else
-#    define MDSPAN_FORCE_INLINE_FUNCTION __attribute__((always_inline)) _MDSPAN_HOST_DEVICE
-#  endif
-#endif
-
-#ifndef MDSPAN_INLINE_FUNCTION
-#  define MDSPAN_INLINE_FUNCTION inline _MDSPAN_HOST_DEVICE
-#endif
-
-#ifndef MDSPAN_FUNCTION
-#  define MDSPAN_FUNCTION _MDSPAN_HOST_DEVICE
-#endif
-
-#ifdef _MDSPAN_HAS_HIP
-#  define MDSPAN_DEDUCTION_GUIDE _MDSPAN_HOST_DEVICE
-#else
-#  define MDSPAN_DEDUCTION_GUIDE
-#endif
-
-// In CUDA defaulted functions do not need host device markup
-#ifndef MDSPAN_INLINE_FUNCTION_DEFAULTED
-#  define MDSPAN_INLINE_FUNCTION_DEFAULTED
-#endif
-
-//==============================================================================
-// <editor-fold desc="Preprocessor helpers"> {{{1
-
-#define MDSPAN_PP_COUNT(...) \
-  _MDSPAN_PP_INTERNAL_EXPAND_ARGS_PRIVATE( \
-    _MDSPAN_PP_INTERNAL_ARGS_AUGMENTER(__VA_ARGS__) \
-  )
-
-#define _MDSPAN_PP_INTERNAL_ARGS_AUGMENTER(...) unused, __VA_ARGS__
-#define _MDSPAN_PP_INTERNAL_EXPAND(x) x
-#define _MDSPAN_PP_INTERNAL_EXPAND_ARGS_PRIVATE(...) \
-  _MDSPAN_PP_INTERNAL_EXPAND( \
-    _MDSPAN_PP_INTERNAL_COUNT_PRIVATE( \
-      __VA_ARGS__, 69, 68, 67, 66, 65, 64, 63, 62, 61, \
-      60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49,  \
-      48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37,  \
-      36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25,  \
-      24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13,  \
-      12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 \
-    ) \
-  )
-# define _MDSPAN_PP_INTERNAL_COUNT_PRIVATE( \
-         _1_, _2_, _3_, _4_, _5_, _6_, _7_, _8_, _9_, \
-    _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, \
-    _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, \
-    _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, \
-    _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, \
-    _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, \
-    _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, \
-    _70, count, ...) count \
-    /**/
-
-#define MDSPAN_PP_STRINGIFY_IMPL(x) #x
-#define MDSPAN_PP_STRINGIFY(x) MDSPAN_PP_STRINGIFY_IMPL(x)
-
-#define MDSPAN_PP_CAT_IMPL(x, y) x ## y
-#define MDSPAN_PP_CAT(x, y) MDSPAN_PP_CAT_IMPL(x, y)
-
-#define MDSPAN_PP_EVAL(X, ...) X(__VA_ARGS__)
-
-#define MDSPAN_PP_REMOVE_PARENS_IMPL(...) __VA_ARGS__
-#define MDSPAN_PP_REMOVE_PARENS(...) MDSPAN_PP_REMOVE_PARENS_IMPL __VA_ARGS__
-
-// </editor-fold> end Preprocessor helpers }}}1
-//==============================================================================
-
-//==============================================================================
-// <editor-fold desc="Concept emulation"> {{{1
-
-// These compatibility macros don't help with partial ordering, but they should do the trick
-// for what we need to do with concepts in mdspan
-#ifdef _MDSPAN_USE_CONCEPTS
-#  define MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) > requires REQ
-#  define MDSPAN_FUNCTION_REQUIRES(PAREN_PREQUALS, FNAME, PAREN_PARAMS, QUALS, REQ) \
-     MDSPAN_PP_REMOVE_PARENS(PAREN_PREQUALS) FNAME PAREN_PARAMS QUALS requires REQ \
-     /**/
-#else
-#  define MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) , typename ::std::enable_if<(REQ), int>::type = 0>
-#  define MDSPAN_FUNCTION_REQUIRES(PAREN_PREQUALS, FNAME, PAREN_PARAMS, QUALS, REQ) \
-     MDSPAN_TEMPLATE_REQUIRES( \
-       class __function_requires_ignored=void, \
-       (std::is_void<__function_requires_ignored>::value && REQ) \
-     ) MDSPAN_PP_REMOVE_PARENS(PAREN_PREQUALS) FNAME PAREN_PARAMS QUALS \
-     /**/
-#endif
-
-#if defined(_MDSPAN_COMPILER_MSVC) && (!defined(_MSVC_TRADITIONAL) || _MSVC_TRADITIONAL)
-#  define MDSPAN_TEMPLATE_REQUIRES(...) \
-      MDSPAN_PP_CAT( \
-        MDSPAN_PP_CAT(MDSPAN_TEMPLATE_REQUIRES_, MDSPAN_PP_COUNT(__VA_ARGS__))\
-        (__VA_ARGS__), \
-      ) \
-    /**/
-#else
-#  define MDSPAN_TEMPLATE_REQUIRES(...) \
-    MDSPAN_PP_EVAL( \
-        MDSPAN_PP_CAT(MDSPAN_TEMPLATE_REQUIRES_, MDSPAN_PP_COUNT(__VA_ARGS__)), \
-        __VA_ARGS__ \
-    ) \
-    /**/
-#endif
-
-#define MDSPAN_TEMPLATE_REQUIRES_2(TP1, REQ) \
-  template<TP1 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_3(TP1, TP2, REQ) \
-  template<TP1, TP2 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_4(TP1, TP2, TP3, REQ) \
-  template<TP1, TP2, TP3 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_5(TP1, TP2, TP3, TP4, REQ) \
-  template<TP1, TP2, TP3, TP4 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_6(TP1, TP2, TP3, TP4, TP5, REQ) \
-  template<TP1, TP2, TP3, TP4, TP5 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_7(TP1, TP2, TP3, TP4, TP5, TP6, REQ) \
-  template<TP1, TP2, TP3, TP4, TP5, TP6 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_8(TP1, TP2, TP3, TP4, TP5, TP6, TP7, REQ) \
-  template<TP1, TP2, TP3, TP4, TP5, TP6, TP7 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_9(TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, REQ) \
-  template<TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_10(TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, REQ) \
-  template<TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_11(TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, REQ) \
-  template<TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_12(TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, REQ) \
-  template<TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_13(TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, REQ) \
-  template<TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_14(TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, REQ) \
-  template<TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_15(TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14, REQ) \
-  template<TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_16(TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14, TP15, REQ) \
-  template<TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14, TP15 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_17(TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14, TP15, TP16, REQ) \
-  template<TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14, TP15, TP16 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_18(TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17, REQ) \
-  template<TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_19(TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17, TP18, REQ) \
-  template<TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17, TP18 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-#define MDSPAN_TEMPLATE_REQUIRES_20(TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17, TP18, TP19, REQ) \
-  template<TP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17, TP18, TP19 \
-    MDSPAN_CLOSE_ANGLE_REQUIRES(REQ) \
-    /**/
-
-#define MDSPAN_INSTANTIATE_ONLY_IF_USED \
-  MDSPAN_TEMPLATE_REQUIRES( \
-    class __instantiate_only_if_used_tparam=void, \
-    ( _MDSPAN_TRAIT(std::is_void, __instantiate_only_if_used_tparam) ) \
-  ) \
-  /**/
-
-// </editor-fold> end Concept emulation }}}1
-//==============================================================================
-
-//==============================================================================
-// <editor-fold desc="inline variables"> {{{1
-
-#ifdef _MDSPAN_USE_INLINE_VARIABLES
-#  define _MDSPAN_INLINE_VARIABLE inline
-#else
-#  define _MDSPAN_INLINE_VARIABLE
-#endif
-
-// </editor-fold> end inline variables }}}1
-//==============================================================================
-
-//==============================================================================
-// <editor-fold desc="Return type deduction"> {{{1
-
-#if _MDSPAN_USE_RETURN_TYPE_DEDUCTION
-#  define _MDSPAN_DEDUCE_RETURN_TYPE_SINGLE_LINE(SIGNATURE, BODY) \
-    auto MDSPAN_PP_REMOVE_PARENS(SIGNATURE) { return MDSPAN_PP_REMOVE_PARENS(BODY); }
-#  define _MDSPAN_DEDUCE_DECLTYPE_AUTO_RETURN_TYPE_SINGLE_LINE(SIGNATURE, BODY) \
-    decltype(auto) MDSPAN_PP_REMOVE_PARENS(SIGNATURE) { return MDSPAN_PP_REMOVE_PARENS(BODY); }
-#else
-#  define _MDSPAN_DEDUCE_RETURN_TYPE_SINGLE_LINE(SIGNATURE, BODY) \
-    auto MDSPAN_PP_REMOVE_PARENS(SIGNATURE) \
-      -> std::remove_cv_t<std::remove_reference_t<decltype(BODY)>> \
-    { return MDSPAN_PP_REMOVE_PARENS(BODY); }
-#  define _MDSPAN_DEDUCE_DECLTYPE_AUTO_RETURN_TYPE_SINGLE_LINE(SIGNATURE, BODY) \
-    auto MDSPAN_PP_REMOVE_PARENS(SIGNATURE) \
-      -> decltype(BODY) \
-    { return MDSPAN_PP_REMOVE_PARENS(BODY); }
-
-#endif
-
-// </editor-fold> end Return type deduction }}}1
-//==============================================================================
-
-//==============================================================================
-// <editor-fold desc="fold expressions"> {{{1
-
-struct __mdspan_enable_fold_comma { };
-
-#ifdef _MDSPAN_USE_FOLD_EXPRESSIONS
-#  define _MDSPAN_FOLD_AND(...) ((__VA_ARGS__) && ...)
-#  define _MDSPAN_FOLD_AND_TEMPLATE(...) ((__VA_ARGS__) && ...)
-#  define _MDSPAN_FOLD_OR(...) ((__VA_ARGS__) || ...)
-#  define _MDSPAN_FOLD_ASSIGN_LEFT(INIT, ...) (INIT = ... = (__VA_ARGS__))
-#  define _MDSPAN_FOLD_ASSIGN_RIGHT(PACK, ...) (PACK = ... = (__VA_ARGS__))
-#  define _MDSPAN_FOLD_TIMES_RIGHT(PACK, ...) (PACK * ... * (__VA_ARGS__))
-#  define _MDSPAN_FOLD_PLUS_RIGHT(PACK, ...) (PACK + ... + (__VA_ARGS__))
-#  define _MDSPAN_FOLD_COMMA(...) ((__VA_ARGS__), ...)
-#else
-
-namespace std {
-
-namespace __fold_compatibility_impl {
-
-// We could probably be more clever here, but at the (small) risk of losing some compiler understanding.  For the
-// few operations we need, it's not worth generalizing over the operation
-
-#if _MDSPAN_USE_RETURN_TYPE_DEDUCTION
-
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr decltype(auto) __fold_right_and_impl() {
-  return true;
-}
-
-template <class Arg, class... Args>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr decltype(auto) __fold_right_and_impl(Arg&& arg, Args&&... args) {
-  return ((Arg&&)arg) && __fold_compatibility_impl::__fold_right_and_impl((Args&&)args...);
-}
-
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr decltype(auto) __fold_right_or_impl() {
-  return false;
-}
-
-template <class Arg, class... Args>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr auto __fold_right_or_impl(Arg&& arg, Args&&... args) {
-  return ((Arg&&)arg) || __fold_compatibility_impl::__fold_right_or_impl((Args&&)args...);
-}
-
-template <class Arg1>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr auto __fold_left_assign_impl(Arg1&& arg1) {
-  return (Arg1&&)arg1;
-}
-
-template <class Arg1, class Arg2, class... Args>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr auto __fold_left_assign_impl(Arg1&& arg1, Arg2&& arg2, Args&&... args) {
-  return __fold_compatibility_impl::__fold_left_assign_impl((((Arg1&&)arg1) = ((Arg2&&)arg2)), (Args&&)args...);
-}
-
-template <class Arg1>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr auto __fold_right_assign_impl(Arg1&& arg1) {
-  return (Arg1&&)arg1;
-}
-
-template <class Arg1, class Arg2, class... Args>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr auto __fold_right_assign_impl(Arg1&& arg1, Arg2&& arg2,  Args&&... args) {
-  return ((Arg1&&)arg1) = __fold_compatibility_impl::__fold_right_assign_impl((Arg2&&)arg2, (Args&&)args...);
-}
-
-template <class Arg1>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr auto __fold_right_plus_impl(Arg1&& arg1) {
-  return (Arg1&&)arg1;
-}
-
-template <class Arg1, class Arg2, class... Args>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr auto __fold_right_plus_impl(Arg1&& arg1, Arg2&& arg2, Args&&... args) {
-  return ((Arg1&&)arg1) + __fold_compatibility_impl::__fold_right_plus_impl((Arg2&&)arg2, (Args&&)args...);
-}
-
-template <class Arg1>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr auto __fold_right_times_impl(Arg1&& arg1) {
-  return (Arg1&&)arg1;
-}
-
-template <class Arg1, class Arg2, class... Args>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr auto __fold_right_times_impl(Arg1&& arg1, Arg2&& arg2, Args&&... args) {
-  return ((Arg1&&)arg1) * __fold_compatibility_impl::__fold_right_times_impl((Arg2&&)arg2, (Args&&)args...);
-}
-
-#else
-
-//------------------------------------------------------------------------------
-// <editor-fold desc="right and"> {{{2
-
-template <class... Args>
-struct __fold_right_and_impl_;
-template <>
-struct __fold_right_and_impl_<> {
-  using __rv = bool;
-  MDSPAN_FORCE_INLINE_FUNCTION
-  static constexpr __rv
-  __impl() noexcept {
-    return true;
-  }
-};
-template <class Arg, class... Args>
-struct __fold_right_and_impl_<Arg, Args...> {
-  using __next_t = __fold_right_and_impl_<Args...>;
-  using __rv = decltype(std::declval<Arg>() && std::declval<typename __next_t::__rv>());
-  MDSPAN_FORCE_INLINE_FUNCTION
-  static constexpr __rv
-  __impl(Arg&& arg, Args&&... args) noexcept {
-    return ((Arg&&)arg) && __next_t::__impl((Args&&)args...);
-  }
-};
-
-template <class... Args>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr typename __fold_right_and_impl_<Args...>::__rv
-__fold_right_and_impl(Args&&... args) {
-  return __fold_right_and_impl_<Args...>::__impl((Args&&)args...);
-}
-
-// </editor-fold> end right and }}}2
-//------------------------------------------------------------------------------
-
-//------------------------------------------------------------------------------
-// <editor-fold desc="right or"> {{{2
-
-template <class... Args>
-struct __fold_right_or_impl_;
-template <>
-struct __fold_right_or_impl_<> {
-  using __rv = bool;
-  MDSPAN_FORCE_INLINE_FUNCTION
-  static constexpr __rv
-  __impl() noexcept {
-    return false;
-  }
-};
-template <class Arg, class... Args>
-struct __fold_right_or_impl_<Arg, Args...> {
-  using __next_t = __fold_right_or_impl_<Args...>;
-  using __rv = decltype(std::declval<Arg>() || std::declval<typename __next_t::__rv>());
-  MDSPAN_FORCE_INLINE_FUNCTION
-  static constexpr __rv
-  __impl(Arg&& arg, Args&&... args) noexcept {
-    return ((Arg&&)arg) || __next_t::__impl((Args&&)args...);
-  }
-};
-
-template <class... Args>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr typename __fold_right_or_impl_<Args...>::__rv
-__fold_right_or_impl(Args&&... args) {
-  return __fold_right_or_impl_<Args...>::__impl((Args&&)args...);
-}
-
-// </editor-fold> end right or }}}2
-//------------------------------------------------------------------------------
-
-//------------------------------------------------------------------------------
-// <editor-fold desc="right plus"> {{{2
-
-template <class... Args>
-struct __fold_right_plus_impl_;
-template <class Arg>
-struct __fold_right_plus_impl_<Arg> {
-  using __rv = Arg&&;
-  MDSPAN_FORCE_INLINE_FUNCTION
-  static constexpr __rv
-  __impl(Arg&& arg) noexcept {
-    return (Arg&&)arg;
-  }
-};
-template <class Arg1, class Arg2, class... Args>
-struct __fold_right_plus_impl_<Arg1, Arg2, Args...> {
-  using __next_t = __fold_right_plus_impl_<Arg2, Args...>;
-  using __rv = decltype(std::declval<Arg1>() + std::declval<typename __next_t::__rv>());
-  MDSPAN_FORCE_INLINE_FUNCTION
-  static constexpr __rv
-  __impl(Arg1&& arg, Arg2&& arg2, Args&&... args) noexcept {
-    return ((Arg1&&)arg) + __next_t::__impl((Arg2&&)arg2, (Args&&)args...);
-  }
-};
-
-template <class... Args>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr typename __fold_right_plus_impl_<Args...>::__rv
-__fold_right_plus_impl(Args&&... args) {
-  return __fold_right_plus_impl_<Args...>::__impl((Args&&)args...);
-}
-
-// </editor-fold> end right plus }}}2
-//------------------------------------------------------------------------------
-
-//------------------------------------------------------------------------------
-// <editor-fold desc="right times"> {{{2
-
-template <class... Args>
-struct __fold_right_times_impl_;
-template <class Arg>
-struct __fold_right_times_impl_<Arg> {
-  using __rv = Arg&&;
-  MDSPAN_FORCE_INLINE_FUNCTION
-  static constexpr __rv
-  __impl(Arg&& arg) noexcept {
-    return (Arg&&)arg;
-  }
-};
-template <class Arg1, class Arg2, class... Args>
-struct __fold_right_times_impl_<Arg1, Arg2, Args...> {
-  using __next_t = __fold_right_times_impl_<Arg2, Args...>;
-  using __rv = decltype(std::declval<Arg1>() * std::declval<typename __next_t::__rv>());
-  MDSPAN_FORCE_INLINE_FUNCTION
-  static constexpr __rv
-  __impl(Arg1&& arg, Arg2&& arg2, Args&&... args) noexcept {
-    return ((Arg1&&)arg) * __next_t::__impl((Arg2&&)arg2, (Args&&)args...);
-  }
-};
-
-template <class... Args>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr typename __fold_right_times_impl_<Args...>::__rv
-__fold_right_times_impl(Args&&... args) {
-  return __fold_right_times_impl_<Args...>::__impl((Args&&)args...);
-}
-
-// </editor-fold> end right times }}}2
-//------------------------------------------------------------------------------
-
-//------------------------------------------------------------------------------
-// <editor-fold desc="right assign"> {{{2
-
-template <class... Args>
-struct __fold_right_assign_impl_;
-template <class Arg>
-struct __fold_right_assign_impl_<Arg> {
-  using __rv = Arg&&;
-  MDSPAN_FORCE_INLINE_FUNCTION
-  static constexpr __rv
-  __impl(Arg&& arg) noexcept {
-    return (Arg&&)arg;
-  }
-};
-template <class Arg1, class Arg2, class... Args>
-struct __fold_right_assign_impl_<Arg1, Arg2, Args...> {
-  using __next_t = __fold_right_assign_impl_<Arg2, Args...>;
-  using __rv = decltype(std::declval<Arg1>() = std::declval<typename __next_t::__rv>());
-  MDSPAN_FORCE_INLINE_FUNCTION
-  static constexpr __rv
-  __impl(Arg1&& arg, Arg2&& arg2, Args&&... args) noexcept {
-    return ((Arg1&&)arg) = __next_t::__impl((Arg2&&)arg2, (Args&&)args...);
-  }
-};
-
-template <class... Args>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr typename __fold_right_assign_impl_<Args...>::__rv
-__fold_right_assign_impl(Args&&... args) {
-  return __fold_right_assign_impl_<Args...>::__impl((Args&&)args...);
-}
-
-// </editor-fold> end right assign }}}2
-//------------------------------------------------------------------------------
-
-//------------------------------------------------------------------------------
-// <editor-fold desc="left assign"> {{{2
-
-template <class... Args>
-struct __fold_left_assign_impl_;
-template <class Arg>
-struct __fold_left_assign_impl_<Arg> {
-  using __rv = Arg&&;
-  MDSPAN_FORCE_INLINE_FUNCTION
-  static constexpr __rv
-  __impl(Arg&& arg) noexcept {
-    return (Arg&&)arg;
-  }
-};
-template <class Arg1, class Arg2, class... Args>
-struct __fold_left_assign_impl_<Arg1, Arg2, Args...> {
-  using __assign_result_t = decltype(std::declval<Arg1>() = std::declval<Arg2>());
-  using __next_t = __fold_left_assign_impl_<__assign_result_t, Args...>;
-  using __rv = typename __next_t::__rv;
-  MDSPAN_FORCE_INLINE_FUNCTION
-  static constexpr __rv
-  __impl(Arg1&& arg, Arg2&& arg2, Args&&... args) noexcept {
-    return __next_t::__impl(((Arg1&&)arg) = (Arg2&&)arg2, (Args&&)args...);
-  }
-};
-
-template <class... Args>
-MDSPAN_FORCE_INLINE_FUNCTION
-constexpr typename __fold_left_assign_impl_<Args...>::__rv
-__fold_left_assign_impl(Args&&... args) {
-  return __fold_left_assign_impl_<Args...>::__impl((Args&&)args...);
-}
-
-// </editor-fold> end left assign }}}2
-//------------------------------------------------------------------------------
-
-#endif
-
-
-template <class... Args>
-constexpr __mdspan_enable_fold_comma __fold_comma_impl(Args&&... args) noexcept { return { }; }
-
-template <bool... Bs>
-struct __bools;
-
-} // __fold_compatibility_impl
-
-} // end namespace std
-
-#  define _MDSPAN_FOLD_AND(...) std::__fold_compatibility_impl::__fold_right_and_impl((__VA_ARGS__)...)
-#  define _MDSPAN_FOLD_OR(...) std::__fold_compatibility_impl::__fold_right_or_impl((__VA_ARGS__)...)
-#  define _MDSPAN_FOLD_ASSIGN_LEFT(INIT, ...) std::__fold_compatibility_impl::__fold_left_assign_impl(INIT, (__VA_ARGS__)...)
-#  define _MDSPAN_FOLD_ASSIGN_RIGHT(PACK, ...) std::__fold_compatibility_impl::__fold_right_assign_impl((PACK)..., __VA_ARGS__)
-#  define _MDSPAN_FOLD_TIMES_RIGHT(PACK, ...) std::__fold_compatibility_impl::__fold_right_times_impl((PACK)..., __VA_ARGS__)
-#  define _MDSPAN_FOLD_PLUS_RIGHT(PACK, ...) std::__fold_compatibility_impl::__fold_right_plus_impl((PACK)..., __VA_ARGS__)
-#  define _MDSPAN_FOLD_COMMA(...) std::__fold_compatibility_impl::__fold_comma_impl((__VA_ARGS__)...)
-
-#  define _MDSPAN_FOLD_AND_TEMPLATE(...) \
-  _MDSPAN_TRAIT(std::is_same, __fold_compatibility_impl::__bools<(__VA_ARGS__)..., true>, __fold_compatibility_impl::__bools<true, (__VA_ARGS__)...>)
-
-#endif
-
-// </editor-fold> end fold expressions }}}1
-//==============================================================================
-
-//==============================================================================
-// <editor-fold desc="Variable template compatibility"> {{{1
-
-#if _MDSPAN_USE_VARIABLE_TEMPLATES
-#  define _MDSPAN_TRAIT(TRAIT, ...) TRAIT##_v<__VA_ARGS__>
-#else
-#  define _MDSPAN_TRAIT(TRAIT, ...) TRAIT<__VA_ARGS__>::value
-#endif
-
-// </editor-fold> end Variable template compatibility }}}1
-//==============================================================================
-
-//==============================================================================
-// <editor-fold desc="Pre-C++14 constexpr"> {{{1
-
-#if _MDSPAN_USE_CONSTEXPR_14
-#  define _MDSPAN_CONSTEXPR_14 constexpr
-// Workaround for a bug (I think?) in EDG frontends
-#  ifdef __EDG__
-#    define _MDSPAN_CONSTEXPR_14_DEFAULTED
-#  else
-#    define _MDSPAN_CONSTEXPR_14_DEFAULTED constexpr
-#  endif
-#else
-#  define _MDSPAN_CONSTEXPR_14
-#  define _MDSPAN_CONSTEXPR_14_DEFAULTED
-#endif
-
-// </editor-fold> end Pre-C++14 constexpr }}}1
-//==============================================================================
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/mdspan.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/mdspan.hpp
deleted file mode 100644
index c81a88367714d22b336352acb95e5468455972e9..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/mdspan.hpp
+++ /dev/null
@@ -1,424 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-
-#pragma once
-
-#include "default_accessor.hpp"
-#include "layout_right.hpp"
-#include "extents.hpp"
-#include "trait_backports.hpp"
-#include "compressed_pair.hpp"
-
-namespace std {
-namespace experimental {
-
-template <
-  class ElementType,
-  class Extents,
-  class LayoutPolicy = layout_right,
-  class AccessorPolicy = default_accessor<ElementType>
->
-class mdspan
-{
-private:
-  static_assert(detail::__is_extents_v<Extents>, "std::experimental::mdspan's Extents template parameter must be a specialization of std::experimental::extents.");
-
-  // Workaround for non-deducibility of the index sequence template parameter if it's given at the top level
-  template <class>
-  struct __deduction_workaround;
-
-  template <size_t... Idxs>
-  struct __deduction_workaround<index_sequence<Idxs...>>
-  {
-    MDSPAN_FORCE_INLINE_FUNCTION static constexpr
-    size_t __size(mdspan const& __self) noexcept {
-      return _MDSPAN_FOLD_TIMES_RIGHT((__self.__mapping_ref().extents().extent(Idxs)), /* * ... * */ size_t(1));
-    }
-    MDSPAN_FORCE_INLINE_FUNCTION static constexpr
-    bool __empty(mdspan const& __self) noexcept {
-      return (__self.rank()>0) && _MDSPAN_FOLD_OR((__self.__mapping_ref().extents().extent(Idxs)==index_type(0)));
-    }
-    template <class ReferenceType, class SizeType, size_t N>
-    MDSPAN_FORCE_INLINE_FUNCTION static constexpr
-    ReferenceType __callop(mdspan const& __self, const array<SizeType, N>& indices) noexcept {
-      return __self.__accessor_ref().access(__self.__ptr_ref(), __self.__mapping_ref()(indices[Idxs]...));
-    }
-  };
-
-public:
-
-  //--------------------------------------------------------------------------------
-  // Domain and codomain types
-
-  using extents_type = Extents;
-  using layout_type = LayoutPolicy;
-  using accessor_type = AccessorPolicy;
-  using mapping_type = typename layout_type::template mapping<extents_type>;
-  using element_type = ElementType;
-  using value_type = remove_cv_t<element_type>;
-  using index_type = typename extents_type::index_type;
-  using size_type = typename extents_type::size_type;
-  using rank_type = typename extents_type::rank_type;
-  using data_handle_type = typename accessor_type::data_handle_type;
-  using reference = typename accessor_type::reference;
-
-  MDSPAN_INLINE_FUNCTION static constexpr size_t rank() noexcept { return extents_type::rank(); }
-  MDSPAN_INLINE_FUNCTION static constexpr size_t rank_dynamic() noexcept { return extents_type::rank_dynamic(); }
-  MDSPAN_INLINE_FUNCTION static constexpr size_t static_extent(size_t r) noexcept { return extents_type::static_extent(r); }
-  MDSPAN_INLINE_FUNCTION constexpr index_type extent(size_t r) const noexcept { return __mapping_ref().extents().extent(r); };
-
-private:
-
-  // Can't use defaulted parameter in the __deduction_workaround template because of a bug in MSVC warning C4348.
-  using __impl = __deduction_workaround<make_index_sequence<extents_type::rank()>>;
-
-  using __map_acc_pair_t = detail::__compressed_pair<mapping_type, accessor_type>;
-
-public:
-
-  //--------------------------------------------------------------------------------
-  // [mdspan.basic.cons], mdspan constructors, assignment, and destructor
-
-#if !MDSPAN_HAS_CXX_20
-  MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mdspan() = default;
-#else
-  MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mdspan()
-    requires(
-       // nvhpc has a bug where using just rank_dynamic() here doesn't work ...
-       (extents_type::rank_dynamic() > 0) &&
-       _MDSPAN_TRAIT(is_default_constructible, data_handle_type) &&
-       _MDSPAN_TRAIT(is_default_constructible, mapping_type) &&
-       _MDSPAN_TRAIT(is_default_constructible, accessor_type)
-     ) = default;
-#endif
-  MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mdspan(const mdspan&) = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mdspan(mdspan&&) = default;
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class... SizeTypes,
-    /* requires */ (
-      _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_convertible, SizeTypes, index_type) /* && ... */) &&
-      _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_nothrow_constructible, index_type, SizeTypes) /* && ... */) &&
-      ((sizeof...(SizeTypes) == rank()) || (sizeof...(SizeTypes) == rank_dynamic())) &&
-      _MDSPAN_TRAIT(is_constructible, mapping_type, extents_type) &&
-      _MDSPAN_TRAIT(is_default_constructible, accessor_type)
-    )
-  )
-  MDSPAN_INLINE_FUNCTION
-  explicit constexpr mdspan(data_handle_type p, SizeTypes... dynamic_extents)
-    // TODO @proposal-bug shouldn't I be allowed to do `move(p)` here?
-    : __members(std::move(p), __map_acc_pair_t(mapping_type(extents_type(static_cast<index_type>(std::move(dynamic_extents))...)), accessor_type()))
-  { }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class SizeType, size_t N,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_convertible, SizeType, index_type) &&
-      _MDSPAN_TRAIT(is_nothrow_constructible, index_type, SizeType) &&
-      ((N == rank()) || (N == rank_dynamic())) &&
-      _MDSPAN_TRAIT(is_constructible, mapping_type, extents_type) &&
-      _MDSPAN_TRAIT(is_default_constructible, accessor_type)
-    )
-  )
-  MDSPAN_CONDITIONAL_EXPLICIT(N != rank_dynamic())
-  MDSPAN_INLINE_FUNCTION
-  constexpr mdspan(data_handle_type p, const array<SizeType, N>& dynamic_extents)
-    : __members(std::move(p), __map_acc_pair_t(mapping_type(extents_type(dynamic_extents)), accessor_type()))
-  { }
-
-#ifdef __cpp_lib_span
-  MDSPAN_TEMPLATE_REQUIRES(
-    class SizeType, size_t N,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_convertible, SizeType, index_type) &&
-      _MDSPAN_TRAIT(is_nothrow_constructible, index_type, SizeType) &&
-      ((N == rank()) || (N == rank_dynamic())) &&
-      _MDSPAN_TRAIT(is_constructible, mapping_type, extents_type) &&
-      _MDSPAN_TRAIT(is_default_constructible, accessor_type)
-    )
-  )
-  MDSPAN_CONDITIONAL_EXPLICIT(N != rank_dynamic())
-  MDSPAN_INLINE_FUNCTION
-  constexpr mdspan(data_handle_type p, span<SizeType, N> dynamic_extents)
-    : __members(std::move(p), __map_acc_pair_t(mapping_type(extents_type(as_const(dynamic_extents))), accessor_type()))
-  { }
-#endif
-
-  MDSPAN_FUNCTION_REQUIRES(
-    (MDSPAN_INLINE_FUNCTION constexpr),
-    mdspan, (data_handle_type p, const extents_type& exts), ,
-    /* requires */ (_MDSPAN_TRAIT(is_default_constructible, accessor_type) &&
-                    _MDSPAN_TRAIT(is_constructible, mapping_type, extents_type))
-  ) : __members(std::move(p), __map_acc_pair_t(mapping_type(exts), accessor_type()))
-  { }
-
-  MDSPAN_FUNCTION_REQUIRES(
-    (MDSPAN_INLINE_FUNCTION constexpr),
-    mdspan, (data_handle_type p, const mapping_type& m), ,
-    /* requires */ (_MDSPAN_TRAIT(is_default_constructible, accessor_type))
-  ) : __members(std::move(p), __map_acc_pair_t(m, accessor_type()))
-  { }
-
-  MDSPAN_INLINE_FUNCTION
-  constexpr mdspan(data_handle_type p, const mapping_type& m, const accessor_type& a)
-    : __members(std::move(p), __map_acc_pair_t(m, a))
-  { }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class OtherElementType, class OtherExtents, class OtherLayoutPolicy, class OtherAccessor,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_constructible, mapping_type, typename OtherLayoutPolicy::template mapping<OtherExtents>) &&
-      _MDSPAN_TRAIT(is_constructible, accessor_type, OtherAccessor)
-    )
-  )
-  MDSPAN_INLINE_FUNCTION
-  constexpr mdspan(const mdspan<OtherElementType, OtherExtents, OtherLayoutPolicy, OtherAccessor>& other)
-    : __members(other.__ptr_ref(), __map_acc_pair_t(other.__mapping_ref(), other.__accessor_ref()))
-  {
-      static_assert(_MDSPAN_TRAIT(is_constructible, data_handle_type, typename OtherAccessor::data_handle_type),"Incompatible data_handle_type for mdspan construction");
-      static_assert(_MDSPAN_TRAIT(is_constructible, extents_type, OtherExtents),"Incompatible extents for mdspan construction");
-      /*
-       * TODO: Check precondition
-       * For each rank index r of extents_type, static_extent(r) == dynamic_extent || static_extent(r) == other.extent(r) is true.
-       */
-  }
-
-  /* Might need this on NVIDIA?
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  ~mdspan() = default;
-  */
-
-  MDSPAN_INLINE_FUNCTION_DEFAULTED _MDSPAN_CONSTEXPR_14_DEFAULTED mdspan& operator=(const mdspan&) = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED _MDSPAN_CONSTEXPR_14_DEFAULTED mdspan& operator=(mdspan&&) = default;
-
-
-  //--------------------------------------------------------------------------------
-  // [mdspan.basic.mapping], mdspan mapping domain multidimensional index to access codomain element
-
-  #if MDSPAN_USE_BRACKET_OPERATOR
-  MDSPAN_TEMPLATE_REQUIRES(
-    class... SizeTypes,
-    /* requires */ (
-      _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_convertible, SizeTypes, index_type) /* && ... */) &&
-      _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_nothrow_constructible, index_type, SizeTypes) /* && ... */) &&
-      (rank() == sizeof...(SizeTypes))
-    )
-  )
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr reference operator[](SizeTypes... indices) const
-  {
-    return __accessor_ref().access(__ptr_ref(), __mapping_ref()(static_cast<index_type>(std::move(indices))...));
-  }
-  #endif
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class SizeType,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_convertible, SizeType, index_type) &&
-      _MDSPAN_TRAIT(is_nothrow_constructible, index_type, SizeType)
-    )
-  )
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr reference operator[](const array<SizeType, rank()>& indices) const
-  {
-    return __impl::template __callop<reference>(*this, indices);
-  }
-
-  #ifdef __cpp_lib_span
-  MDSPAN_TEMPLATE_REQUIRES(
-    class SizeType,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_convertible, SizeType, index_type) &&
-      _MDSPAN_TRAIT(is_nothrow_constructible, index_type, SizeType)
-    )
-  )
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr reference operator[](span<SizeType, rank()> indices) const
-  {
-    return __impl::template __callop<reference>(*this, indices);
-  }
-  #endif // __cpp_lib_span
-
-  #if !MDSPAN_USE_BRACKET_OPERATOR
-  MDSPAN_TEMPLATE_REQUIRES(
-    class Index,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_convertible, Index, index_type) &&
-      _MDSPAN_TRAIT(is_nothrow_constructible, index_type, Index) &&
-      extents_type::rank() == 1
-    )
-  )
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr reference operator[](Index idx) const
-  {
-    return __accessor_ref().access(__ptr_ref(), __mapping_ref()(static_cast<index_type>(std::move(idx))));
-  }
-  #endif
-
-  #if MDSPAN_USE_PAREN_OPERATOR
-  MDSPAN_TEMPLATE_REQUIRES(
-    class... SizeTypes,
-    /* requires */ (
-      _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_convertible, SizeTypes, index_type) /* && ... */) &&
-      _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_nothrow_constructible, index_type, SizeTypes) /* && ... */) &&
-      extents_type::rank() == sizeof...(SizeTypes)
-    )
-  )
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr reference operator()(SizeTypes... indices) const
-  {
-    return __accessor_ref().access(__ptr_ref(), __mapping_ref()(static_cast<index_type>(std::move(indices))...));
-  }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class SizeType,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_convertible, SizeType, index_type) &&
-      _MDSPAN_TRAIT(is_nothrow_constructible, index_type, SizeType)
-    )
-  )
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr reference operator()(const array<SizeType, rank()>& indices) const
-  {
-    return __impl::template __callop<reference>(*this, indices);
-  }
-
-  #ifdef __cpp_lib_span
-  MDSPAN_TEMPLATE_REQUIRES(
-    class SizeType,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_convertible, SizeType, index_type) &&
-      _MDSPAN_TRAIT(is_nothrow_constructible, index_type, SizeType)
-    )
-  )
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr reference operator()(span<SizeType, rank()> indices) const
-  {
-    return __impl::template __callop<reference>(*this, indices);
-  }
-  #endif // __cpp_lib_span
-  #endif // MDSPAN_USE_PAREN_OPERATOR
-
-  MDSPAN_INLINE_FUNCTION constexpr size_t size() const noexcept {
-    return __impl::__size(*this);
-  };
-
-  MDSPAN_INLINE_FUNCTION constexpr bool empty() const noexcept {
-    return __impl::__empty(*this);
-  };
-
-  MDSPAN_INLINE_FUNCTION
-  friend constexpr void swap(mdspan& x, mdspan& y) noexcept {
-    // can't call the std::swap inside on HIP
-    #if !defined(_MDSPAN_HAS_HIP) && !defined(_MDSPAN_HAS_CUDA)
-    swap(x.__ptr_ref(), y.__ptr_ref());
-    swap(x.__mapping_ref(), y.__mapping_ref());
-    swap(x.__accessor_ref(), y.__accessor_ref());
-    #else
-    mdspan tmp = y;
-    y = x;
-    x = tmp;
-    #endif
-  }
-
-  //--------------------------------------------------------------------------------
-  // [mdspan.basic.domobs], mdspan observers of the domain multidimensional index space
-
-
-  MDSPAN_INLINE_FUNCTION constexpr const extents_type& extents() const noexcept { return __mapping_ref().extents(); };
-  MDSPAN_INLINE_FUNCTION constexpr const data_handle_type& data_handle() const noexcept { return __ptr_ref(); };
-  MDSPAN_INLINE_FUNCTION constexpr const mapping_type& mapping() const noexcept { return __mapping_ref(); };
-  MDSPAN_INLINE_FUNCTION constexpr const accessor_type& accessor() const noexcept { return __accessor_ref(); };
-
-  //--------------------------------------------------------------------------------
-  // [mdspan.basic.obs], mdspan observers of the mapping
-
-  MDSPAN_INLINE_FUNCTION static constexpr bool is_always_unique() noexcept { return mapping_type::is_always_unique(); };
-  MDSPAN_INLINE_FUNCTION static constexpr bool is_always_exhaustive() noexcept { return mapping_type::is_always_exhaustive(); };
-  MDSPAN_INLINE_FUNCTION static constexpr bool is_always_strided() noexcept { return mapping_type::is_always_strided(); };
-
-  MDSPAN_INLINE_FUNCTION constexpr bool is_unique() const noexcept { return __mapping_ref().is_unique(); };
-  MDSPAN_INLINE_FUNCTION constexpr bool is_exhaustive() const noexcept { return __mapping_ref().is_exhaustive(); };
-  MDSPAN_INLINE_FUNCTION constexpr bool is_strided() const noexcept { return __mapping_ref().is_strided(); };
-  MDSPAN_INLINE_FUNCTION constexpr index_type stride(size_t r) const { return __mapping_ref().stride(r); };
-
-private:
-
-  detail::__compressed_pair<data_handle_type, __map_acc_pair_t> __members{};
-
-  MDSPAN_FORCE_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14 data_handle_type& __ptr_ref() noexcept { return __members.__first(); }
-  MDSPAN_FORCE_INLINE_FUNCTION constexpr data_handle_type const& __ptr_ref() const noexcept { return __members.__first(); }
-  MDSPAN_FORCE_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14 mapping_type& __mapping_ref() noexcept { return __members.__second().__first(); }
-  MDSPAN_FORCE_INLINE_FUNCTION constexpr mapping_type const& __mapping_ref() const noexcept { return __members.__second().__first(); }
-  MDSPAN_FORCE_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14 accessor_type& __accessor_ref() noexcept { return __members.__second().__second(); }
-  MDSPAN_FORCE_INLINE_FUNCTION constexpr accessor_type const& __accessor_ref() const noexcept { return __members.__second().__second(); }
-
-  template <class, class, class, class>
-  friend class mdspan;
-
-};
-
-#if defined(_MDSPAN_USE_CLASS_TEMPLATE_ARGUMENT_DEDUCTION)
-MDSPAN_TEMPLATE_REQUIRES(
-  class ElementType, class... SizeTypes,
-  /* requires */ _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_integral, SizeTypes) /* && ... */) &&
-  (sizeof...(SizeTypes) > 0)
-)
-MDSPAN_DEDUCTION_GUIDE explicit mdspan(ElementType*, SizeTypes...)
-  -> mdspan<ElementType, ::std::experimental::dextents<size_t, sizeof...(SizeTypes)>>;
-
-MDSPAN_TEMPLATE_REQUIRES(
-  class Pointer,
-  (_MDSPAN_TRAIT(is_pointer, std::remove_reference_t<Pointer>))
-)
-MDSPAN_DEDUCTION_GUIDE mdspan(Pointer&&) -> mdspan<std::remove_pointer_t<std::remove_reference_t<Pointer>>, extents<size_t>>;
-
-MDSPAN_TEMPLATE_REQUIRES(
-  class CArray,
-  (_MDSPAN_TRAIT(is_array, CArray) && (rank_v<CArray> == 1))
-)
-MDSPAN_DEDUCTION_GUIDE mdspan(CArray&) -> mdspan<std::remove_all_extents_t<CArray>, extents<size_t, ::std::extent_v<CArray,0>>>;
-
-template <class ElementType, class SizeType, size_t N>
-MDSPAN_DEDUCTION_GUIDE mdspan(ElementType*, const ::std::array<SizeType, N>&)
-  -> mdspan<ElementType, ::std::experimental::dextents<size_t, N>>;
-
-#ifdef __cpp_lib_span
-template <class ElementType, class SizeType, size_t N>
-MDSPAN_DEDUCTION_GUIDE mdspan(ElementType*, ::std::span<SizeType, N>)
-  -> mdspan<ElementType, ::std::experimental::dextents<size_t, N>>;
-#endif
-
-// This one is necessary because all the constructors take `data_handle_type`s, not
-// `ElementType*`s, and `data_handle_type` is taken from `accessor_type::data_handle_type`, which
-// seems to throw off automatic deduction guides.
-template <class ElementType, class SizeType, size_t... ExtentsPack>
-MDSPAN_DEDUCTION_GUIDE mdspan(ElementType*, const extents<SizeType, ExtentsPack...>&)
-  -> mdspan<ElementType, ::std::experimental::extents<SizeType, ExtentsPack...>>;
-
-template <class ElementType, class MappingType>
-MDSPAN_DEDUCTION_GUIDE mdspan(ElementType*, const MappingType&)
-  -> mdspan<ElementType, typename MappingType::extents_type, typename MappingType::layout_type>;
-
-template <class MappingType, class AccessorType>
-MDSPAN_DEDUCTION_GUIDE mdspan(const typename AccessorType::data_handle_type, const MappingType&, const AccessorType&)
-  -> mdspan<typename AccessorType::element_type, typename MappingType::extents_type, typename MappingType::layout_type, AccessorType>;
-#endif
-
-
-
-} // end namespace experimental
-} // end namespace std
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/no_unique_address.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/no_unique_address.hpp
deleted file mode 100644
index 7e4c5f8ffe94fdc4e952bd15d92d91dbf009ca4e..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/no_unique_address.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-#pragma once
-
-#include "macros.hpp"
-#include "trait_backports.hpp"
-
-namespace std {
-namespace experimental {
-namespace detail {
-
-//==============================================================================
-
-template <class _T, size_t _Disambiguator = 0, class _Enable = void>
-struct __no_unique_address_emulation {
-  using __stored_type = _T;
-  _T __v;
-  MDSPAN_FORCE_INLINE_FUNCTION constexpr _T const &__ref() const noexcept {
-    return __v;
-  }
-  MDSPAN_FORCE_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14 _T &__ref() noexcept {
-    return __v;
-  }
-};
-
-// Empty case
-// This doesn't work if _T is final, of course, but we're not using anything
-// like that currently. That kind of thing could be added pretty easily though
-template <class _T, size_t _Disambiguator>
-struct __no_unique_address_emulation<
-    _T, _Disambiguator,
-    enable_if_t<_MDSPAN_TRAIT(is_empty, _T) &&
-                // If the type isn't trivially destructible, its destructor
-                // won't be called at the right time, so don't use this
-                // specialization
-                _MDSPAN_TRAIT(is_trivially_destructible, _T)>> : 
-#ifdef _MDSPAN_COMPILER_MSVC
-    // MSVC doesn't allow you to access public static member functions of a type
-    // when you *happen* to privately inherit from that type.
-    protected
-#else
-    // But we still want this to be private if possible so that we don't accidentally 
-    // access members of _T directly rather than calling __ref() first, which wouldn't
-    // work if _T happens to be stateful and thus we're using the unspecialized definition
-    // of __no_unique_address_emulation above.
-    private
-#endif
-    _T {
-  using __stored_type = _T;
-  MDSPAN_FORCE_INLINE_FUNCTION constexpr _T const &__ref() const noexcept {
-    return *static_cast<_T const *>(this);
-  }
-  MDSPAN_FORCE_INLINE_FUNCTION _MDSPAN_CONSTEXPR_14 _T &__ref() noexcept {
-    return *static_cast<_T *>(this);
-  }
-
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr __no_unique_address_emulation() noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr __no_unique_address_emulation(
-      __no_unique_address_emulation const &) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  constexpr __no_unique_address_emulation(
-      __no_unique_address_emulation &&) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  _MDSPAN_CONSTEXPR_14_DEFAULTED __no_unique_address_emulation &
-  operator=(__no_unique_address_emulation const &) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  _MDSPAN_CONSTEXPR_14_DEFAULTED __no_unique_address_emulation &
-  operator=(__no_unique_address_emulation &&) noexcept = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  ~__no_unique_address_emulation() noexcept = default;
-
-  // Explicitly make this not a reference so that the copy or move
-  // constructor still gets called.
-  MDSPAN_INLINE_FUNCTION
-  explicit constexpr __no_unique_address_emulation(_T const& __v) noexcept : _T(__v) {}
-  MDSPAN_INLINE_FUNCTION
-  explicit constexpr __no_unique_address_emulation(_T&& __v) noexcept : _T(::std::move(__v)) {}
-};
-
-//==============================================================================
-
-} // end namespace detail
-} // end namespace experimental
-} // end namespace std
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/trait_backports.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/trait_backports.hpp
deleted file mode 100644
index b2bb5d21527235521260e8c25518de068fe172cf..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/trait_backports.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-#ifndef MDSPAN_INCLUDE_EXPERIMENTAL_BITS_TRAIT_BACKPORTS_HPP_
-#define MDSPAN_INCLUDE_EXPERIMENTAL_BITS_TRAIT_BACKPORTS_HPP_
-
-#include "macros.hpp"
-#include "config.hpp"
-
-#include <type_traits>
-#include <utility> // integer_sequence
-
-//==============================================================================
-// <editor-fold desc="Variable template trait backports (e.g., is_void_v)"> {{{1
-
-#ifdef _MDSPAN_NEEDS_TRAIT_VARIABLE_TEMPLATE_BACKPORTS
-
-#if _MDSPAN_USE_VARIABLE_TEMPLATES
-namespace std {
-
-#define _MDSPAN_BACKPORT_TRAIT(TRAIT) \
-  template <class... Args> _MDSPAN_INLINE_VARIABLE constexpr auto TRAIT##_v = TRAIT<Args...>::value;
-
-_MDSPAN_BACKPORT_TRAIT(is_assignable)
-_MDSPAN_BACKPORT_TRAIT(is_constructible)
-_MDSPAN_BACKPORT_TRAIT(is_convertible)
-_MDSPAN_BACKPORT_TRAIT(is_default_constructible)
-_MDSPAN_BACKPORT_TRAIT(is_trivially_destructible)
-_MDSPAN_BACKPORT_TRAIT(is_same)
-_MDSPAN_BACKPORT_TRAIT(is_empty)
-_MDSPAN_BACKPORT_TRAIT(is_void)
-
-#undef _MDSPAN_BACKPORT_TRAIT
-
-} // end namespace std
-
-#endif // _MDSPAN_USE_VARIABLE_TEMPLATES
-
-#endif // _MDSPAN_NEEDS_TRAIT_VARIABLE_TEMPLATE_BACKPORTS
-
-// </editor-fold> end Variable template trait backports (e.g., is_void_v) }}}1
-//==============================================================================
-
-//==============================================================================
-// <editor-fold desc="integer sequence (ugh...)"> {{{1
-
-#if !defined(_MDSPAN_USE_INTEGER_SEQUENCE) || !_MDSPAN_USE_INTEGER_SEQUENCE
-
-namespace std {
-
-template <class T, T... Vals>
-struct integer_sequence {
-  static constexpr std::size_t size() noexcept { return sizeof...(Vals); }
-  using value_type = T;
-};
-
-template <std::size_t... Vals>
-using index_sequence = std::integer_sequence<std::size_t, Vals...>;
-
-namespace __detail {
-
-template <class T, T N, T I, class Result>
-struct __make_int_seq_impl;
-
-template <class T, T N, T... Vals>
-struct __make_int_seq_impl<T, N, N, integer_sequence<T, Vals...>>
-{
-  using type = integer_sequence<T, Vals...>;
-};
-
-template <class T, T N, T I, T... Vals>
-struct __make_int_seq_impl<
-  T, N, I, integer_sequence<T, Vals...>
-> : __make_int_seq_impl<T, N, I+1, integer_sequence<T, Vals..., I>>
-{ };
-
-} // end namespace __detail
-
-template <class T, T N>
-using make_integer_sequence = typename __detail::__make_int_seq_impl<T, N, 0, integer_sequence<T>>::type;
-
-template <std::size_t N>
-using make_index_sequence = typename __detail::__make_int_seq_impl<size_t, N, 0, integer_sequence<size_t>>::type;
-
-template <class... T>
-using index_sequence_for = make_index_sequence<sizeof...(T)>;
-
-} // end namespace std
-
-#endif
-
-// </editor-fold> end integer sequence (ugh...) }}}1
-//==============================================================================
-
-//==============================================================================
-// <editor-fold desc="standard trait aliases"> {{{1
-
-#if !defined(_MDSPAN_USE_STANDARD_TRAIT_ALIASES) || !_MDSPAN_USE_STANDARD_TRAIT_ALIASES
-
-namespace std {
-
-#define _MDSPAN_BACKPORT_TRAIT_ALIAS(TRAIT) \
-  template <class... Args> using TRAIT##_t = typename TRAIT<Args...>::type;
-
-_MDSPAN_BACKPORT_TRAIT_ALIAS(remove_cv)
-_MDSPAN_BACKPORT_TRAIT_ALIAS(remove_reference)
-
-template <bool _B, class _T=void>
-using enable_if_t = typename enable_if<_B, _T>::type;
-
-#undef _MDSPAN_BACKPORT_TRAIT_ALIAS
-
-} // end namespace std
-
-#endif
-
-// </editor-fold> end standard trait aliases }}}1
-//==============================================================================
-
-#endif //MDSPAN_INCLUDE_EXPERIMENTAL_BITS_TRAIT_BACKPORTS_HPP_
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/type_list.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/type_list.hpp
deleted file mode 100644
index 6a7acd44b272303983de5d9d663f3b0667a06e1d..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p0009_bits/type_list.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-#include "macros.hpp"
-
-#include "trait_backports.hpp" // make_index_sequence
-
-namespace std {
-namespace experimental {
-
-//==============================================================================
-
-namespace detail {
-
-template <class... _Ts> struct __type_list { static constexpr auto __size = sizeof...(_Ts); };
-
-// Implementation of type_list at() that's heavily optimized for small typelists
-template <size_t, class> struct __type_at;
-template <size_t, class _Seq, class=make_index_sequence<_Seq::__size>> struct __type_at_large_impl;
-
-template <size_t _I, size_t _Idx, class _T>
-struct __type_at_entry { };
-
-template <class _Result>
-struct __type_at_assign_op_ignore_rest {
-  template <class _T>
-  __type_at_assign_op_ignore_rest<_Result> operator=(_T&&);
-  using type = _Result;
-};
-
-struct __type_at_assign_op_impl {
-  template <size_t _I, size_t _Idx, class _T>
-  __type_at_assign_op_impl operator=(__type_at_entry<_I, _Idx, _T>&&);
-  template <size_t _I, class _T>
-  __type_at_assign_op_ignore_rest<_T> operator=(__type_at_entry<_I, _I, _T>&&);
-};
-
-template <size_t _I, class... _Ts, size_t... _Idxs>
-struct __type_at_large_impl<_I, __type_list<_Ts...>, integer_sequence<size_t, _Idxs...>>
-  : decltype(
-      _MDSPAN_FOLD_ASSIGN_LEFT(__type_at_assign_op_impl{}, /* = ... = */ __type_at_entry<_I, _Idxs, _Ts>{})
-    )
-{ };
-
-template <size_t _I, class... _Ts>
-struct __type_at<_I, __type_list<_Ts...>>
-    : __type_at_large_impl<_I, __type_list<_Ts...>>
-{ };
-
-template <class _T0, class... _Ts>
-struct __type_at<0, __type_list<_T0, _Ts...>> {
-  using type = _T0;
-};
-
-template <class _T0, class _T1, class... _Ts>
-struct __type_at<1, __type_list<_T0, _T1, _Ts...>> {
-  using type = _T1;
-};
-
-template <class _T0, class _T1, class _T2, class... _Ts>
-struct __type_at<2, __type_list<_T0, _T1, _T2, _Ts...>> {
-  using type = _T2;
-};
-
-template <class _T0, class _T1, class _T2, class _T3, class... _Ts>
-struct __type_at<3, __type_list<_T0, _T1, _T2, _T3, _Ts...>> {
-  using type = _T3;
-};
-
-
-} // namespace detail
-
-//==============================================================================
-
-} // end namespace experimental
-} // end namespace std
-
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p1684_bits/mdarray.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p1684_bits/mdarray.hpp
deleted file mode 100644
index c84fd78a944fda5834871b33099271d911f1be77..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p1684_bits/mdarray.hpp
+++ /dev/null
@@ -1,490 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-
-#pragma once
-
-#include "../mdspan"
-#include <cassert>
-#include <vector>
-
-namespace std {
-namespace experimental {
-
-namespace {
-  template<class Extents>
-  struct size_of_extents;
-
-  template<class IndexType, size_t ... Extents>
-  struct size_of_extents<extents<IndexType, Extents...>> {
-    constexpr static size_t value() {
-      size_t size = 1;
-      for(size_t r=0; r<extents<IndexType, Extents...>::rank(); r++)
-        size *= extents<IndexType, Extents...>::static_extent(r);
-      return size;
-    }
-  };
-}
-
-namespace {
-  template<class C>
-  struct container_is_array : false_type {
-    template<class M>
-    static constexpr C construct(const M& m) { return C(m.required_span_size()); }
-  };
-  template<class T, size_t N>
-  struct container_is_array<array<T,N>> : true_type {
-    template<class M>
-    static constexpr array<T,N> construct(const M&) { return array<T,N>(); }
-  };
-}
-
-template <
-  class ElementType,
-  class Extents,
-  class LayoutPolicy = layout_right,
-  class Container = vector<ElementType>
->
-class mdarray {
-private:
-  static_assert(detail::__is_extents_v<Extents>, "std::experimental::mdspan's Extents template parameter must be a specialization of std::experimental::extents.");
-
-
-public:
-
-  //--------------------------------------------------------------------------------
-  // Domain and codomain types
-
-  using extents_type = Extents;
-  using layout_type = LayoutPolicy;
-  using container_type = Container;
-  using mapping_type = typename layout_type::template mapping<extents_type>;
-  using element_type = ElementType;
-  using mdspan_type = mdspan<element_type, extents_type, layout_type>;
-  using const_mdspan_type = mdspan<const element_type, extents_type, layout_type>;
-  using value_type = remove_cv_t<element_type>;
-  using index_type = typename Extents::index_type;
-  using size_type = typename Extents::size_type;
-  using rank_type = typename Extents::rank_type;
-  using pointer = typename container_type::pointer;
-  using reference = typename container_type::reference;
-  using const_pointer = typename container_type::const_pointer;
-  using const_reference = typename container_type::const_reference;
-
-public:
-
-  //--------------------------------------------------------------------------------
-  // [mdspan.basic.cons], mdspan constructors, assignment, and destructor
-
-#if !(MDSPAN_HAS_CXX_20)
-  MDSPAN_FUNCTION_REQUIRES(
-    (MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr),
-    mdarray, (), ,
-    /* requires */ (extents_type::rank_dynamic()!=0)) {}
-#else
-  MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mdarray() requires(extents_type::rank_dynamic()!=0) = default;
-#endif
-  MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mdarray(const mdarray&) = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mdarray(mdarray&&) = default;
-
-  // Constructors for container types constructible from a size
-  MDSPAN_TEMPLATE_REQUIRES(
-    class... SizeTypes,
-    /* requires */ (
-      _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_convertible, SizeTypes, index_type) /* && ... */) &&
-      _MDSPAN_TRAIT(is_constructible, extents_type, SizeTypes...) &&
-      _MDSPAN_TRAIT(is_constructible, mapping_type, extents_type) &&
-      (_MDSPAN_TRAIT(is_constructible, container_type, size_t) ||
-       container_is_array<container_type>::value) &&
-      (extents_type::rank()>0 || extents_type::rank_dynamic()==0)
-    )
-  )
-  MDSPAN_INLINE_FUNCTION
-  explicit constexpr mdarray(SizeTypes... dynamic_extents)
-    : map_(extents_type(dynamic_extents...)), ctr_(container_is_array<container_type>::construct(map_))
-  { }
-
-  MDSPAN_FUNCTION_REQUIRES(
-    (MDSPAN_INLINE_FUNCTION constexpr),
-    mdarray, (const extents_type& exts), ,
-    /* requires */ ((_MDSPAN_TRAIT(is_constructible, container_type, size_t) ||
-                     container_is_array<container_type>::value) &&
-                    _MDSPAN_TRAIT(is_constructible, mapping_type, extents_type))
-  ) : map_(exts), ctr_(container_is_array<container_type>::construct(map_))
-  { }
-
-  MDSPAN_FUNCTION_REQUIRES(
-    (MDSPAN_INLINE_FUNCTION constexpr),
-    mdarray, (const mapping_type& m), ,
-    /* requires */ (_MDSPAN_TRAIT(is_constructible, container_type, size_t) ||
-                    container_is_array<container_type>::value)
-  ) : map_(m), ctr_(container_is_array<container_type>::construct(map_))
-  { }
-
-  // Constructors from container
-  MDSPAN_TEMPLATE_REQUIRES(
-    class... SizeTypes,
-    /* requires */ (
-      _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_convertible, SizeTypes, index_type) /* && ... */) &&
-      _MDSPAN_TRAIT(is_constructible, extents_type, SizeTypes...) &&
-      _MDSPAN_TRAIT(is_constructible, mapping_type, extents_type)
-    )
-  )
-  MDSPAN_INLINE_FUNCTION
-  explicit constexpr mdarray(const container_type& ctr, SizeTypes... dynamic_extents)
-    : map_(extents_type(dynamic_extents...)), ctr_(ctr)
-  { assert(ctr.size() >= static_cast<size_t>(map_.required_span_size())); }
-
-
-  MDSPAN_FUNCTION_REQUIRES(
-    (MDSPAN_INLINE_FUNCTION constexpr),
-    mdarray, (const container_type& ctr, const extents_type& exts), ,
-    /* requires */ (_MDSPAN_TRAIT(is_constructible, mapping_type, extents_type))
-  ) : map_(exts), ctr_(ctr)
-  { assert(ctr.size() >= static_cast<size_t>(map_.required_span_size())); }
-
-  constexpr mdarray(const container_type& ctr, const mapping_type& m)
-    : map_(m), ctr_(ctr)
-  { assert(ctr.size() >= static_cast<size_t>(map_.required_span_size())); }
-
-
-  // Constructors from container
-  MDSPAN_TEMPLATE_REQUIRES(
-    class... SizeTypes,
-    /* requires */ (
-      _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_convertible, SizeTypes, index_type) /* && ... */) &&
-      _MDSPAN_TRAIT(is_constructible, extents_type, SizeTypes...) &&
-      _MDSPAN_TRAIT(is_constructible, mapping_type, extents_type)
-    )
-  )
-  MDSPAN_INLINE_FUNCTION
-  explicit constexpr mdarray(container_type&& ctr, SizeTypes... dynamic_extents)
-    : map_(extents_type(dynamic_extents...)), ctr_(std::move(ctr))
-  { assert(ctr_.size() >= static_cast<size_t>(map_.required_span_size())); }
-
-
-  MDSPAN_FUNCTION_REQUIRES(
-    (MDSPAN_INLINE_FUNCTION constexpr),
-    mdarray, (container_type&& ctr, const extents_type& exts), ,
-    /* requires */ (_MDSPAN_TRAIT(is_constructible, mapping_type, extents_type))
-  ) : map_(exts), ctr_(std::move(ctr))
-  { assert(ctr_.size() >= static_cast<size_t>(map_.required_span_size())); }
-
-  constexpr mdarray(container_type&& ctr, const mapping_type& m)
-    : map_(m), ctr_(std::move(ctr))
-  { assert(ctr_.size() >= static_cast<size_t>(map_.required_span_size())); }
-
-
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class OtherElementType, class OtherExtents, class OtherLayoutPolicy, class OtherContainer,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_constructible, mapping_type, typename OtherLayoutPolicy::template mapping<OtherExtents>) &&
-      _MDSPAN_TRAIT(is_constructible, container_type, OtherContainer)
-    )
-  )
-  MDSPAN_INLINE_FUNCTION
-  constexpr mdarray(const mdarray<OtherElementType, OtherExtents, OtherLayoutPolicy, OtherContainer>& other)
-    : map_(other.mapping()), ctr_(other.container())
-  {
-    static_assert(is_constructible<extents_type, OtherExtents>::value, "");
-  }
-
-  // Constructors for container types constructible from a size and allocator
-  MDSPAN_TEMPLATE_REQUIRES(
-    class Alloc,
-    /* requires */ (_MDSPAN_TRAIT(is_constructible, container_type, size_t, Alloc) &&
-                    _MDSPAN_TRAIT(is_constructible, mapping_type, extents_type))
-  )
-  MDSPAN_INLINE_FUNCTION
-  constexpr mdarray(const extents_type& exts, const Alloc& a)
-    : map_(exts), ctr_(map_.required_span_size(), a)
-  { }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class Alloc,
-    /* requires */ (_MDSPAN_TRAIT(is_constructible, container_type, size_t, Alloc))
-  )
-  MDSPAN_INLINE_FUNCTION
-  constexpr mdarray(const mapping_type& map, const Alloc& a)
-    : map_(map), ctr_(map_.required_span_size(), a)
-  { }
-
-  // Constructors for container types constructible from a container and allocator
-  MDSPAN_TEMPLATE_REQUIRES(
-    class Alloc,
-    /* requires */ (_MDSPAN_TRAIT(is_constructible, container_type, container_type, Alloc) &&
-                    _MDSPAN_TRAIT(is_constructible, mapping_type, extents_type))
-  )
-  MDSPAN_INLINE_FUNCTION
-  constexpr mdarray(const container_type& ctr, const extents_type& exts, const Alloc& a)
-    : map_(exts), ctr_(ctr, a)
-  { assert(ctr_.size() >= static_cast<size_t>(map_.required_span_size())); }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class Alloc,
-    /* requires */ (_MDSPAN_TRAIT(is_constructible, container_type, size_t, Alloc))
-  )
-  MDSPAN_INLINE_FUNCTION
-  constexpr mdarray(const container_type& ctr, const mapping_type& map, const Alloc& a)
-    : map_(map), ctr_(ctr, a)
-  { assert(ctr_.size() >= static_cast<size_t>(map_.required_span_size())); }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class Alloc,
-    /* requires */ (_MDSPAN_TRAIT(is_constructible, container_type, container_type, Alloc) &&
-                    _MDSPAN_TRAIT(is_constructible, mapping_type, extents_type))
-  )
-  MDSPAN_INLINE_FUNCTION
-  constexpr mdarray(container_type&& ctr, const extents_type& exts, const Alloc& a)
-    : map_(exts), ctr_(std::move(ctr), a)
-  { assert(ctr_.size() >= static_cast<size_t>(map_.required_span_size())); }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class Alloc,
-    /* requires */ (_MDSPAN_TRAIT(is_constructible, container_type, size_t, Alloc))
-  )
-  MDSPAN_INLINE_FUNCTION
-  constexpr mdarray(container_type&& ctr, const mapping_type& map, const Alloc& a)
-    : map_(map), ctr_(std::move(ctr), a)
-  { assert(ctr_.size() >= map_.required_span_size()); }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class OtherElementType, class OtherExtents, class OtherLayoutPolicy, class OtherContainer, class Alloc,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_constructible, mapping_type, typename OtherLayoutPolicy::template mapping<OtherExtents>) &&
-      _MDSPAN_TRAIT(is_constructible, container_type, OtherContainer, Alloc)
-    )
-  )
-  MDSPAN_INLINE_FUNCTION
-  constexpr mdarray(const mdarray<OtherElementType, OtherExtents, OtherLayoutPolicy, OtherContainer>& other, const Alloc& a)
-    : map_(other.mapping()), ctr_(other.container(), a)
-  {
-    static_assert(is_constructible<extents_type, OtherExtents>::value, "");
-  }
-
-  MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mdarray& operator= (const mdarray&) = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED constexpr mdarray& operator= (mdarray&&) = default;
-  MDSPAN_INLINE_FUNCTION_DEFAULTED
-  ~mdarray() = default;
-
-  //--------------------------------------------------------------------------------
-  // [mdspan.basic.mapping], mdspan mapping domain multidimensional index to access codomain element
-
-  #if MDSPAN_USE_BRACKET_OPERATOR
-  MDSPAN_TEMPLATE_REQUIRES(
-    class... SizeTypes,
-    /* requires */ (
-      _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_convertible, SizeTypes, index_type) /* && ... */) &&
-      extents_type::rank() == sizeof...(SizeTypes)
-    )
-  )
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr const_reference operator[](SizeTypes... indices) const noexcept
-  {
-    return ctr_[map_(static_cast<index_type>(std::move(indices))...)];
-  }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class... SizeTypes,
-    /* requires */ (
-      _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_convertible, SizeTypes, index_type) /* && ... */) &&
-      extents_type::rank() == sizeof...(SizeTypes)
-    )
-  )
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr reference operator[](SizeTypes... indices) noexcept
-  {
-    return ctr_[map_(static_cast<index_type>(std::move(indices))...)];
-  }
-  #endif
-
-#if 0
-  MDSPAN_TEMPLATE_REQUIRES(
-    class SizeType, size_t N,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_convertible, SizeType, index_type) &&
-      N == extents_type::rank()
-    )
-  )
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr const_reference operator[](const array<SizeType, N>& indices) const noexcept
-  {
-    return __impl::template __callop<reference>(*this, indices);
-  }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class SizeType, size_t N,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_convertible, SizeType, index_type) &&
-      N == extents_type::rank()
-    )
-  )
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr reference operator[](const array<SizeType, N>& indices) noexcept
-  {
-    return __impl::template __callop<reference>(*this, indices);
-  }
-#endif
-
-
-  #if MDSPAN_USE_PAREN_OPERATOR
-  MDSPAN_TEMPLATE_REQUIRES(
-    class... SizeTypes,
-    /* requires */ (
-      _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_convertible, SizeTypes, index_type) /* && ... */) &&
-      extents_type::rank() == sizeof...(SizeTypes)
-    )
-  )
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr const_reference operator()(SizeTypes... indices) const noexcept
-  {
-    return ctr_[map_(static_cast<index_type>(std::move(indices))...)];
-  }
-  MDSPAN_TEMPLATE_REQUIRES(
-    class... SizeTypes,
-    /* requires */ (
-      _MDSPAN_FOLD_AND(_MDSPAN_TRAIT(is_convertible, SizeTypes, index_type) /* && ... */) &&
-      extents_type::rank() == sizeof...(SizeTypes)
-    )
-  )
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr reference operator()(SizeTypes... indices) noexcept
-  {
-    return ctr_[map_(static_cast<index_type>(std::move(indices))...)];
-  }
-
-#if 0
-  MDSPAN_TEMPLATE_REQUIRES(
-    class SizeType, size_t N,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_convertible, SizeType, index_type) &&
-      N == extents_type::rank()
-    )
-  )
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr const_reference operator()(const array<SizeType, N>& indices) const noexcept
-  {
-    return __impl::template __callop<reference>(*this, indices);
-  }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class SizeType, size_t N,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_convertible, SizeType, index_type) &&
-      N == extents_type::rank()
-    )
-  )
-  MDSPAN_FORCE_INLINE_FUNCTION
-  constexpr reference operator()(const array<SizeType, N>& indices) noexcept
-  {
-    return __impl::template __callop<reference>(*this, indices);
-  }
-#endif
-  #endif
-
-  MDSPAN_INLINE_FUNCTION constexpr pointer data() noexcept { return ctr_.data(); };
-  MDSPAN_INLINE_FUNCTION constexpr const_pointer data() const noexcept { return ctr_.data(); };
-  MDSPAN_INLINE_FUNCTION constexpr container_type& container() noexcept { return ctr_; };
-  MDSPAN_INLINE_FUNCTION constexpr const container_type& container() const noexcept { return ctr_; };
-
-  //--------------------------------------------------------------------------------
-  // [mdspan.basic.domobs], mdspan observers of the domain multidimensional index space
-
-  MDSPAN_INLINE_FUNCTION static constexpr rank_type rank() noexcept { return extents_type::rank(); }
-  MDSPAN_INLINE_FUNCTION static constexpr rank_type rank_dynamic() noexcept { return extents_type::rank_dynamic(); }
-  MDSPAN_INLINE_FUNCTION static constexpr size_t static_extent(size_t r) noexcept { return extents_type::static_extent(r); }
-
-  MDSPAN_INLINE_FUNCTION constexpr const extents_type& extents() const noexcept { return map_.extents(); };
-  MDSPAN_INLINE_FUNCTION constexpr index_type extent(size_t r) const noexcept { return map_.extents().extent(r); };
-  MDSPAN_INLINE_FUNCTION constexpr index_type size() const noexcept {
-//    return __impl::__size(*this);
-    return ctr_.size();
-  };
-
-
-  //--------------------------------------------------------------------------------
-  // [mdspan.basic.obs], mdspan observers of the mapping
-
-  MDSPAN_INLINE_FUNCTION static constexpr bool is_always_unique() noexcept { return mapping_type::is_always_unique(); };
-  MDSPAN_INLINE_FUNCTION static constexpr bool is_always_exhaustive() noexcept { return mapping_type::is_always_exhaustive(); };
-  MDSPAN_INLINE_FUNCTION static constexpr bool is_always_strided() noexcept { return mapping_type::is_always_strided(); };
-
-  MDSPAN_INLINE_FUNCTION constexpr const mapping_type& mapping() const noexcept { return map_; };
-  MDSPAN_INLINE_FUNCTION constexpr bool is_unique() const noexcept { return map_.is_unique(); };
-  MDSPAN_INLINE_FUNCTION constexpr bool is_exhaustive() const noexcept { return map_.is_exhaustive(); };
-  MDSPAN_INLINE_FUNCTION constexpr bool is_strided() const noexcept { return map_.is_strided(); };
-  MDSPAN_INLINE_FUNCTION constexpr index_type stride(size_t r) const { return map_.stride(r); };
-
-  // Converstion to mdspan
-  MDSPAN_TEMPLATE_REQUIRES(
-    class OtherElementType, class OtherExtents,
-    class OtherLayoutType, class OtherAccessorType,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_assignable, mdspan_type,
-                       mdspan<OtherElementType, OtherExtents, OtherLayoutType, OtherAccessorType>)
-    )
-  )
-  constexpr operator mdspan<OtherElementType, OtherExtents, OtherLayoutType, OtherAccessorType> () {
-    return mdspan_type(data(), map_);
-  }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class OtherElementType, class OtherExtents,
-    class OtherLayoutType, class OtherAccessorType,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_assignable, const_mdspan_type,
-                      mdspan<OtherElementType, OtherExtents, OtherLayoutType, OtherAccessorType>)
-    )
-  )
-  constexpr operator mdspan<OtherElementType, OtherExtents, OtherLayoutType, OtherAccessorType> () const {
-    return const_mdspan_type(data(), map_);
-  }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class OtherAccessorType = default_accessor<element_type>,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_assignable, mdspan_type,
-                      mdspan<element_type, extents_type, layout_type, OtherAccessorType>)
-    )
-  )
-  constexpr mdspan<element_type, extents_type, layout_type, OtherAccessorType>
-    to_mdspan(const OtherAccessorType& a = default_accessor<element_type>()) {
-      return mdspan<element_type, extents_type, layout_type, OtherAccessorType>(data(), map_, a);
-  }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class OtherAccessorType = default_accessor<const element_type>,
-    /* requires */ (
-      _MDSPAN_TRAIT(is_assignable, const_mdspan_type,
-                      mdspan<const element_type, extents_type, layout_type, OtherAccessorType>)
-    )
-  )
-  constexpr mdspan<const element_type, extents_type, layout_type, OtherAccessorType>
-    to_mdspan(const OtherAccessorType& a = default_accessor<const element_type>()) const {
-      return mdspan<const element_type, extents_type, layout_type, OtherAccessorType>(data(), map_, a);
-  }
-
-private:
-  mapping_type map_;
-  container_type ctr_;
-
-  template <class, class, class, class>
-  friend class mdarray;
-};
-
-
-} // end namespace experimental
-} // end namespace std
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p2630_bits/strided_slice.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p2630_bits/strided_slice.hpp
deleted file mode 100644
index f2f51bbc701c8325226f0195e24d075409d335e2..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p2630_bits/strided_slice.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-
-#include <type_traits>
-
-namespace std {
-namespace experimental {
-
-namespace {
-  template<class T>
-  struct __mdspan_is_integral_constant: std::false_type {};
-
-  template<class T, T val>
-  struct __mdspan_is_integral_constant<integral_constant<T,val>>: std::true_type {};
-}
-// Slice Specifier allowing for strides and compile time extent
-template <class OffsetType, class ExtentType, class StrideType>
-struct strided_slice {
-  using offset_type = OffsetType;
-  using extent_type = ExtentType;
-  using stride_type = StrideType;
-
-  OffsetType offset;
-  ExtentType extent;
-  StrideType stride;
-
-  static_assert(is_integral_v<OffsetType> || __mdspan_is_integral_constant<OffsetType>::value);
-  static_assert(is_integral_v<ExtentType> || __mdspan_is_integral_constant<ExtentType>::value);
-  static_assert(is_integral_v<StrideType> || __mdspan_is_integral_constant<StrideType>::value);
-};
-
-} // experimental
-} // std
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p2630_bits/submdspan.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p2630_bits/submdspan.hpp
deleted file mode 100644
index 7b2790013cbbc866f22d94176e54ae10515a0aeb..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p2630_bits/submdspan.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-
-#include "submdspan_extents.hpp"
-#include "submdspan_mapping.hpp"
-
-namespace std {
-namespace experimental {
-template <class ElementType, class Extents, class LayoutPolicy,
-          class AccessorPolicy, class... SliceSpecifiers>
-MDSPAN_INLINE_FUNCTION
-constexpr auto
-submdspan(const mdspan<ElementType, Extents, LayoutPolicy, AccessorPolicy> &src,
-          SliceSpecifiers... slices) {
-  const auto sub_mapping_offset = submdspan_mapping(src.mapping(), slices...);
-  // NVCC has a problem with the deduction so lets figure out the type
-  using sub_mapping_t = std::remove_cv_t<decltype(sub_mapping_offset.mapping)>;
-  using sub_extents_t = typename sub_mapping_t::extents_type;
-  using sub_layout_t = typename sub_mapping_t::layout_type;
-  using sub_accessor_t = typename AccessorPolicy::offset_policy;
-  return mdspan<ElementType, sub_extents_t, sub_layout_t, sub_accessor_t>(
-      src.accessor().offset(src.data_handle(), sub_mapping_offset.offset),
-      sub_mapping_offset.mapping,
-      sub_accessor_t(src.accessor()));
-}
-} // namespace experimental
-} // namespace std
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p2630_bits/submdspan_extents.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p2630_bits/submdspan_extents.hpp
deleted file mode 100644
index 6f2c6a2ec1ff38763a01d3226463385da716573b..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p2630_bits/submdspan_extents.hpp
+++ /dev/null
@@ -1,319 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-
-#include "strided_slice.hpp"
-namespace std {
-namespace experimental {
-namespace detail {
-
-// Mapping from submapping ranks to srcmapping ranks
-// InvMapRank is an index_sequence, which we build recursively
-// to contain the mapped indices.
-// end of recursion specialization containing the final index_sequence
-template <size_t Counter, size_t... MapIdxs>
-MDSPAN_INLINE_FUNCTION
-constexpr auto inv_map_rank(integral_constant<size_t, Counter>, index_sequence<MapIdxs...>) {
-  return index_sequence<MapIdxs...>();
-}
-
-// specialization reducing rank by one (i.e., integral slice specifier)
-template<size_t Counter, class Slice, class... SliceSpecifiers, size_t... MapIdxs>
-MDSPAN_INLINE_FUNCTION
-constexpr auto inv_map_rank(integral_constant<size_t, Counter>, index_sequence<MapIdxs...>, Slice,
-                  SliceSpecifiers... slices) {
-  using next_idx_seq_t = conditional_t<is_convertible_v<Slice, size_t>,
-                                       index_sequence<MapIdxs...>,
-                                       index_sequence<MapIdxs..., Counter>>;
-
-  return inv_map_rank(integral_constant<size_t,Counter + 1>(), next_idx_seq_t(),
-                                     slices...);
-}
-
-// Helper for identifying strided_slice
-template <class T> struct is_strided_slice : false_type {};
-
-template <class OffsetType, class ExtentType, class StrideType>
-struct is_strided_slice<
-    strided_slice<OffsetType, ExtentType, StrideType>> : true_type {};
-
-// first_of(slice): getting begin of slice specifier range
-MDSPAN_TEMPLATE_REQUIRES(
-  class Integral,
-  /* requires */(is_convertible_v<Integral, size_t>)
-)
-MDSPAN_INLINE_FUNCTION
-constexpr Integral first_of(const Integral &i) {
-  return i;
-}
-
-MDSPAN_INLINE_FUNCTION
-constexpr integral_constant<size_t, 0>
-first_of(const experimental::full_extent_t &) {
-  return integral_constant<size_t, 0>();
-}
-
-MDSPAN_TEMPLATE_REQUIRES(
-  class Slice,
-  /* requires */(is_convertible_v<Slice, tuple<size_t, size_t>>)
-)
-MDSPAN_INLINE_FUNCTION
-constexpr auto first_of(const Slice &i) {
-  return get<0>(i);
-}
-
-template <class OffsetType, class ExtentType, class StrideType>
-MDSPAN_INLINE_FUNCTION
-constexpr OffsetType
-first_of(const strided_slice<OffsetType, ExtentType, StrideType> &r) {
-  return r.offset;
-}
-
-// last_of(slice): getting end of slice specifier range
-// We need however not just the slice but also the extents
-// of the original view and which rank from the extents.
-// This is needed in the case of slice being full_extent_t.
-MDSPAN_TEMPLATE_REQUIRES(
-  size_t k, class Extents, class Integral,
-  /* requires */(is_convertible_v<Integral, size_t>)
-)
-MDSPAN_INLINE_FUNCTION
-constexpr Integral
-    last_of(integral_constant<size_t, k>, const Extents &, const Integral &i) {
-  return i;
-}
-
-MDSPAN_TEMPLATE_REQUIRES(
-  size_t k, class Extents, class Slice,
-  /* requires */(is_convertible_v<Slice, tuple<size_t, size_t>>)
-)
-MDSPAN_INLINE_FUNCTION
-constexpr auto last_of(integral_constant<size_t, k>, const Extents &,
-                       const Slice &i) {
-  return get<1>(i);
-}
-
-// Suppress spurious warning with NVCC about no return statement.
-// This is a known issue in NVCC and NVC++
-// Depending on the CUDA and GCC version we need both the builtin
-// and the diagnostic push. I tried really hard to find something shorter
-// but no luck ...
-#if defined __NVCC__
-    #ifdef __NVCC_DIAG_PRAGMA_SUPPORT__
-        #pragma nv_diagnostic push
-        #pragma nv_diag_suppress = implicit_return_from_non_void_function
-    #else
-      #ifdef __CUDA_ARCH__
-        #pragma diagnostic push
-        #pragma diag_suppress implicit_return_from_non_void_function
-      #endif
-    #endif
-#elif defined __NVCOMPILER
-    #pragma    diagnostic push
-    #pragma    diag_suppress = implicit_return_from_non_void_function
-#endif
-template <size_t k, class Extents>
-MDSPAN_INLINE_FUNCTION
-constexpr auto last_of(integral_constant<size_t, k>, const Extents &ext,
-                       experimental::full_extent_t) {
-  if constexpr (Extents::static_extent(k) == dynamic_extent) {
-    return ext.extent(k);
-  } else {
-    return integral_constant<size_t, Extents::static_extent(k)>();
-  }
-#if defined(__NVCC__) && !defined(__CUDA_ARCH__) && defined(__GNUC__)
-  // Even with CUDA_ARCH protection this thing warns about calling host function
-  __builtin_unreachable();
-#endif
-}
-#if defined __NVCC__
-    #ifdef __NVCC_DIAG_PRAGMA_SUPPORT__
-        #pragma nv_diagnostic pop
-    #else
-      #ifdef __CUDA_ARCH__
-        #pragma diagnostic pop
-      #endif
-    #endif
-#elif defined __NVCOMPILER
-    #pragma    diagnostic pop
-#endif
-
-template <size_t k, class Extents, class OffsetType, class ExtentType,
-          class StrideType>
-MDSPAN_INLINE_FUNCTION
-constexpr OffsetType
-last_of(integral_constant<size_t, k>, const Extents &,
-        const strided_slice<OffsetType, ExtentType, StrideType> &r) {
-  return r.extent;
-}
-
-// get stride of slices
-template <class T>
-MDSPAN_INLINE_FUNCTION
-constexpr auto stride_of(const T &) {
-  return integral_constant<size_t, 1>();
-}
-
-template <class OffsetType, class ExtentType, class StrideType>
-MDSPAN_INLINE_FUNCTION
-constexpr auto
-stride_of(const strided_slice<OffsetType, ExtentType, StrideType> &r) {
-  return r.stride;
-}
-
-// divide which can deal with integral constant preservation
-template <class IndexT, class T0, class T1>
-MDSPAN_INLINE_FUNCTION
-constexpr auto divide(const T0 &v0, const T1 &v1) {
-  return IndexT(v0) / IndexT(v1);
-}
-
-template <class IndexT, class T0, T0 v0, class T1, T1 v1>
-MDSPAN_INLINE_FUNCTION
-constexpr auto divide(const integral_constant<T0, v0> &,
-                      const integral_constant<T1, v1> &) {
-  // cutting short division by zero
-  // this is used for strided_slice with zero extent/stride
-  return integral_constant<IndexT, v0 == 0 ? 0 : v0 / v1>();
-}
-
-// multiply which can deal with integral constant preservation
-template <class IndexT, class T0, class T1>
-MDSPAN_INLINE_FUNCTION
-constexpr auto multiply(const T0 &v0, const T1 &v1) {
-  return IndexT(v0) * IndexT(v1);
-}
-
-template <class IndexT, class T0, T0 v0, class T1, T1 v1>
-MDSPAN_INLINE_FUNCTION
-constexpr auto multiply(const integral_constant<T0, v0> &,
-                        const integral_constant<T1, v1> &) {
-  return integral_constant<IndexT, v0 * v1>();
-}
-
-// compute new static extent from range, preserving static knowledge
-template <class Arg0, class Arg1> struct StaticExtentFromRange {
-  constexpr static size_t value = dynamic_extent;
-};
-
-template <class Integral0, Integral0 val0, class Integral1, Integral1 val1>
-struct StaticExtentFromRange<std::integral_constant<Integral0, val0>,
-                             std::integral_constant<Integral1, val1>> {
-  constexpr static size_t value = val1 - val0;
-};
-
-// compute new static extent from strided_slice, preserving static
-// knowledge
-template <class Arg0, class Arg1> struct StaticExtentFromStridedRange {
-  constexpr static size_t value = dynamic_extent;
-};
-
-template <class Integral0, Integral0 val0, class Integral1, Integral1 val1>
-struct StaticExtentFromStridedRange<std::integral_constant<Integral0, val0>,
-                                    std::integral_constant<Integral1, val1>> {
-  constexpr static size_t value = val0 > 0 ? 1 + (val0 - 1) / val1 : 0;
-};
-
-// creates new extents through recursive calls to next_extent member function
-// next_extent has different overloads for different types of stride specifiers
-template <size_t K, class Extents, size_t... NewExtents>
-struct extents_constructor {
-  MDSPAN_TEMPLATE_REQUIRES(
-    class Slice, class... SlicesAndExtents,
-    /* requires */(!is_convertible_v<Slice, size_t> &&
-                   !is_strided_slice<Slice>::value)
-  )
-  MDSPAN_INLINE_FUNCTION
-  constexpr static auto next_extent(const Extents &ext, const Slice &sl,
-                                    SlicesAndExtents... slices_and_extents) {
-    constexpr size_t new_static_extent = StaticExtentFromRange<
-        decltype(first_of(std::declval<Slice>())),
-        decltype(last_of(integral_constant<size_t, Extents::rank() - K>(),
-                         std::declval<Extents>(),
-                         std::declval<Slice>()))>::value;
-
-    using next_t =
-        extents_constructor<K - 1, Extents, NewExtents..., new_static_extent>;
-    using index_t = typename Extents::index_type;
-    return next_t::next_extent(
-        ext, slices_and_extents...,
-        index_t(last_of(integral_constant<size_t, Extents::rank() - K>(), ext,
-                        sl)) -
-            index_t(first_of(sl)));
-  }
-
-  MDSPAN_TEMPLATE_REQUIRES(
-    class Slice, class... SlicesAndExtents,
-    /* requires */ (is_convertible_v<Slice, size_t>)
-  )
-  MDSPAN_INLINE_FUNCTION
-  constexpr static auto next_extent(const Extents &ext, const Slice &,
-                                    SlicesAndExtents... slices_and_extents) {
-    using next_t = extents_constructor<K - 1, Extents, NewExtents...>;
-    return next_t::next_extent(ext, slices_and_extents...);
-  }
-
-  template <class OffsetType, class ExtentType, class StrideType,
-            class... SlicesAndExtents>
-  MDSPAN_INLINE_FUNCTION
-  constexpr static auto
-  next_extent(const Extents &ext,
-              const strided_slice<OffsetType, ExtentType, StrideType> &r,
-              SlicesAndExtents... slices_and_extents) {
-    using index_t = typename Extents::index_type;
-    using new_static_extent_t =
-        StaticExtentFromStridedRange<ExtentType, StrideType>;
-    if constexpr (new_static_extent_t::value == dynamic_extent) {
-      using next_t =
-          extents_constructor<K - 1, Extents, NewExtents..., dynamic_extent>;
-      return next_t::next_extent(
-          ext, slices_and_extents...,
-          r.extent > 0 ? 1 + divide<index_t>(r.extent - 1, r.stride) : 0);
-    } else {
-      constexpr size_t new_static_extent = new_static_extent_t::value;
-      using next_t =
-          extents_constructor<K - 1, Extents, NewExtents..., new_static_extent>;
-      return next_t::next_extent(
-          ext, slices_and_extents..., index_t(divide<index_t>(ExtentType(), StrideType())));
-    }
-  }
-};
-
-template <class Extents, size_t... NewStaticExtents>
-struct extents_constructor<0, Extents, NewStaticExtents...> {
-
-  template <class... NewExtents>
-  MDSPAN_INLINE_FUNCTION
-  constexpr static auto next_extent(const Extents &, NewExtents... new_exts) {
-    return extents<typename Extents::index_type, NewStaticExtents...>(
-        new_exts...);
-  }
-};
-
-} // namespace detail
-
-// submdspan_extents creates new extents given src extents and submdspan slice
-// specifiers
-template <class IndexType, size_t... Extents, class... SliceSpecifiers>
-MDSPAN_INLINE_FUNCTION
-constexpr auto submdspan_extents(const extents<IndexType, Extents...> &src_exts,
-                                 SliceSpecifiers... slices) {
-
-  using ext_t = extents<IndexType, Extents...>;
-  return detail::extents_constructor<ext_t::rank(), ext_t>::next_extent(
-      src_exts, slices...);
-}
-} // namespace experimental
-} // namespace std
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/__p2630_bits/submdspan_mapping.hpp b/tests/generator_scripts/deps/mdspan/include/experimental/__p2630_bits/submdspan_mapping.hpp
deleted file mode 100644
index fe930e07f78b342ae493c387633a7282c3d7bb20..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/__p2630_bits/submdspan_mapping.hpp
+++ /dev/null
@@ -1,280 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-
-#include <array>
-#include <type_traits>
-#include <tuple>
-#include <utility> // index_sequence
-
-namespace std {
-namespace experimental {
-
-//******************************************
-// Return type of submdspan_mapping overloads
-//******************************************
-template <class Mapping> struct mapping_offset {
-  Mapping mapping;
-  size_t offset;
-};
-
-namespace detail {
-// constructs sub strides
-template <class SrcMapping, class... slice_strides, size_t... InvMapIdxs>
-MDSPAN_INLINE_FUNCTION
-constexpr auto
-construct_sub_strides(const SrcMapping &src_mapping,
-                      index_sequence<InvMapIdxs...>,
-                      const tuple<slice_strides...> &slices_stride_factor) {
-  using index_type = typename SrcMapping::index_type;
-  return array<typename SrcMapping::index_type, sizeof...(InvMapIdxs)>{
-      (static_cast<index_type>(src_mapping.stride(InvMapIdxs)) *
-       static_cast<index_type>(get<InvMapIdxs>(slices_stride_factor)))...};
-}
-} // namespace detail
-
-//**********************************
-// layout_left submdspan_mapping
-//*********************************
-namespace detail {
-
-// Figure out whether to preserve layout_left
-template <class IndexSequence, size_t SubRank, class... SliceSpecifiers>
-struct preserve_layout_left_mapping;
-
-template <class... SliceSpecifiers, size_t... Idx, size_t SubRank>
-struct preserve_layout_left_mapping<index_sequence<Idx...>, SubRank,
-                                    SliceSpecifiers...> {
-  constexpr static bool value =
-      // Preserve layout for rank 0
-      (SubRank == 0) ||
-      (
-          // Slice specifiers up to subrank need to be full_extent_t - except
-          // for the last one which could also be tuple but not a strided index
-          // range slice specifiers after subrank are integrals
-          ((Idx > SubRank - 1) || // these are only integral slice specifiers
-           (is_same_v<SliceSpecifiers, full_extent_t>) ||
-           ((Idx == SubRank - 1) &&
-            is_convertible_v<SliceSpecifiers, tuple<size_t, size_t>>)) &&
-          ...);
-};
-} // namespace detail
-
-// Suppress spurious warning with NVCC about no return statement.
-// This is a known issue in NVCC and NVC++
-// Depending on the CUDA and GCC version we need both the builtin
-// and the diagnostic push. I tried really hard to find something shorter
-// but no luck ...
-#if defined __NVCC__
-    #ifdef __NVCC_DIAG_PRAGMA_SUPPORT__
-        #pragma nv_diagnostic push
-        #pragma nv_diag_suppress = implicit_return_from_non_void_function
-    #else
-      #ifdef __CUDA_ARCH__
-        #pragma diagnostic push
-        #pragma diag_suppress implicit_return_from_non_void_function
-      #endif
-    #endif
-#elif defined __NVCOMPILER
-    #pragma    diagnostic push
-    #pragma    diag_suppress = implicit_return_from_non_void_function
-#endif
-// Actual submdspan mapping call
-template <class Extents, class... SliceSpecifiers>
-MDSPAN_INLINE_FUNCTION
-constexpr auto
-submdspan_mapping(const layout_left::mapping<Extents> &src_mapping,
-                  SliceSpecifiers... slices) {
-
-  // compute sub extents
-  using src_ext_t = Extents;
-  auto dst_ext = submdspan_extents(src_mapping.extents(), slices...);
-  using dst_ext_t = decltype(dst_ext);
-
-  // figure out sub layout type
-  constexpr bool preserve_layout = detail::preserve_layout_left_mapping<
-      decltype(make_index_sequence<src_ext_t::rank()>()), dst_ext_t::rank(),
-      SliceSpecifiers...>::value;
-  using dst_layout_t =
-      conditional_t<preserve_layout, layout_left, layout_stride>;
-  using dst_mapping_t = typename dst_layout_t::template mapping<dst_ext_t>;
-
-  if constexpr (is_same_v<dst_layout_t, layout_left>) {
-    // layout_left case
-    return mapping_offset<dst_mapping_t>{
-        dst_mapping_t(dst_ext),
-        static_cast<size_t>(src_mapping(detail::first_of(slices)...))};
-  } else {
-    // layout_stride case
-    auto inv_map = detail::inv_map_rank(
-      integral_constant<size_t,0>(),
-      index_sequence<>(),
-      slices...);
-    return mapping_offset<dst_mapping_t>{
-        dst_mapping_t(dst_ext, detail::construct_sub_strides(
-                                   src_mapping, inv_map,
-    // HIP needs deduction guides to have markups so we need to be explicit
-    #ifdef _MDSPAN_HAS_HIP
-                                   tuple<decltype(detail::stride_of(slices))...>{detail::stride_of(slices)...})),
-    #else
-                                   tuple{detail::stride_of(slices)...})),
-    #endif
-        static_cast<size_t>(src_mapping(detail::first_of(slices)...))};
-  }
-#if defined(__NVCC__) && !defined(__CUDA_ARCH__) && defined(__GNUC__)
-  __builtin_unreachable();
-#endif
-}
-#if defined __NVCC__
-    #ifdef __NVCC_DIAG_PRAGMA_SUPPORT__
-        #pragma nv_diagnostic pop
-    #else
-      #ifdef __CUDA_ARCH__
-        #pragma diagnostic pop
-      #endif
-    #endif
-#elif defined __NVCOMPILER
-    #pragma    diagnostic pop
-#endif
-
-//**********************************
-// layout_right submdspan_mapping
-//*********************************
-namespace detail {
-
-// Figure out whether to preserve layout_right
-template <class IndexSequence, size_t SubRank, class... SliceSpecifiers>
-struct preserve_layout_right_mapping;
-
-template <class... SliceSpecifiers, size_t... Idx, size_t SubRank>
-struct preserve_layout_right_mapping<index_sequence<Idx...>, SubRank,
-                                     SliceSpecifiers...> {
-  constexpr static size_t SrcRank = sizeof...(SliceSpecifiers);
-  constexpr static bool value =
-      // Preserve layout for rank 0
-      (SubRank == 0) ||
-      (
-          // The last subrank slice specifiers need to be full_extent_t - except
-          // for the srcrank-subrank one which could also be tuple but not a
-          // strided index range slice specifiers before srcrank-subrank are
-          // integrals
-          ((Idx <
-            SrcRank - SubRank) || // these are only integral slice specifiers
-           (is_same_v<SliceSpecifiers, full_extent_t>) ||
-           ((Idx == SrcRank - SubRank) &&
-            is_convertible_v<SliceSpecifiers, tuple<size_t, size_t>>)) &&
-          ...);
-};
-} // namespace detail
-
-// Suppress spurious warning with NVCC about no return statement.
-// This is a known issue in NVCC and NVC++
-// Depending on the CUDA and GCC version we need both the builtin
-// and the diagnostic push. I tried really hard to find something shorter
-// but no luck ...
-#if defined __NVCC__
-    #ifdef __NVCC_DIAG_PRAGMA_SUPPORT__
-        #pragma nv_diagnostic push
-        #pragma nv_diag_suppress = implicit_return_from_non_void_function
-    #else
-      #ifdef __CUDA_ARCH__
-        #pragma diagnostic push
-        #pragma diag_suppress implicit_return_from_non_void_function
-      #endif
-    #endif
-#elif defined __NVCOMPILER
-    #pragma    diagnostic push
-    #pragma    diag_suppress = implicit_return_from_non_void_function
-#endif
-template <class Extents, class... SliceSpecifiers>
-MDSPAN_INLINE_FUNCTION
-constexpr auto
-submdspan_mapping(const layout_right::mapping<Extents> &src_mapping,
-                  SliceSpecifiers... slices) {
-
-  // get sub extents
-  using src_ext_t = Extents;
-  auto dst_ext = submdspan_extents(src_mapping.extents(), slices...);
-  using dst_ext_t = decltype(dst_ext);
-
-  // determine new layout type
-  constexpr bool preserve_layout = detail::preserve_layout_right_mapping<
-      decltype(make_index_sequence<src_ext_t::rank()>()), dst_ext_t::rank(),
-      SliceSpecifiers...>::value;
-  using dst_layout_t =
-      conditional_t<preserve_layout, layout_right, layout_stride>;
-  using dst_mapping_t = typename dst_layout_t::template mapping<dst_ext_t>;
-
-  if constexpr (is_same_v<dst_layout_t, layout_right>) {
-    // layout_right case
-    return mapping_offset<dst_mapping_t>{
-        dst_mapping_t(dst_ext),
-        static_cast<size_t>(src_mapping(detail::first_of(slices)...))};
-  } else {
-    // layout_stride case
-    auto inv_map = detail::inv_map_rank(
-      integral_constant<size_t,0>(),
-      index_sequence<>(),
-      slices...);
-    return mapping_offset<dst_mapping_t>{
-        dst_mapping_t(dst_ext, detail::construct_sub_strides(
-                                   src_mapping, inv_map,
-    // HIP needs deduction guides to have markups so we need to be explicit
-    #ifdef _MDSPAN_HAS_HIP
-                                   tuple<decltype(detail::stride_of(slices))...>{detail::stride_of(slices)...})),
-    #else
-                                   tuple{detail::stride_of(slices)...})),
-    #endif
-        static_cast<size_t>(src_mapping(detail::first_of(slices)...))};
-  }
-#if defined(__NVCC__) && !defined(__CUDA_ARCH__) && defined(__GNUC__)
-  __builtin_unreachable();
-#endif
-}
-#if defined __NVCC__
-    #ifdef __NVCC_DIAG_PRAGMA_SUPPORT__
-        #pragma nv_diagnostic pop
-    #else
-      #ifdef __CUDA_ARCH__
-        #pragma diagnostic pop
-      #endif
-    #endif
-#elif defined __NVCOMPILER
-    #pragma    diagnostic pop
-#endif
-
-//**********************************
-// layout_stride submdspan_mapping
-//*********************************
-template <class Extents, class... SliceSpecifiers>
-MDSPAN_INLINE_FUNCTION
-constexpr auto
-submdspan_mapping(const layout_stride::mapping<Extents> &src_mapping,
-                  SliceSpecifiers... slices) {
-  auto dst_ext = submdspan_extents(src_mapping.extents(), slices...);
-  using dst_ext_t = decltype(dst_ext);
-  auto inv_map = detail::inv_map_rank(
-      integral_constant<size_t,0>(),
-      index_sequence<>(),
-      slices...);
-  using dst_mapping_t = typename layout_stride::template mapping<dst_ext_t>;
-  return mapping_offset<dst_mapping_t>{
-      dst_mapping_t(dst_ext, detail::construct_sub_strides(
-                                 src_mapping, inv_map,
-                                 tuple{detail::stride_of(slices)...})),
-      static_cast<size_t>(src_mapping(detail::first_of(slices)...))};
-}
-} // namespace experimental
-} // namespace std
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/mdarray b/tests/generator_scripts/deps/mdspan/include/experimental/mdarray
deleted file mode 100644
index d5c857066a3c75ef0fc54532027f988c2dafec45..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/mdarray
+++ /dev/null
@@ -1,21 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-
-#pragma once
-
-#include "mdspan"
-#include "__p1684_bits/mdarray.hpp"
-
diff --git a/tests/generator_scripts/deps/mdspan/include/experimental/mdspan b/tests/generator_scripts/deps/mdspan/include/experimental/mdspan
deleted file mode 100644
index 9a8d6778116c00dacba0c7b768933e40e49e82b3..0000000000000000000000000000000000000000
--- a/tests/generator_scripts/deps/mdspan/include/experimental/mdspan
+++ /dev/null
@@ -1,30 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                        Kokkos v. 4.0
-//       Copyright (2022) National Technology & Engineering
-//               Solutions of Sandia, LLC (NTESS).
-//
-// Under the terms of Contract DE-NA0003525 with NTESS,
-// the U.S. Government retains certain rights in this software.
-//
-// Part of Kokkos, under the Apache License v2.0 with LLVM Exceptions.
-// See https://kokkos.org/LICENSE for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//@HEADER
-
-#pragma once
-
-#include "__p0009_bits/default_accessor.hpp"
-#include "__p0009_bits/full_extent_t.hpp"
-#include "__p0009_bits/mdspan.hpp"
-#include "__p0009_bits/dynamic_extent.hpp"
-#include "__p0009_bits/extents.hpp"
-#include "__p0009_bits/layout_stride.hpp"
-#include "__p0009_bits/layout_left.hpp"
-#include "__p0009_bits/layout_right.hpp"
-#include "__p0009_bits/macros.hpp"
-#if MDSPAN_HAS_CXX_17
-#include "__p2630_bits/submdspan.hpp"
-#endif
diff --git a/tests/generator_scripts/test_generator_scripts.py b/tests/generator_scripts/test_generator_scripts.py
index dc875cb5d9a807ecb622a9918934fdf3c011b660..bba12af2374d9f0177b7ec76bc8777627da366fe 100644
--- a/tests/generator_scripts/test_generator_scripts.py
+++ b/tests/generator_scripts/test_generator_scripts.py
@@ -13,10 +13,42 @@ import warnings
 import subprocess
 
 THIS_DIR = pathlib.Path(__file__).parent
+
+DEPS_DIR = THIS_DIR / "deps"
+MDSPAN_QUAL_PATH = "mdspan-mdspan-0.6.0/include/"
+
+
 TEST_INDEX = THIS_DIR / "index.yaml"
 SOURCE_DIR = THIS_DIR / "source"
 EXPECTED_DIR = THIS_DIR / "expected"
-CXX_INCLUDE_FLAGS = ["-I", f"{THIS_DIR}/deps/mdspan/include"]
+CXX_INCLUDE_FLAGS = ["-I", f"{DEPS_DIR}/{MDSPAN_QUAL_PATH}"]
+
+
+def prepare_deps():
+    mdspan_archive_url = (
+        "https://github.com/kokkos/mdspan/archive/refs/tags/mdspan-0.6.0.zip"
+    )
+    mdspan_path = DEPS_DIR / MDSPAN_QUAL_PATH
+
+    import fasteners
+
+    with fasteners.InterProcessLock(THIS_DIR / ".get-deps.lock"):
+        if not mdspan_path.exists():
+            DEPS_DIR.mkdir(parents=True, exist_ok=True)
+            print("Downloading mdspan reference implementation...")
+
+            import requests
+            import tempfile
+            from zipfile import ZipFile
+
+            server_resp = requests.get(mdspan_archive_url)
+            with tempfile.TemporaryFile() as tmpfile:
+                tmpfile.write(server_resp.content)
+
+                with ZipFile(tmpfile) as archive:
+                    for name in archive.namelist():
+                        if name.startswith(MDSPAN_QUAL_PATH):
+                            archive.extract(name, DEPS_DIR)
 
 
 class GenScriptTest:
@@ -75,7 +107,9 @@ class GenScriptTest:
         cxx_compiler: str = compile_descr.get("cxx", "g++")
 
         skip_if_no_compiler: bool = compile_descr.get("skip-if-not-found", False)
-        cxx_options: list[str] = compile_descr.get("cxx-flags", ["--std=c++20", "-Wall", "-Werror"])
+        cxx_options: list[str] = compile_descr.get(
+            "cxx-flags", ["--std=c++20", "-Wall", "-Werror"]
+        )
         link_options: list[str] = compile_descr.get("link-flags", [])
 
         self._compile_cmd: list[str] | None
@@ -225,4 +259,5 @@ DISCOVERED_TESTS = discover()
 
 @pytest.mark.parametrize("test_descriptor", DISCOVERED_TESTS)
 def test_generator_script(test_descriptor: GenScriptTest, tmp_path):
+    prepare_deps()
     test_descriptor.run(tmp_path)