From 277253a1f5cdcc7e78758ed4cb06a8e36d73fe4a Mon Sep 17 00:00:00 2001 From: Emily Bourne Date: Mon, 22 Jan 2024 15:17:11 +0000 Subject: [PATCH] Synchronize DDC --- .gitlab-ci.yml | 2 +- docker/gyselalibxx_env/Dockerfile | 2 +- vendor/ddc/CMakeLists.txt | 2 +- vendor/ddc/docker/doxygen/Dockerfile | 2 +- vendor/ddc/docker/latest/Dockerfile | 2 +- vendor/ddc/docker/oldest/Dockerfile | 2 +- vendor/ddc/include/ddc/discrete_space.hpp | 6 ++ vendor/ddc/include/ddc/kernels/fft.hpp | 4 - .../ddc/include/ddc/misc/ginkgo_executors.hpp | 6 +- vendor/ddc/tests/CMakeLists.txt | 1 + vendor/ddc/tests/aligned_allocator.cpp | 14 ++- vendor/ddc/tests/chunk.cpp | 90 ++++++++++--------- vendor/ddc/tests/discrete_domain.cpp | 16 ++-- vendor/ddc/tests/discrete_element.cpp | 4 +- vendor/ddc/tests/discrete_space.cpp | 22 +++++ .../tests/discrete_space/discrete_space.cpp | 1 - vendor/ddc/tests/discrete_vector.cpp | 42 ++++----- vendor/ddc/tests/fft.cpp | 65 +++++++------- vendor/ddc/tests/fill.cpp | 7 +- vendor/ddc/tests/for_each.cpp | 25 +++--- .../ddc/tests/non_uniform_point_sampling.cpp | 30 ++++--- vendor/ddc/tests/rectilinear_domain.cpp | 2 +- vendor/ddc/tests/relocatable_device_code.cpp | 3 + ...relocatable_device_code_initialization.cpp | 1 + ...relocatable_device_code_initialization.hpp | 1 + vendor/ddc/tests/single_discretization.cpp | 6 +- vendor/ddc/tests/tagged_vector.cpp | 56 +++++------- vendor/ddc/tests/transform_reduce.cpp | 38 ++++---- vendor/ddc/tests/type_seq.cpp | 2 +- vendor/ddc/tests/uniform_point_sampling.cpp | 14 +-- 30 files changed, 251 insertions(+), 217 deletions(-) create mode 100644 vendor/ddc/tests/discrete_space.cpp diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1d8e4f3d9..8da3520ef 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -51,7 +51,7 @@ cmake_tests_Release_GPU: before_script: | . /data/gyselarunner/spack-0.20.0/share/spack/setup-env.sh spack load gcc@11 - spack env activate voicexx-env-omp-cuda + spack env activate gyselalibxx-env-omp-cuda script: | set -x export OMP_PROC_BIND=spread diff --git a/docker/gyselalibxx_env/Dockerfile b/docker/gyselalibxx_env/Dockerfile index 4d9caaae8..55da1893c 100644 --- a/docker/gyselalibxx_env/Dockerfile +++ b/docker/gyselalibxx_env/Dockerfile @@ -39,7 +39,7 @@ RUN chmod +x /bin/bash_run \ pdiplugin-set-value \ python3-pip \ libpdi-dev \ - && git clone -b v1.6.0 https://github.com/ginkgo-project/ginkgo.git \ + && git clone -b v1.7.0 https://github.com/ginkgo-project/ginkgo.git \ && cd ginkgo \ && cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -DGINKGO_BUILD_TESTS=OFF -DGINKGO_BUILD_EXAMPLES=OFF -DGINKGO_BUILD_BENCHMARKS=OFF \ && cmake --build build \ diff --git a/vendor/ddc/CMakeLists.txt b/vendor/ddc/CMakeLists.txt index 7734ccbdc..597de6227 100644 --- a/vendor/ddc/CMakeLists.txt +++ b/vendor/ddc/CMakeLists.txt @@ -237,7 +237,7 @@ endif() if("${BUILD_SPLINES_KERNEL}") # Ginkgo - find_package(Ginkgo 1.6.0 EXACT REQUIRED) + find_package(Ginkgo 1.7.0 EXACT REQUIRED) target_link_libraries(DDC INTERFACE Ginkgo::ginkgo) target_compile_definitions(DDC INTERFACE ginkgo_AVAIL) endif() diff --git a/vendor/ddc/docker/doxygen/Dockerfile b/vendor/ddc/docker/doxygen/Dockerfile index 7d9413d5d..db051060e 100644 --- a/vendor/ddc/docker/doxygen/Dockerfile +++ b/vendor/ddc/docker/doxygen/Dockerfile @@ -34,7 +34,7 @@ RUN chmod +x /bin/bash_run \ git \ graphviz \ texlive \ - && git clone -b v1.6.0 https://github.com/ginkgo-project/ginkgo.git \ + && git clone -b v1.7.0 https://github.com/ginkgo-project/ginkgo.git \ && cd ginkgo \ && cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -DGINKGO_BUILD_OMP=OFF -DGINKGO_BUILD_TESTS=OFF -DGINKGO_BUILD_EXAMPLES=OFF -DGINKGO_BUILD_BENCHMARKS=OFF \ && cmake --build build \ diff --git a/vendor/ddc/docker/latest/Dockerfile b/vendor/ddc/docker/latest/Dockerfile index c046f1d86..08d26435c 100644 --- a/vendor/ddc/docker/latest/Dockerfile +++ b/vendor/ddc/docker/latest/Dockerfile @@ -57,7 +57,7 @@ RUN chmod +x /bin/bash_run \ apt-get install -y --no-install-recommends \ rocm-hip-sdk \ ;; esac \ - && git clone -b v1.6.0 https://github.com/ginkgo-project/ginkgo.git \ + && git clone -b v1.7.0 https://github.com/ginkgo-project/ginkgo.git \ && cd ginkgo \ && case "${BACKEND}" in \ "cpu") \ diff --git a/vendor/ddc/docker/oldest/Dockerfile b/vendor/ddc/docker/oldest/Dockerfile index 5216e2ee2..58654dd4b 100644 --- a/vendor/ddc/docker/oldest/Dockerfile +++ b/vendor/ddc/docker/oldest/Dockerfile @@ -52,7 +52,7 @@ RUN chmod +x /bin/bash_run \ apt-get install -y --no-install-recommends \ rocm-hip-sdk \ ;; esac \ - && git clone -b v1.6.0 https://github.com/ginkgo-project/ginkgo.git \ + && git clone -b v1.7.0 https://github.com/ginkgo-project/ginkgo.git \ && cd ginkgo \ && case "${BACKEND}" in \ "cpu") \ diff --git a/vendor/ddc/include/ddc/discrete_space.hpp b/vendor/ddc/include/ddc/discrete_space.hpp index 9110fdd24..fb870c9d4 100644 --- a/vendor/ddc/include/ddc/discrete_space.hpp +++ b/vendor/ddc/include/ddc/discrete_space.hpp @@ -206,6 +206,12 @@ KOKKOS_FORCEINLINE_FUNCTION detail::ddim_impl_t const& discre } } +template +bool is_discrete_space_initialized() noexcept +{ + return detail::g_discrete_space_dual.has_value(); +} + template detail::ddim_impl_t const& host_discrete_space() { diff --git a/vendor/ddc/include/ddc/kernels/fft.hpp b/vendor/ddc/include/ddc/kernels/fft.hpp index 5199f2c4c..d55dbdb84 100644 --- a/vendor/ddc/include/ddc/kernels/fft.hpp +++ b/vendor/ddc/include/ddc/kernels/fft.hpp @@ -394,7 +394,6 @@ void core( fftw_execute(plan); fftw_destroy_plan(plan); } - // std::cout << "performed with fftw"; } #endif #if fftw_omp_AVAIL @@ -427,7 +426,6 @@ void core( fftw_execute(plan); fftw_destroy_plan(plan); } - // std::cout << "performed with fftw_omp"; } #endif #if cufft_AVAIL @@ -467,7 +465,6 @@ void core( reinterpret_cast::type*>(out_data)); if (cufft_rt != CUFFT_SUCCESS) throw std::runtime_error("cufftExec failed"); - // std::cout << "performed with cufft"; } #endif #if hipfft_AVAIL @@ -507,7 +504,6 @@ void core( reinterpret_cast::type*>(out_data)); if (hipfft_rt != HIPFFT_SUCCESS) throw std::runtime_error("hipfftExec failed"); - // std::cout << "performed with hipfft"; } #endif diff --git a/vendor/ddc/include/ddc/misc/ginkgo_executors.hpp b/vendor/ddc/include/ddc/misc/ginkgo_executors.hpp index c61f09f52..831eeb904 100644 --- a/vendor/ddc/include/ddc/misc/ginkgo_executors.hpp +++ b/vendor/ddc/include/ddc/misc/ginkgo_executors.hpp @@ -38,8 +38,7 @@ inline std::shared_ptr create_gko_exec() return gko::CudaExecutor:: create(exec_space.cuda_device(), create_default_host_executor(), - false, - gko::default_cuda_alloc_mode, + std::make_shared(), exec_space.cuda_stream()); } #endif @@ -49,8 +48,7 @@ inline std::shared_ptr create_gko_exec() return gko::HipExecutor:: create(exec_space.hip_device(), create_default_host_executor(), - false, - gko::default_hip_alloc_mode, + std::make_shared(), exec_space.hip_stream()); } #endif diff --git a/vendor/ddc/tests/CMakeLists.txt b/vendor/ddc/tests/CMakeLists.txt index be6fb2e72..5605553ea 100644 --- a/vendor/ddc/tests/CMakeLists.txt +++ b/vendor/ddc/tests/CMakeLists.txt @@ -22,6 +22,7 @@ add_executable(ddc_tests fill.cpp discrete_element.cpp discrete_vector.cpp + discrete_space.cpp ) target_compile_features(ddc_tests PUBLIC cxx_std_17) target_link_libraries(ddc_tests diff --git a/vendor/ddc/tests/aligned_allocator.cpp b/vendor/ddc/tests/aligned_allocator.cpp index 3306d4f30..579b8795d 100644 --- a/vendor/ddc/tests/aligned_allocator.cpp +++ b/vendor/ddc/tests/aligned_allocator.cpp @@ -1,4 +1,10 @@ // SPDX-License-Identifier: MIT + +#include +#include +#include +#include + #include #include @@ -73,16 +79,16 @@ TEST(AlignedAllocatorTest, RebindMoveAssignment) TEST(AlignedAllocatorTest, Comparison) { - constexpr A a1; - constexpr A a2; + A const a1; + A const a2; EXPECT_TRUE(a1 == a2); EXPECT_FALSE((a1 != a2)); } TEST(AlignedAllocatorTest, RebindComparison) { - constexpr B b; - constexpr A a(b); + B const b; + A const a(b); EXPECT_EQ(b, B(a)); EXPECT_EQ(a, A(b)); } diff --git a/vendor/ddc/tests/chunk.cpp b/vendor/ddc/tests/chunk.cpp index 978d9ab28..a10370622 100644 --- a/vendor/ddc/tests/chunk.cpp +++ b/vendor/ddc/tests/chunk.cpp @@ -1,6 +1,8 @@ // SPDX-License-Identifier: MIT #include +#include +#include #include @@ -69,7 +71,7 @@ static DDomX constexpr dom_x(lbound_x, nelems_x); static DElemY constexpr lbound_y(4); static DVectY constexpr nelems_y(12); -static DElemXY constexpr lbound_x_y {lbound_x, lbound_y}; +static DElemXY constexpr lbound_x_y(lbound_x, lbound_y); static DVectXY constexpr nelems_x_y(nelems_x, nelems_y); static DDomXY constexpr dom_x_y(lbound_x_y, nelems_x_y); @@ -84,7 +86,7 @@ TEST(Chunk0DTest, LayoutType) TEST(Chunk1DTest, LayoutType) { - ChunkX chunk(dom_x); + ChunkX const chunk(dom_x); EXPECT_TRUE((std::is_same_v< std::decay_t::layout_type, @@ -98,7 +100,7 @@ TEST(Chunk1DTest, LayoutType) TEST(Chunk0DTest, ChunkSpanConversionConstructor) { - double constexpr factor = 1.391; + double const factor = 1.391; Chunk0D chunk(dom_0d); chunk() = factor; @@ -109,13 +111,13 @@ TEST(Chunk0DTest, ChunkSpanConversionConstructor) TEST(Chunk1DTest, ChunkSpanConversionConstructor) { - double constexpr factor = 1.391; + double const factor = 1.391; ChunkX chunk(dom_x); for (auto&& ix : chunk.domain()) { chunk(ix) = factor * ix.uid(); } - ChunkX chunk2(chunk.span_view()); + ChunkX const chunk2(chunk.span_view()); EXPECT_EQ(chunk2.domain(), dom_x); for (auto&& ix : chunk2.domain()) { EXPECT_DOUBLE_EQ(factor * ix.uid(), chunk2(ix)); @@ -124,24 +126,24 @@ TEST(Chunk1DTest, ChunkSpanConversionConstructor) TEST(Chunk0DTest, MoveConstructor) { - double constexpr factor = 1.391; + double const factor = 1.391; Chunk0D chunk(dom_0d); chunk() = factor; - Chunk0D chunk2(std::move(chunk)); + Chunk0D const chunk2(std::move(chunk)); EXPECT_EQ(chunk2.domain(), dom_0d); EXPECT_DOUBLE_EQ(factor, chunk2()); } TEST(Chunk1DTest, MoveConstructor) { - double constexpr factor = 1.391; + double const factor = 1.391; ChunkX chunk(dom_x); for (auto&& ix : chunk.domain()) { chunk(ix) = factor * ix.uid(); } - ChunkX chunk2(std::move(chunk)); + ChunkX const chunk2(std::move(chunk)); EXPECT_EQ(chunk2.domain(), dom_x); for (auto&& ix : chunk2.domain()) { // we expect exact equality, not EXPECT_DOUBLE_EQ: this is the same ref twice @@ -151,7 +153,7 @@ TEST(Chunk1DTest, MoveConstructor) TEST(Chunk0DTest, MoveAssignment) { - double constexpr factor = 1.976; + double const factor = 1.976; Chunk0D chunk(dom_0d); chunk() = factor; @@ -163,7 +165,7 @@ TEST(Chunk0DTest, MoveAssignment) TEST(Chunk1DTest, MoveAssignment) { - double constexpr factor = 1.976; + double const factor = 1.976; ChunkX chunk(dom_x); for (auto&& ix : chunk.domain()) { chunk(ix) = factor * ix.uid(); @@ -180,11 +182,11 @@ TEST(Chunk1DTest, MoveAssignment) TEST(Chunk0DTest, Swap) { - double constexpr factor = 1.976; + double const factor = 1.976; Chunk0D chunk(dom_0d); chunk() = factor; - DDom0D empty_domain(lbound_0d, DVect0D()); + DDom0D const empty_domain(lbound_0d, DVect0D()); Chunk0D chunk2(empty_domain); std::swap(chunk2, chunk); @@ -195,13 +197,13 @@ TEST(Chunk0DTest, Swap) TEST(Chunk1DTest, Swap) { - double constexpr factor = 1.976; + double const factor = 1.976; ChunkX chunk(dom_x); for (auto&& ix : chunk.domain()) { chunk(ix) = factor * ix.uid(); } - DDomX empty_domain(lbound_x, DVectX(0)); + DDomX const empty_domain(lbound_x, DVectX(0)); ChunkX chunk2(empty_domain); std::swap(chunk2, chunk); @@ -217,7 +219,7 @@ TEST(Chunk1DTest, Swap) TEST(Chunk1DTest, AccessConst) { - double constexpr factor = 1.012; + double const factor = 1.012; ChunkX chunk(dom_x); ChunkX const& chunk_cref = chunk; for (auto&& ix : chunk.domain()) { @@ -229,7 +231,7 @@ TEST(Chunk1DTest, AccessConst) TEST(Chunk1DTest, Access) { - double constexpr factor = 1.012; + double const factor = 1.012; ChunkX chunk(dom_x); for (auto&& ix : chunk.domain()) { chunk(ix) = factor * ix.uid(); @@ -240,7 +242,7 @@ TEST(Chunk1DTest, Access) TEST(Chunk1DTest, SpanCview) { - double constexpr factor = 1.567; + double const factor = 1.567; ChunkX chunk(dom_x); for (auto&& ix : chunk.domain()) { chunk(ix) = factor * ix.uid(); @@ -251,7 +253,7 @@ TEST(Chunk1DTest, SpanCview) TEST(Chunk1DTest, ViewConst) { - double constexpr factor = 1.802; + double const factor = 1.802; ChunkX chunk(dom_x); ChunkX const& chunk_cref = chunk; for (auto&& ix : chunk.domain()) { @@ -263,7 +265,7 @@ TEST(Chunk1DTest, ViewConst) TEST(Chunk1DTest, View) { - double constexpr factor = 1.259; + double const factor = 1.259; ChunkX chunk(dom_x); for (auto&& ix : chunk.domain()) { chunk.span_view()(ix) = factor * ix.uid(); @@ -293,49 +295,49 @@ TEST(Chunk1DTest, Label) TEST(Chunk1DTest, Rank) { - ChunkX chunk(dom_x); + ChunkX const chunk(dom_x); EXPECT_EQ(ChunkX::rank(), 1); } TEST(Chunk1DTest, RankDynamic) { - ChunkX chunk(dom_x); + ChunkX const chunk(dom_x); EXPECT_EQ(ChunkX::rank_dynamic(), 1); } TEST(Chunk1DTest, Extents) { - ChunkX chunk(dom_x); + ChunkX const chunk(dom_x); EXPECT_EQ(chunk.extents(), nelems_x); } TEST(Chunk1DTest, Extent) { - ChunkX chunk(dom_x); + ChunkX const chunk(dom_x); EXPECT_EQ(chunk.extent(), nelems_x.value()); } TEST(Chunk1DTest, Size) { - ChunkX chunk(dom_x); + ChunkX const chunk(dom_x); EXPECT_EQ(chunk.size(), nelems_x.value()); } TEST(Chunk1DTest, IsAlwaysUnique) { - ChunkX chunk(dom_x); + ChunkX const chunk(dom_x); EXPECT_TRUE(chunk.is_always_unique()); } TEST(Chunk1DTest, IsAlwaysContiguous) { - ChunkX chunk(dom_x); + ChunkX const chunk(dom_x); EXPECT_TRUE(chunk.is_always_exhaustive()); } TEST(Chunk1DTest, is_always_strided) { - ChunkX chunk(dom_x); + ChunkX const chunk(dom_x); EXPECT_TRUE(chunk.is_always_strided()); } @@ -343,19 +345,19 @@ TEST(Chunk1DTest, is_always_strided) TEST(Chunk1DTest, IsUnique) { - ChunkX chunk(dom_x); + ChunkX const chunk(dom_x); EXPECT_TRUE(chunk.is_unique()); } TEST(Chunk1DTest, IsContiguous) { - ChunkX chunk(dom_x); + ChunkX const chunk(dom_x); EXPECT_TRUE(chunk.is_exhaustive()); } TEST(Chunk1DTest, IsStrided) { - ChunkX chunk(dom_x); + ChunkX const chunk(dom_x); EXPECT_TRUE(chunk.is_strided()); } @@ -365,13 +367,13 @@ TEST(Chunk1DTest, IsStrided) TEST(Chunk1DTest, Domain) { - ChunkX chunk(dom_x); + ChunkX const chunk(dom_x); EXPECT_EQ(dom_x, chunk.domain()); } TEST(Chunk1DTest, DomainX) { - ChunkX chunk(dom_x); + ChunkX const chunk(dom_x); EXPECT_EQ(dom_x, chunk.domain()); } @@ -383,7 +385,7 @@ TEST(Chunk1DTest, DomainX) TEST(Chunk1DTest, GetDomainX) { - ChunkX chunk(dom_x); + ChunkX const chunk(dom_x); EXPECT_EQ(dom_x, ddc::get_domain(chunk)); } @@ -438,7 +440,7 @@ TEST(Chunk2DTest, Cview) chunk(ix, iy) = 1. * ix.uid() + .001 * iy.uid(); } } - auto cview = chunk.span_cview(); + auto const cview = chunk.span_cview(); for (auto&& ix : chunk.domain()) { for (auto&& iy : chunk.domain()) { // we expect complete equality, not EXPECT_DOUBLE_EQ: these are copy @@ -449,7 +451,7 @@ TEST(Chunk2DTest, Cview) TEST(Chunk2DTest, SliceCoordX) { - DElemX constexpr slice_x_val = DElemX(lbound_x + 1); + DElemX const slice_x_val(lbound_x + 1); ChunkXY chunk(dom_x_y); ChunkXY const& chunk_cref = chunk; @@ -472,7 +474,7 @@ TEST(Chunk2DTest, SliceCoordX) TEST(Chunk2DTest, SliceCoordY) { - DElemY constexpr slice_y_val = DElemY(lbound_y + 1); + DElemY const slice_y_val(lbound_y + 1); ChunkXY chunk(dom_x_y); ChunkXY const& chunk_cref = chunk; @@ -495,7 +497,7 @@ TEST(Chunk2DTest, SliceCoordY) TEST(Chunk2DTest, SliceDomainX) { - DDomX constexpr subdomain_x = DDomX(DElemX(lbound_x + 1), DVectX(nelems_x - 2)); + DDomX const subdomain_x(lbound_x + 1, nelems_x - 2); ChunkXY chunk(dom_x_y); ChunkXY const& chunk_cref = chunk; @@ -522,9 +524,9 @@ TEST(Chunk2DTest, SliceDomainX) TEST(Chunk2DTest, SliceDomainXTooearly) { - [[maybe_unused]] DDomX constexpr subdomain_x = DDomX(DElemX(lbound_x - 1), nelems_x); + [[maybe_unused]] DDomX const subdomain_x(lbound_x - 1, nelems_x); - ChunkXY chunk(dom_x_y); + ChunkXY const chunk(dom_x_y); #ifndef NDEBUG // The assertion is only checked if NDEBUG isn't defined // the error message is checked with clang & gcc only EXPECT_DEATH( @@ -535,9 +537,9 @@ TEST(Chunk2DTest, SliceDomainXTooearly) TEST(Chunk2DTest, SliceDomainXToolate) { - [[maybe_unused]] DDomX constexpr subdomain_x = DDomX(lbound_x, DVectX(nelems_x + 1)); + [[maybe_unused]] DDomX const subdomain_x(lbound_x, nelems_x + 1); - ChunkXY chunk(dom_x_y); + ChunkXY const chunk(dom_x_y); #ifndef NDEBUG // The assertion is only checked if NDEBUG isn't defined // the error message is checked with clang & gcc only EXPECT_DEATH( @@ -548,7 +550,7 @@ TEST(Chunk2DTest, SliceDomainXToolate) TEST(Chunk2DTest, SliceDomainY) { - DDomY constexpr subdomain_y = DDomY(DElemY(lbound_y + 1), DVectY(nelems_y - 2)); + DDomY const subdomain_y(lbound_y + 1, nelems_y - 2); ChunkXY chunk(dom_x_y); ChunkXY const& chunk_cref = chunk; @@ -599,7 +601,7 @@ TEST(Chunk2DTest, DeepcopyReordered) } } ChunkYX chunk2(ddc::select(chunk.domain())); - ddc::ChunkSpan + ddc::ChunkSpan const chunk2_view(chunk2.data_handle(), chunk.domain()); ddc::deepcopy(chunk2_view, chunk); for (auto&& ix : chunk.domain()) { diff --git a/vendor/ddc/tests/discrete_domain.cpp b/vendor/ddc/tests/discrete_domain.cpp index 3c6ace679..406a68067 100644 --- a/vendor/ddc/tests/discrete_domain.cpp +++ b/vendor/ddc/tests/discrete_domain.cpp @@ -1,6 +1,4 @@ // SPDX-License-Identifier: MIT -#include -#include #include @@ -74,13 +72,13 @@ static DVectXZ constexpr nelems_x_z(nelems_x, nelems_z); TEST(ProductMDomainTest, Constructor) { - DDomXY const dom_x_y = DDomXY(lbound_x_y, nelems_x_y); + DDomXY const dom_x_y(lbound_x_y, nelems_x_y); EXPECT_EQ(dom_x_y.extents(), nelems_x_y); EXPECT_EQ(dom_x_y.front(), lbound_x_y); EXPECT_EQ(dom_x_y.back(), ubound_x_y); EXPECT_EQ(dom_x_y.size(), nelems_x.value() * nelems_y.value()); - DDomX const dom_x = DDomX(lbound_x, nelems_x); + DDomX const dom_x(lbound_x, nelems_x); EXPECT_EQ(dom_x.size(), nelems_x); EXPECT_EQ(dom_x.empty(), false); EXPECT_EQ(dom_x[0], lbound_x); @@ -112,7 +110,7 @@ TEST(ProductMDomainTest, EmptyDomain) TEST(ProductMDomainTest, Subdomain) { - DDomXY const dom_x_y = DDomXY(lbound_x_y, nelems_x_y); + DDomXY const dom_x_y(lbound_x_y, nelems_x_y); ddc::DiscreteElement const lbound_subdomain_x(lbound_x + 1); ddc::DiscreteVector const npoints_subdomain_x(nelems_x - 2); DDomX const subdomain_x(lbound_subdomain_x, npoints_subdomain_x); @@ -125,7 +123,7 @@ TEST(ProductMDomainTest, Subdomain) TEST(ProductMDomainTest, RangeFor) { - DDomX const dom = DDomX(lbound_x, nelems_x); + DDomX const dom(lbound_x, nelems_x); DElemX ii = lbound_x; for (DElemX ix : dom) { EXPECT_LE(lbound_x, ix); @@ -153,9 +151,9 @@ TEST(ProductMDomainTest, Diff) TEST(ProductMDomainTest, Replace) { - DDomXY const dom_x_y = DDomXY(lbound_x_y, nelems_x_y); - DDomZ const dom_z = DDomZ(lbound_z, nelems_z); - DDomXZ const dom_x_z = DDomXZ(lbound_x_z, nelems_x_z); + DDomXY const dom_x_y(lbound_x_y, nelems_x_y); + DDomZ const dom_z(lbound_z, nelems_z); + DDomXZ const dom_x_z(lbound_x_z, nelems_x_z); auto const subdomain = ddc::replace_dim_of(dom_x_y, dom_z); EXPECT_EQ(subdomain, dom_x_z); } diff --git a/vendor/ddc/tests/discrete_element.cpp b/vendor/ddc/tests/discrete_element.cpp index 37e7044cf..3bc7f289b 100644 --- a/vendor/ddc/tests/discrete_element.cpp +++ b/vendor/ddc/tests/discrete_element.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -#include -#include + +#include #include diff --git a/vendor/ddc/tests/discrete_space.cpp b/vendor/ddc/tests/discrete_space.cpp new file mode 100644 index 000000000..1d38f40bf --- /dev/null +++ b/vendor/ddc/tests/discrete_space.cpp @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: MIT + +#include + +#include + +namespace { + +struct DimX; +using DDimX = ddc::UniformPointSampling; + +} // namespace + +TEST(DiscreteSpace, IsDiscreteSpaceInitialized) +{ + EXPECT_FALSE(ddc::is_discrete_space_initialized()); + ddc::init_discrete_space(DDimX:: + init(ddc::Coordinate(0), + ddc::Coordinate(1), + ddc::DiscreteVector(2))); + EXPECT_TRUE(ddc::is_discrete_space_initialized()); +} diff --git a/vendor/ddc/tests/discrete_space/discrete_space.cpp b/vendor/ddc/tests/discrete_space/discrete_space.cpp index a30e4c5b9..323932e97 100644 --- a/vendor/ddc/tests/discrete_space/discrete_space.cpp +++ b/vendor/ddc/tests/discrete_space/discrete_space.cpp @@ -13,7 +13,6 @@ void do_not_optimize_away_discrete_space_tests() {} TEST(DiscreteSpace, Initialization) { - // ddc::init_discrete_space(std::vector>()); ddc::init_discrete_space(DDimX:: init(ddc::Coordinate(0), ddc::Coordinate(1), diff --git a/vendor/ddc/tests/discrete_vector.cpp b/vendor/ddc/tests/discrete_vector.cpp index b3ec02e76..2be055ee2 100644 --- a/vendor/ddc/tests/discrete_vector.cpp +++ b/vendor/ddc/tests/discrete_vector.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -#include -#include + +#include #include @@ -45,19 +45,19 @@ TEST(DiscreteVectorTest, ExternalBinaryOperatorPlus) std::size_t const dv_x = 7; std::size_t const dv_y = -2; std::size_t const dv_z = 15; - DVectXYZ dxyz(dv_x, dv_y, dv_z); + DVectXYZ const dxyz(dv_x, dv_y, dv_z); std::size_t const dv2_x = -4; std::size_t const dv2_y = 22; std::size_t const dv2_z = 8; - DVectX dx(dv2_x); - DVectXZ dxz(dv2_x, dv2_z); - DVectXYZ dxyz2(dv2_x, dv2_y, dv2_z); + DVectX const dx(dv2_x); + DVectXZ const dxz(dv2_x, dv2_z); + DVectXYZ const dxyz2(dv2_x, dv2_y, dv2_z); - DVectXYZ result1(dxyz + dx); - DVectXYZ result2(dx + dxyz); - DVectXYZ result3(dxyz + dxz); - DVectXYZ result4(dxz + dxyz); - DVectXYZ result5(dxyz + dxyz2); + DVectXYZ const result1(dxyz + dx); + DVectXYZ const result2(dx + dxyz); + DVectXYZ const result3(dxyz + dxz); + DVectXYZ const result4(dxz + dxyz); + DVectXYZ const result5(dxyz + dxyz2); EXPECT_EQ(ddc::get(result1), dv_x + dv2_x); EXPECT_EQ(ddc::get(result1), dv_y); @@ -85,19 +85,19 @@ TEST(DiscreteVectorTest, ExternalBinaryOperatorMinus) std::size_t const dv_x = 7; std::size_t const dv_y = -2; std::size_t const dv_z = 15; - DVectXYZ dxyz(dv_x, dv_y, dv_z); + DVectXYZ const dxyz(dv_x, dv_y, dv_z); std::size_t const dv2_x = -4; std::size_t const dv2_y = 22; std::size_t const dv2_z = 8; - DVectX dx(dv2_x); - DVectXZ dxz(dv2_x, dv2_z); - DVectXYZ dxyz2(dv2_x, dv2_y, dv2_z); - - DVectXYZ result1(dxyz - dx); - DVectXYZ result2(dx - dxyz); - DVectXYZ result3(dxyz - dxz); - DVectXYZ result4(dxz - dxyz); - DVectXYZ result5(dxyz - dxyz2); + DVectX const dx(dv2_x); + DVectXZ const dxz(dv2_x, dv2_z); + DVectXYZ const dxyz2(dv2_x, dv2_y, dv2_z); + + DVectXYZ const result1(dxyz - dx); + DVectXYZ const result2(dx - dxyz); + DVectXYZ const result3(dxyz - dxz); + DVectXYZ const result4(dxz - dxyz); + DVectXYZ const result5(dxyz - dxyz2); EXPECT_EQ(ddc::get(result1), dv_x - dv2_x); EXPECT_EQ(ddc::get(result1), dv_y); diff --git a/vendor/ddc/tests/fft.cpp b/vendor/ddc/tests/fft.cpp index bd978f9eb..358439f1f 100644 --- a/vendor/ddc/tests/fft.cpp +++ b/vendor/ddc/tests/fft.cpp @@ -1,5 +1,8 @@ // SPDX-License-Identifier: MIT +#include +#include + #include #include @@ -25,12 +28,12 @@ using DFDim = ddc::PeriodicSampling; template static void test_fft() { - const ExecSpace exec_space = ExecSpace(); - constexpr bool full_fft + ExecSpace const exec_space; + bool const full_fft = ddc::detail::fft::is_complex_v && ddc::detail::fft::is_complex_v; - const double a = -10; - const double b = 10; - const std::size_t Nx = 64; // Optimal value is (b-a)^2/(2*pi) + double const a = -10; + double const b = 10; + std::size_t const Nx = 64; // Optimal value is (b-a)^2/(2*pi) DDom...> const x_mesh( ddc::init_discrete_space(DDim:: @@ -40,8 +43,8 @@ static void test_fft() ddc::init_fourier_space(x_mesh); DDom>...> const k_mesh = ddc::FourierMesh(x_mesh, full_fft); - ddc::Chunk _f(x_mesh, ddc::KokkosAllocator()); - ddc::ChunkSpan f = _f.span_view(); + ddc::Chunk f_alloc(x_mesh, ddc::KokkosAllocator()); + ddc::ChunkSpan const f = f_alloc.span_view(); ddc::for_each( ddc::policies::policy(exec_space), f.domain(), @@ -51,33 +54,33 @@ static void test_fft() f(e) = Kokkos::exp(-xn2 / 2); }); ddc::Chunk f_bis_alloc(f.domain(), ddc::KokkosAllocator()); - ddc::ChunkSpan f_bis = f_bis_alloc.span_view(); + ddc::ChunkSpan const f_bis = f_bis_alloc.span_view(); ddc::deepcopy(f_bis, f); ddc::Chunk Ff_alloc(k_mesh, ddc::KokkosAllocator()); - ddc::ChunkSpan Ff = Ff_alloc.span_view(); + ddc::ChunkSpan const Ff = Ff_alloc.span_view(); ddc::fft(exec_space, Ff, f_bis, {ddc::FFT_Normalization::FULL}); Kokkos::fence(); // deepcopy of Ff because FFT C2R overwrites the input ddc::Chunk Ff_bis_alloc(Ff.domain(), ddc::KokkosAllocator()); - ddc::ChunkSpan Ff_bis = Ff_bis_alloc.span_view(); + ddc::ChunkSpan const Ff_bis = Ff_bis_alloc.span_view(); ddc::deepcopy(Ff_bis, Ff); ddc::Chunk FFf_alloc(f.domain(), ddc::KokkosAllocator()); - ddc::ChunkSpan FFf = FFf_alloc.span_view(); + ddc::ChunkSpan const FFf = FFf_alloc.span_view(); ddc::ifft(exec_space, FFf, Ff_bis, {ddc::FFT_Normalization::FULL}); ddc::Chunk f_host_alloc(f.domain(), ddc::HostAllocator()); - ddc::ChunkSpan f_host = f_host_alloc.span_view(); + ddc::ChunkSpan const f_host = f_host_alloc.span_view(); ddc::deepcopy(f_host, f); ddc::Chunk Ff_host_alloc(Ff.domain(), ddc::HostAllocator()); - ddc::ChunkSpan Ff_host = Ff_host_alloc.span_view(); + ddc::ChunkSpan const Ff_host = Ff_host_alloc.span_view(); ddc::deepcopy(Ff_host, Ff); ddc::Chunk FFf_host_alloc(FFf.domain(), ddc::HostAllocator()); - ddc::ChunkSpan FFf_host = FFf_host_alloc.span_view(); + ddc::ChunkSpan const FFf_host = FFf_host_alloc.span_view(); ddc::deepcopy(FFf_host, FFf); auto const pow2 = KOKKOS_LAMBDA(double x) @@ -85,7 +88,7 @@ static void test_fft() return x * x; }; - double criterion = Kokkos::sqrt(ddc::transform_reduce( + double const criterion = Kokkos::sqrt(ddc::transform_reduce( Ff_host.domain(), 0., ddc::reducer::sum(), @@ -98,7 +101,7 @@ static void test_fft() return pow2(diff) / denom; })); - double criterion2 = Kokkos::sqrt(ddc::transform_reduce( + double const criterion2 = Kokkos::sqrt(ddc::transform_reduce( FFf_host.domain(), 0., ddc::reducer::sum(), @@ -116,8 +119,8 @@ static void test_fft() template static void test_fft_norm(ddc::FFT_Normalization const norm) { - const ExecSpace exec_space = ExecSpace(); - constexpr bool full_fft + ExecSpace const exec_space; + bool const full_fft = ddc::detail::fft::is_complex_v && ddc::detail::fft::is_complex_v; DDom> const x_mesh = ddc::init_discrete_space(DDim:: @@ -128,29 +131,25 @@ static void test_fft_norm(ddc::FFT_Normalization const norm) DDom>> const k_mesh = ddc::FourierMesh(x_mesh, full_fft); ddc::Chunk f_alloc = ddc::Chunk(x_mesh, ddc::KokkosAllocator()); - ddc::ChunkSpan f = f_alloc.span_view(); - ddc::for_each( - ddc::policies::policy(exec_space), - f.domain(), - KOKKOS_LAMBDA(DElem> const e) { f(e) = static_cast(1); }); + ddc::ChunkSpan const f = f_alloc.span_view(); + ddc::fill(f, Tin(1)); - - ddc::Chunk f_bis_alloc = ddc::Chunk(f.domain(), ddc::KokkosAllocator()); - ddc::ChunkSpan f_bis = f_bis_alloc.span_view(); + ddc::Chunk f_bis_alloc(f.domain(), ddc::KokkosAllocator()); + ddc::ChunkSpan const f_bis = f_bis_alloc.span_view(); ddc::deepcopy(f_bis, f); - ddc::Chunk Ff_alloc = ddc::Chunk(k_mesh, ddc::KokkosAllocator()); - ddc::ChunkSpan Ff = Ff_alloc.span_view(); + ddc::Chunk Ff_alloc(k_mesh, ddc::KokkosAllocator()); + ddc::ChunkSpan const Ff = Ff_alloc.span_view(); ddc::fft(exec_space, Ff, f_bis, {norm}); Kokkos::fence(); // deepcopy of Ff because FFT C2R overwrites the input - ddc::Chunk Ff_bis_alloc = ddc::Chunk(Ff.domain(), ddc::KokkosAllocator()); - ddc::ChunkSpan Ff_bis = Ff_bis_alloc.span_view(); + ddc::Chunk Ff_bis_alloc(Ff.domain(), ddc::KokkosAllocator()); + ddc::ChunkSpan const Ff_bis = Ff_bis_alloc.span_view(); ddc::deepcopy(Ff_bis, Ff); - ddc::Chunk FFf_alloc = ddc::Chunk(x_mesh, ddc::KokkosAllocator()); - ddc::ChunkSpan FFf = FFf_alloc.span_view(); + ddc::Chunk FFf_alloc(x_mesh, ddc::KokkosAllocator()); + ddc::ChunkSpan const FFf = FFf_alloc.span_view(); ddc::ifft(exec_space, FFf, Ff_bis, {norm}); double const f_sum = ddc::transform_reduce(f.domain(), 0., ddc::reducer::sum(), f); @@ -180,7 +179,7 @@ static void test_fft_norm(ddc::FFT_Normalization const norm) break; } - double epsilon = 1e-6; + double const epsilon = 1e-6; EXPECT_NEAR(Kokkos::abs(Ff(Ff.domain().front())), Ff0_expected, epsilon); EXPECT_NEAR(FFf(FFf.domain().front()), FFf_expected, epsilon); EXPECT_NEAR(FFf(FFf.domain().back()), FFf_expected, epsilon); diff --git a/vendor/ddc/tests/fill.cpp b/vendor/ddc/tests/fill.cpp index 5618486c6..65f9bd685 100644 --- a/vendor/ddc/tests/fill.cpp +++ b/vendor/ddc/tests/fill.cpp @@ -1,5 +1,8 @@ // SPDX-License-Identifier: MIT +#include +#include + #include #include @@ -35,7 +38,7 @@ TEST(Fill, OneDimension) { DDomX const dom(lbound_x, nelems_x); std::vector storage(dom.size(), 0); - ddc::ChunkSpan view(storage.data(), dom); + ddc::ChunkSpan const view(storage.data(), dom); ddc::fill(view, 1); EXPECT_EQ(std::count(storage.begin(), storage.end(), 1), dom.size()); } @@ -44,7 +47,7 @@ TEST(Fill, TwoDimensions) { DDomXY const dom(lbound_x_y, nelems_x_y); std::vector storage(dom.size(), 0); - ddc::ChunkSpan view(storage.data(), dom); + ddc::ChunkSpan const view(storage.data(), dom); ddc::fill(view, 1); EXPECT_EQ(std::count(storage.begin(), storage.end(), 1), dom.size()); } diff --git a/vendor/ddc/tests/for_each.cpp b/vendor/ddc/tests/for_each.cpp index fa27c5830..0f9ef1fe4 100644 --- a/vendor/ddc/tests/for_each.cpp +++ b/vendor/ddc/tests/for_each.cpp @@ -1,5 +1,10 @@ // SPDX-License-Identifier: MIT +#include +#include +#include +#include + #include #include @@ -39,7 +44,7 @@ TEST(ForEachSerialHost, Empty) { DDomX const dom(lbound_x, DVectX(0)); std::vector storage(dom.size(), 0); - ddc::ChunkSpan view(storage.data(), dom); + ddc::ChunkSpan const view(storage.data(), dom); ddc::for_each(ddc::policies::serial_host, dom, [=](DElemX const ix) { view(ix) += 1; }); EXPECT_EQ(std::count(storage.begin(), storage.end(), 1), dom.size()) << std::count(storage.begin(), storage.end(), 1) << std::endl; @@ -49,7 +54,7 @@ TEST(ForEachSerialHost, ZeroDimension) { DDom0D const dom; int storage = 0; - ddc::ChunkSpan view(&storage, dom); + ddc::ChunkSpan const view(&storage, dom); ddc::for_each(ddc::policies::serial_host, dom, [=](DElem0D const ii) { view(ii) += 1; }); EXPECT_EQ(storage, 1) << storage << std::endl; } @@ -58,7 +63,7 @@ TEST(ForEachSerialHost, OneDimension) { DDomX const dom(lbound_x, nelems_x); std::vector storage(dom.size(), 0); - ddc::ChunkSpan view(storage.data(), dom); + ddc::ChunkSpan const view(storage.data(), dom); ddc::for_each(ddc::policies::serial_host, dom, [=](DElemX const ix) { view(ix) += 1; }); EXPECT_EQ(std::count(storage.begin(), storage.end(), 1), dom.size()); } @@ -67,7 +72,7 @@ TEST(ForEachSerialHost, TwoDimensions) { DDomXY const dom(lbound_x_y, nelems_x_y); std::vector storage(dom.size(), 0); - ddc::ChunkSpan view(storage.data(), dom); + ddc::ChunkSpan const view(storage.data(), dom); ddc::for_each(ddc::policies::serial_host, dom, [=](DElemXY const ixy) { view(ixy) += 1; }); EXPECT_EQ(std::count(storage.begin(), storage.end(), 1), dom.size()); } @@ -76,7 +81,7 @@ TEST(ForEachParallelHost, ZeroDimension) { DDom0D const dom; std::vector storage(dom.size(), 0); - ddc::ChunkSpan view(storage.data(), dom); + ddc::ChunkSpan const view(storage.data(), dom); ddc::for_each(ddc::policies::parallel_host, dom, [=](DElem0D const i) { view(i) += 1; }); EXPECT_EQ(std::count(storage.begin(), storage.end(), 1), dom.size()); } @@ -85,7 +90,7 @@ TEST(ForEachParallelHost, OneDimension) { DDomX const dom(lbound_x, nelems_x); std::vector storage(dom.size(), 0); - ddc::ChunkSpan view(storage.data(), dom); + ddc::ChunkSpan const view(storage.data(), dom); ddc::for_each(ddc::policies::parallel_host, dom, [=](DElemX const ix) { view(ix) += 1; }); EXPECT_EQ(std::count(storage.begin(), storage.end(), 1), dom.size()); } @@ -94,7 +99,7 @@ TEST(ForEachParallelHost, TwoDimensions) { DDomXY const dom(lbound_x_y, nelems_x_y); std::vector storage(dom.size(), 0); - ddc::ChunkSpan view(storage.data(), dom); + ddc::ChunkSpan const view(storage.data(), dom); ddc::for_each(ddc::policies::parallel_host, dom, [=](DElemXY const ixy) { view(ixy) += 1; }); EXPECT_EQ(std::count(storage.begin(), storage.end(), 1), dom.size()); } @@ -106,7 +111,7 @@ void TestForEachParallelDeviceZeroDimension() DDom0D const dom; ddc::Chunk> storage(dom); Kokkos::deep_copy(storage.allocation_kokkos_view(), 0); - ddc::ChunkSpan view(storage.span_view()); + ddc::ChunkSpan const view(storage.span_view()); ddc::for_each( ddc::policies::parallel_device, dom, @@ -134,7 +139,7 @@ void TestForEachParallelDeviceOneDimension() DDomX const dom(lbound_x, nelems_x); ddc::Chunk> storage(dom); Kokkos::deep_copy(storage.allocation_kokkos_view(), 0); - ddc::ChunkSpan view(storage.span_view()); + ddc::ChunkSpan const view(storage.span_view()); ddc::for_each( ddc::policies::parallel_device, dom, @@ -162,7 +167,7 @@ void TestForEachParallelDeviceTwoDimensions() DDomXY const dom(lbound_x_y, nelems_x_y); ddc::Chunk> storage(dom); Kokkos::deep_copy(storage.allocation_kokkos_view(), 0); - ddc::ChunkSpan view(storage.span_view()); + ddc::ChunkSpan const view(storage.span_view()); ddc::for_each( ddc::policies::parallel_device, dom, diff --git a/vendor/ddc/tests/non_uniform_point_sampling.cpp b/vendor/ddc/tests/non_uniform_point_sampling.cpp index 4e011106e..199316acb 100644 --- a/vendor/ddc/tests/non_uniform_point_sampling.cpp +++ b/vendor/ddc/tests/non_uniform_point_sampling.cpp @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT + #include #include #include @@ -29,53 +30,54 @@ struct DimY; using DDimX = ddc::NonUniformPointSampling; using DDimY = ddc::NonUniformPointSampling; -std::array const array_points_x VALUES_X; -std::vector const vector_points_x VALUES_X; +static std::array const array_points_x VALUES_X; +static std::vector const vector_points_x VALUES_X; -std::vector const vector_points_y VALUES_Y; +static std::vector const vector_points_y VALUES_Y; -ddc::DiscreteElement constexpr point_ix(2); -ddc::Coordinate constexpr point_rx(0.3); +static ddc::DiscreteElement constexpr point_ix(2); +static ddc::Coordinate constexpr point_rx(0.3); -ddc::DiscreteElement constexpr point_iy(1); -ddc::Coordinate constexpr point_ry(0.2); +static ddc::DiscreteElement constexpr point_iy(1); +static ddc::Coordinate constexpr point_ry(0.2); -ddc::DiscreteElement constexpr point_ixy(2, 1); -ddc::Coordinate constexpr point_rxy(0.3, 0.2); +static ddc::DiscreteElement constexpr point_ixy(2, 1); +static ddc::Coordinate constexpr point_rxy(0.3, 0.2); } // namespace TEST(NonUniformPointSamplingTest, ListConstructor) { - DDimX::Impl ddim_x(VALUES_X); + DDimX::Impl const ddim_x(VALUES_X); EXPECT_EQ(ddim_x.size(), 4); EXPECT_EQ(ddim_x.coordinate(point_ix), point_rx); } TEST(NonUniformPointSamplingTest, ArrayConstructor) { - DDimX::Impl ddim_x(array_points_x); + DDimX::Impl const ddim_x(array_points_x); EXPECT_EQ(ddim_x.size(), array_points_x.size()); EXPECT_EQ(ddim_x.coordinate(point_ix), point_rx); } TEST(NonUniformPointSamplingTest, VectorConstructor) { - DDimX::Impl ddim_x(vector_points_x); + DDimX::Impl const ddim_x(vector_points_x); EXPECT_EQ(ddim_x.size(), vector_points_x.size()); EXPECT_EQ(ddim_x.coordinate(point_ix), point_rx); } TEST(NonUniformPointSamplingTest, IteratorConstructor) { - DDimX::Impl ddim_x(vector_points_x.begin(), vector_points_x.end()); + DDimX::Impl const ddim_x(vector_points_x.begin(), vector_points_x.end()); EXPECT_EQ(ddim_x.size(), vector_points_x.size()); EXPECT_EQ(ddim_x.coordinate(point_ix), point_rx); } TEST(NonUniformPointSampling, Formatting) { - DDimX::Impl ddim_x({ddc::Coordinate(0.1), ddc::Coordinate(0.4)}); + DDimX::Impl const ddim_x( + {ddc::Coordinate(0.1), ddc::Coordinate(0.4)}); std::stringstream oss; oss << ddim_x; EXPECT_EQ(oss.str(), "NonUniformPointSampling(2)"); diff --git a/vendor/ddc/tests/rectilinear_domain.cpp b/vendor/ddc/tests/rectilinear_domain.cpp index 0d43c50a7..3b536678a 100644 --- a/vendor/ddc/tests/rectilinear_domain.cpp +++ b/vendor/ddc/tests/rectilinear_domain.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MIT -#include +#include #include diff --git a/vendor/ddc/tests/relocatable_device_code.cpp b/vendor/ddc/tests/relocatable_device_code.cpp index 890fdf8b9..626c59b7a 100644 --- a/vendor/ddc/tests/relocatable_device_code.cpp +++ b/vendor/ddc/tests/relocatable_device_code.cpp @@ -1,4 +1,7 @@ // SPDX-License-Identifier: MIT + +#include + #include #include diff --git a/vendor/ddc/tests/relocatable_device_code_initialization.cpp b/vendor/ddc/tests/relocatable_device_code_initialization.cpp index eac1ac963..b386ca7b4 100644 --- a/vendor/ddc/tests/relocatable_device_code_initialization.cpp +++ b/vendor/ddc/tests/relocatable_device_code_initialization.cpp @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT + #include #include "relocatable_device_code_initialization.hpp" diff --git a/vendor/ddc/tests/relocatable_device_code_initialization.hpp b/vendor/ddc/tests/relocatable_device_code_initialization.hpp index 3831db9b2..8ead82442 100644 --- a/vendor/ddc/tests/relocatable_device_code_initialization.hpp +++ b/vendor/ddc/tests/relocatable_device_code_initialization.hpp @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT + #pragma once #include diff --git a/vendor/ddc/tests/single_discretization.cpp b/vendor/ddc/tests/single_discretization.cpp index 6f707f88f..1854e32d1 100644 --- a/vendor/ddc/tests/single_discretization.cpp +++ b/vendor/ddc/tests/single_discretization.cpp @@ -1,6 +1,4 @@ // SPDX-License-Identifier: MIT -#include -#include #include @@ -29,9 +27,9 @@ TEST(SingleDiscretization, ClassSize) TEST(SingleDiscretization, Constructor) { - constexpr CoordX x(1.); + CoordX const x(1.); - SingleDiscretization::Impl ddim_x(x); + SingleDiscretization::Impl const ddim_x(x); EXPECT_EQ(ddim_x.coordinate(DElemX(0)), x); } diff --git a/vendor/ddc/tests/tagged_vector.cpp b/vendor/ddc/tests/tagged_vector.cpp index 0dffa8258..d1aa0fb80 100644 --- a/vendor/ddc/tests/tagged_vector.cpp +++ b/vendor/ddc/tests/tagged_vector.cpp @@ -1,5 +1,6 @@ // SPDX-License-Identifier: MIT -#include + +#include #include @@ -7,13 +8,13 @@ TEST(TaggedVector, Constructor) { - [[maybe_unused]] ddc::detail::TaggedVector map(1, 2); + [[maybe_unused]] ddc::detail::TaggedVector const map(1, 2); } TEST(TaggedVector, ConstructorFromTaggedVectors) { - ddc::detail::TaggedVector map_v1(1, 2); - ddc::detail::TaggedVector map_v2(3); + ddc::detail::TaggedVector const map_v1(1, 2); + ddc::detail::TaggedVector const map_v2(3); ddc::detail::TaggedVector const map_v3(map_v1, map_v2); EXPECT_EQ(map_v3.get(), 1); EXPECT_EQ(map_v3.get(), 2); @@ -22,12 +23,12 @@ TEST(TaggedVector, ConstructorFromTaggedVectors) TEST(TaggedVector, ReorderingConstructor) { - ddc::detail::TaggedVector map_ref(1, 2); - ddc::detail::TaggedVector submap_double = ddc::select(map_ref); - ddc::detail::TaggedVector submap_float = ddc::select(map_ref); - ddc::detail::TaggedVector map_v1(submap_double, submap_float); - ddc::detail::TaggedVector map_v2(submap_float, submap_double); - ddc::detail::TaggedVector map_v3(map_ref); + ddc::detail::TaggedVector const map_ref(1, 2); + ddc::detail::TaggedVector const submap_double = ddc::select(map_ref); + ddc::detail::TaggedVector const submap_float = ddc::select(map_ref); + ddc::detail::TaggedVector const map_v1(submap_double, submap_float); + ddc::detail::TaggedVector const map_v2(submap_float, submap_double); + ddc::detail::TaggedVector const map_v3(map_ref); EXPECT_EQ(map_v1, map_ref); EXPECT_EQ(map_v2, map_ref); EXPECT_EQ(map_v3, map_ref); @@ -35,24 +36,15 @@ TEST(TaggedVector, ReorderingConstructor) TEST(TaggedVector, Accessor) { - ddc::detail::TaggedVector map(1, 2); + ddc::detail::TaggedVector const map(1, 2); EXPECT_EQ(map.get(), 1); EXPECT_EQ(ddc::get(map), 2); } -TEST(TaggedVector, ConstAccessor) -{ - ddc::detail::TaggedVector map(1, 2); - ddc::detail::TaggedVector const& cmap = map; - - EXPECT_EQ(cmap.get(), 1); - EXPECT_EQ(ddc::get(cmap), 2); -} - TEST(TaggedVector, AccessorSingleElement) { - ddc::detail::TaggedVector map(1); + ddc::detail::TaggedVector const map(1); EXPECT_EQ(map.get(), 1); EXPECT_EQ(ddc::get(map), 1); @@ -61,12 +53,12 @@ TEST(TaggedVector, AccessorSingleElement) TEST(TaggedVector, Transpose) { - ddc::detail::TaggedVector coord(0, 1, 2); + ddc::detail::TaggedVector const coord(0, 1, 2); EXPECT_EQ(coord.get(), 0); EXPECT_EQ(coord.get(), 1); EXPECT_EQ(coord.get(), 2); - ddc::detail::TaggedVector coord_reordered(coord); + ddc::detail::TaggedVector const coord_reordered(coord); EXPECT_EQ(coord.get(), coord_reordered.get()); EXPECT_EQ(coord.get(), coord_reordered.get()); EXPECT_EQ(coord.get(), coord_reordered.get()); @@ -74,9 +66,9 @@ TEST(TaggedVector, Transpose) TEST(TaggedVector, Operators) { - ddc::detail::TaggedVector a(1, 2); - ddc::detail::TaggedVector b(3, 4); - ddc::detail::TaggedVector c = ddc::select(a); + ddc::detail::TaggedVector const a(1, 2); + ddc::detail::TaggedVector const b(3, 4); + ddc::detail::TaggedVector const c = ddc::select(a); EXPECT_EQ(a + b, (ddc::detail::TaggedVector(5, 5))); EXPECT_EQ(b - a, (ddc::detail::TaggedVector(3, 1))); EXPECT_EQ(c + 4, (ddc::detail::TaggedVector(5))); @@ -86,7 +78,7 @@ TEST(TaggedVector, Operators) TEST(TaggedVector, Assignment) { - ddc::detail::TaggedVector a(1, 2); + ddc::detail::TaggedVector const a(1, 2); ddc::detail::TaggedVector b; b = a; EXPECT_EQ(a.get(), b.get()); @@ -95,7 +87,7 @@ TEST(TaggedVector, Assignment) TEST(TaggedVector, ReorderingAssignment) { - ddc::detail::TaggedVector a(1, 2); + ddc::detail::TaggedVector const a(1, 2); ddc::detail::TaggedVector b; b = a; EXPECT_EQ(a.get(), b.get()); @@ -122,16 +114,16 @@ TEST(TaggedVector, ReorderingMoveAssignment) TEST(TaggedVector, Conversion) { - ddc::detail::TaggedVector a(1, 2); - ddc::detail::TaggedVector b(a); + ddc::detail::TaggedVector const a(1, 2); + ddc::detail::TaggedVector const b(a); EXPECT_EQ(b.get(), 1.0); EXPECT_EQ(b.get(), 2.0); } TEST(TaggedVector, ConversionReorder) { - ddc::detail::TaggedVector a(1, 2); - ddc::detail::TaggedVector b(a); + ddc::detail::TaggedVector const a(1, 2); + ddc::detail::TaggedVector const b(a); EXPECT_EQ(b.get(), 1.0); EXPECT_EQ(b.get(), 2.0); } diff --git a/vendor/ddc/tests/transform_reduce.cpp b/vendor/ddc/tests/transform_reduce.cpp index 6b057dfac..4d04fcaee 100644 --- a/vendor/ddc/tests/transform_reduce.cpp +++ b/vendor/ddc/tests/transform_reduce.cpp @@ -1,5 +1,7 @@ // SPDX-License-Identifier: MIT +#include + #include #include @@ -37,7 +39,7 @@ TEST(TransformReduceSerialHost, ZeroDimension) { DDom0D const dom; std::vector storage(dom.size(), 0); - ddc::ChunkSpan chunk(storage.data(), dom); + ddc::ChunkSpan const chunk(storage.data(), dom); int count = 0; ddc::for_each(dom, [&](DElem0D const i) { chunk(i) = count++; }); EXPECT_EQ( @@ -46,7 +48,7 @@ TEST(TransformReduceSerialHost, ZeroDimension) dom, 0, ddc::reducer::sum(), - [&](DElem0D const i) { return chunk(i); }), + chunk), dom.size() * (dom.size() - 1) / 2); } @@ -54,7 +56,7 @@ TEST(TransformReduceSerialHost, OneDimension) { DDomX const dom(lbound_x, nelems_x); std::vector storage(dom.size(), 0); - ddc::ChunkSpan chunk(storage.data(), dom); + ddc::ChunkSpan const chunk(storage.data(), dom); int count = 0; ddc::for_each(dom, [&](DElemX const ix) { chunk(ix) = count++; }); EXPECT_EQ( @@ -63,7 +65,7 @@ TEST(TransformReduceSerialHost, OneDimension) dom, 0, ddc::reducer::sum(), - [&](DElemX const ix) { return chunk(ix); }), + chunk), dom.size() * (dom.size() - 1) / 2); } @@ -71,7 +73,7 @@ TEST(TransformReduceSerialHost, TwoDimensions) { DDomXY const dom(lbound_x_y, nelems_x_y); std::vector storage(dom.size(), 0); - ddc::ChunkSpan chunk(storage.data(), dom); + ddc::ChunkSpan const chunk(storage.data(), dom); int count = 0; ddc::for_each(dom, [&](DElemXY const ixy) { chunk(ixy) = count++; }); EXPECT_EQ( @@ -80,14 +82,14 @@ TEST(TransformReduceSerialHost, TwoDimensions) dom, 0, ddc::reducer::sum(), - [&](DElemXY const ixy) { return chunk(ixy); }), + chunk), dom.size() * (dom.size() - 1) / 2); } TEST(TransformReduceParallelHost, ZeroDimension) { DDom0D const dom; std::vector storage(dom.size(), 0); - ddc::ChunkSpan chunk(storage.data(), dom); + ddc::ChunkSpan const chunk(storage.data(), dom); int count = 0; ddc::for_each(dom, [&](DElem0D const i) { chunk(i) = count++; }); EXPECT_EQ( @@ -96,14 +98,14 @@ TEST(TransformReduceParallelHost, ZeroDimension) dom, 0, ddc::reducer::sum(), - [&](DElem0D const i) { return chunk(i); }), + chunk), dom.size() * (dom.size() - 1) / 2); } TEST(TransformReduceParallelHost, OneDimension) { DDomX const dom(lbound_x, nelems_x); std::vector storage(dom.size(), 0); - ddc::ChunkSpan chunk(storage.data(), dom); + ddc::ChunkSpan const chunk(storage.data(), dom); int count = 0; ddc::for_each(dom, [&](DElemX const ix) { chunk(ix) = count++; }); EXPECT_EQ( @@ -112,7 +114,7 @@ TEST(TransformReduceParallelHost, OneDimension) dom, 0, ddc::reducer::sum(), - [&](DElemX const ix) { return chunk(ix); }), + chunk), dom.size() * (dom.size() - 1) / 2); } @@ -120,7 +122,7 @@ TEST(TransformReduceParallelHost, TwoDimensions) { DDomXY const dom(lbound_x_y, nelems_x_y); std::vector storage(dom.size(), 0); - ddc::ChunkSpan chunk(storage.data(), dom); + ddc::ChunkSpan const chunk(storage.data(), dom); int count = 0; ddc::for_each(dom, [&](DElemXY const ixy) { chunk(ixy) = count++; }); EXPECT_EQ( @@ -129,7 +131,7 @@ TEST(TransformReduceParallelHost, TwoDimensions) dom, 0, ddc::reducer::sum(), - [&](DElemXY const ixy) { return chunk(ixy); }), + chunk), dom.size() * (dom.size() - 1) / 2); } @@ -138,7 +140,7 @@ static void TestTransformReduceParallelDeviceZeroDimension() DDom0D const dom; ddc::Chunk> storage(dom); ddc::ChunkSpan const chunk(storage.span_view()); - Kokkos::View count("count"); + Kokkos::View const count("count"); Kokkos::deep_copy(count, 0); ddc::for_each( ddc::policies::parallel_device, @@ -150,7 +152,7 @@ static void TestTransformReduceParallelDeviceZeroDimension() dom, 0, ddc::reducer::sum(), - KOKKOS_LAMBDA(DElem0D const i) { return chunk(i); }), + chunk), dom.size() * (dom.size() - 1) / 2); } @@ -164,7 +166,7 @@ static void TestTransformReduceParallelDeviceOneDimension() DDomX const dom(lbound_x, nelems_x); ddc::Chunk> storage(dom); ddc::ChunkSpan const chunk(storage.span_view()); - Kokkos::View count("count"); + Kokkos::View const count("count"); Kokkos::deep_copy(count, 0); ddc::for_each( ddc::policies::parallel_device, @@ -176,7 +178,7 @@ static void TestTransformReduceParallelDeviceOneDimension() dom, 0, ddc::reducer::sum(), - KOKKOS_LAMBDA(DElemX const ix) { return chunk(ix); }), + chunk), dom.size() * (dom.size() - 1) / 2); } @@ -190,7 +192,7 @@ static void TestTransformReduceParallelDeviceTwoDimensions() DDomXY const dom(lbound_x_y, nelems_x_y); ddc::Chunk> storage(dom); ddc::ChunkSpan const chunk(storage.span_view()); - Kokkos::View count("count"); + Kokkos::View const count("count"); Kokkos::deep_copy(count, 0); ddc::for_each( ddc::policies::parallel_device, @@ -204,7 +206,7 @@ static void TestTransformReduceParallelDeviceTwoDimensions() dom, 0, ddc::reducer::sum(), - KOKKOS_LAMBDA(DElemXY const ixy) { return chunk(ixy); }), + chunk), dom.size() * (dom.size() - 1) / 2); } diff --git a/vendor/ddc/tests/type_seq.cpp b/vendor/ddc/tests/type_seq.cpp index 9a8d650b7..7e2990c82 100644 --- a/vendor/ddc/tests/type_seq.cpp +++ b/vendor/ddc/tests/type_seq.cpp @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -#include + #include #include diff --git a/vendor/ddc/tests/uniform_point_sampling.cpp b/vendor/ddc/tests/uniform_point_sampling.cpp index 277ebebb0..908cb9e55 100644 --- a/vendor/ddc/tests/uniform_point_sampling.cpp +++ b/vendor/ddc/tests/uniform_point_sampling.cpp @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -#include + #include #include @@ -25,7 +25,7 @@ static ddc::Coordinate constexpr point_rx(0.); TEST(UniformPointSamplingTest, Constructor) { - DDimX::Impl ddim_x(origin, step); + DDimX::Impl const ddim_x(origin, step); EXPECT_EQ(ddim_x.origin(), origin); EXPECT_EQ(ddim_x.step(), step); EXPECT_EQ(ddim_x.coordinate(point_ix), point_rx); @@ -33,7 +33,7 @@ TEST(UniformPointSamplingTest, Constructor) TEST(UniformPointSampling, Formatting) { - DDimX::Impl ddim_x(origin, step); + DDimX::Impl const ddim_x(origin, step); std::stringstream oss; oss << ddim_x; EXPECT_EQ(oss.str(), "UniformPointSampling( origin=(-1), step=0.5 )"); @@ -41,11 +41,11 @@ TEST(UniformPointSampling, Formatting) TEST(UniformPointSamplingTest, Coordinate) { - ddc::DiscreteElement point_iy(4); - ddc::Coordinate point_ry(-6); + ddc::DiscreteElement const point_iy(4); + ddc::Coordinate const point_ry(-6); - ddc::DiscreteElement point_ixy(point_ix, point_iy); - ddc::Coordinate point_rxy(point_rx, point_ry); + ddc::DiscreteElement const point_ixy(point_ix, point_iy); + ddc::Coordinate const point_rxy(point_rx, point_ry); ddc::init_discrete_space(origin, step); ddc::init_discrete_space(ddc::Coordinate(-10), 1);