Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
SyclHelper.cpp
Go to the documentation of this file.
1// -------------------------------------------------------//
2//
3// SHAMROCK code for hydrodynamics
4// Copyright (c) 2021-2026 Timothée David--Cléris <tim.shamrock@proton.me>
5// SPDX-License-Identifier: CeCILL Free Software License Agreement v2.1
6// Shamrock is licensed under the CeCILL 2.1 License, see LICENSE for more information
7//
8// -------------------------------------------------------//
9
17
18namespace shamsys::syclhelper::mock {
19
20 template<class T>
21 sycl::buffer<T> mock_buffer(u32 len, std::mt19937 &eng) {
22 std::uniform_real_distribution<f64> distval(-1.0F, 1.0F);
23
24 sycl::buffer<T> buf(len);
25
26 {
27 sycl::host_accessor acc{buf};
28 for (u32 i = 0; i < len; i++) {
29 acc[i] = next_obj<T>(eng, distval);
30 }
31 }
32
33 return std::move(buf);
34 }
35
36 template sycl::buffer<f32> mock_buffer<f32>(u32 len, std::mt19937 &eng);
37 template sycl::buffer<f32_2> mock_buffer<f32_2>(u32 len, std::mt19937 &eng);
38 template sycl::buffer<f32_3> mock_buffer<f32_3>(u32 len, std::mt19937 &eng);
39 template sycl::buffer<f32_4> mock_buffer<f32_4>(u32 len, std::mt19937 &eng);
40 template sycl::buffer<f32_8> mock_buffer<f32_8>(u32 len, std::mt19937 &eng);
41 template sycl::buffer<f32_16> mock_buffer<f32_16>(u32 len, std::mt19937 &eng);
42 template sycl::buffer<f64> mock_buffer<f64>(u32 len, std::mt19937 &eng);
43 template sycl::buffer<f64_2> mock_buffer<f64_2>(u32 len, std::mt19937 &eng);
44 template sycl::buffer<f64_3> mock_buffer<f64_3>(u32 len, std::mt19937 &eng);
45 template sycl::buffer<f64_4> mock_buffer<f64_4>(u32 len, std::mt19937 &eng);
46 template sycl::buffer<f64_8> mock_buffer<f64_8>(u32 len, std::mt19937 &eng);
47 template sycl::buffer<f64_16> mock_buffer<f64_16>(u32 len, std::mt19937 &eng);
48 template sycl::buffer<u32> mock_buffer<u32>(u32 len, std::mt19937 &eng);
49 template sycl::buffer<u64> mock_buffer<u64>(u32 len, std::mt19937 &eng);
50
51} // namespace shamsys::syclhelper::mock
std::uint32_t u32
32 bit unsigned integer