mkl-devel-dpcpp 2025.0.1__py2.py3-none-win_amd64.whl → 2025.2.0__py2.py3-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mkl-devel-dpcpp might be problematic. Click here for more details.
- {mkl_devel_dpcpp-2025.0.1.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl.lib +0 -0
- {mkl_devel_dpcpp-2025.0.1.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_blas_dll.lib +0 -0
- mkl_devel_dpcpp-2025.2.0.data/data/Library/lib/mkl_sycl_dft_dll.lib +0 -0
- {mkl_devel_dpcpp-2025.0.1.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_dll.lib +0 -0
- mkl_devel_dpcpp-2025.2.0.data/data/Library/lib/mkl_sycl_lapack_dll.lib +0 -0
- {mkl_devel_dpcpp-2025.0.1.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_rng_dll.lib +0 -0
- mkl_devel_dpcpp-2025.2.0.data/data/Library/lib/mkl_sycl_sparse_dll.lib +0 -0
- {mkl_devel_dpcpp-2025.0.1.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/METADATA +4 -3
- mkl_devel_dpcpp-2025.2.0.dist-info/RECORD +15 -0
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/bfloat16.hpp +0 -26
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/blas/buffer.hpp +0 -42
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/blas/buffer_decls.hpp +0 -880
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/blas/types.hpp +0 -60
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/blas/usm.hpp +0 -42
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/blas/usm_decls.hpp +0 -1240
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/blas.hpp +0 -33
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/dft.hpp +0 -253
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/dfti.hpp +0 -22
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/exceptions.hpp +0 -110
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/experimental/data_fitting/interpolate.hpp +0 -67
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/experimental/data_fitting/spline_and_data_params.hpp +0 -68
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/experimental/data_fitting/splines.hpp +0 -177
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/experimental/data_fitting.hpp +0 -22
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/export.hpp +0 -25
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/lapack/concepts.hpp +0 -55
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/lapack/exceptions.hpp +0 -75
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/lapack/lapack.hpp +0 -1095
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/lapack/scratchpad.hpp +0 -106
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/lapack.hpp +0 -23
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/detail/engine_base.hpp +0 -48
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/bernoulli_impl.hpp +0 -89
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/beta_impl.hpp +0 -464
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/bits_impl.hpp +0 -71
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/distribution_base.hpp +0 -81
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/engine_base.hpp +0 -43
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/engine_helpers_base.hpp +0 -54
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/exponential_impl.hpp +0 -116
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/gamma_impl.hpp +0 -285
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/gaussian_impl.hpp +0 -270
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/lognormal_impl.hpp +0 -105
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg31m1_helpers_impl.hpp +0 -117
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg31m1_impl.hpp +0 -223
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg59_helpers_impl.hpp +0 -118
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg59_impl.hpp +0 -266
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_helpers_impl.hpp +0 -125
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_impl.hpp +0 -385
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_skip_ahead_matrix.hpp +0 -3668
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/philox4x32x10_helpers_impl.hpp +0 -141
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/philox4x32x10_impl.hpp +0 -552
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/poisson_impl.hpp +0 -355
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/types.hpp +0 -58
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/uniform_bits_impl.hpp +0 -51
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/uniform_impl.hpp +0 -289
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/vm_wrappers.hpp +0 -183
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/distributions.hpp +0 -637
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/engine_helpers.hpp +0 -116
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/engines.hpp +0 -187
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/functions.hpp +0 -59
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/types.hpp +0 -74
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device.hpp +0 -29
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/distributions.hpp +0 -1913
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/engines.hpp +0 -788
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/functions.hpp +0 -163
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng.hpp +0 -22
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/spblas/sparse_auxiliary.hpp +0 -111
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/spblas/sparse_operations.hpp +0 -446
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/spblas/sparse_structures.hpp +0 -193
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/spblas.hpp +0 -32
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/stats.hpp +0 -356
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/types.hpp +0 -321
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/buffer.hpp +0 -3529
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/decls.hpp +0 -280
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/detail/decls.hpp +0 -81
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/detail/dispatch.hpp +0 -1059
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/detail/ep.hpp +0 -861
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/detail/ha.hpp +0 -860
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/detail/la.hpp +0 -860
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/detail/rts.hpp +0 -4608
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/detail/scalar.hpp +0 -8963
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/vm.hpp +0 -460
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/span.hpp +0 -3813
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/usm.hpp +0 -3581
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm.hpp +0 -30
- mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl.hpp +0 -34
- mkl_devel_dpcpp-2025.0.1.data/data/Library/lib/mkl_sycl_dft_dll.lib +0 -0
- mkl_devel_dpcpp-2025.0.1.data/data/Library/lib/mkl_sycl_lapack_dll.lib +0 -0
- mkl_devel_dpcpp-2025.0.1.data/data/Library/lib/mkl_sycl_sparse_dll.lib +0 -0
- mkl_devel_dpcpp-2025.0.1.dist-info/RECORD +0 -90
- {mkl_devel_dpcpp-2025.0.1.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_data_fitting_dll.lib +0 -0
- {mkl_devel_dpcpp-2025.0.1.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_stats_dll.lib +0 -0
- {mkl_devel_dpcpp-2025.0.1.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_vm_dll.lib +0 -0
- {mkl_devel_dpcpp-2025.0.1.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/LICENSE.txt +0 -0
- {mkl_devel_dpcpp-2025.0.1.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/WHEEL +0 -0
- {mkl_devel_dpcpp-2025.0.1.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/top_level.txt +0 -0
|
@@ -1,788 +0,0 @@
|
|
|
1
|
-
/*******************************************************************************
|
|
2
|
-
* Copyright 2019-2022 Intel Corporation.
|
|
3
|
-
*
|
|
4
|
-
* This software and the related documents are Intel copyrighted materials, and
|
|
5
|
-
* your use of them is governed by the express license under which they were
|
|
6
|
-
* provided to you (License). Unless the License provides otherwise, you may not
|
|
7
|
-
* use, modify, copy, publish, distribute, disclose or transmit this software or
|
|
8
|
-
* the related documents without Intel's prior written permission.
|
|
9
|
-
*
|
|
10
|
-
* This software and the related documents are provided as is, with no express
|
|
11
|
-
* or implied warranties, other than those that are expressly stated in the
|
|
12
|
-
* License.
|
|
13
|
-
*******************************************************************************/
|
|
14
|
-
|
|
15
|
-
#ifndef _MKL_RNG_ENGINES_HPP_
|
|
16
|
-
#define _MKL_RNG_ENGINES_HPP_
|
|
17
|
-
|
|
18
|
-
#include "oneapi/mkl/export.hpp"
|
|
19
|
-
|
|
20
|
-
#include "oneapi/mkl/rng/detail/engine_base.hpp"
|
|
21
|
-
#include "oneapi/mkl/rng/functions.hpp"
|
|
22
|
-
|
|
23
|
-
namespace oneapi {
|
|
24
|
-
namespace mkl {
|
|
25
|
-
namespace rng {
|
|
26
|
-
|
|
27
|
-
// PSEUDO-RANDOM NUMBER ENGINES
|
|
28
|
-
|
|
29
|
-
// Class oneapi::mkl::rng::philox4x32x10
|
|
30
|
-
//
|
|
31
|
-
// Represents Philox4x32-10 counter-based pseudorandom number generator
|
|
32
|
-
//
|
|
33
|
-
// Supported parallelization methods:
|
|
34
|
-
// skip_ahead
|
|
35
|
-
class DLL_EXPORT philox4x32x10 : detail::engine_base<philox4x32x10> {
|
|
36
|
-
public:
|
|
37
|
-
static constexpr std::uint64_t default_seed = 0;
|
|
38
|
-
|
|
39
|
-
philox4x32x10(sycl::queue queue, std::uint64_t seed = default_seed);
|
|
40
|
-
|
|
41
|
-
philox4x32x10(sycl::queue queue, std::initializer_list<std::uint64_t> seed);
|
|
42
|
-
|
|
43
|
-
philox4x32x10(const philox4x32x10& other);
|
|
44
|
-
|
|
45
|
-
philox4x32x10(philox4x32x10&& other);
|
|
46
|
-
|
|
47
|
-
philox4x32x10& operator=(const philox4x32x10& other);
|
|
48
|
-
|
|
49
|
-
philox4x32x10& operator=(philox4x32x10&& other);
|
|
50
|
-
|
|
51
|
-
~philox4x32x10();
|
|
52
|
-
|
|
53
|
-
private:
|
|
54
|
-
void skip_ahead(std::uint64_t num_to_skip);
|
|
55
|
-
|
|
56
|
-
void skip_ahead(std::initializer_list<std::uint64_t> num_to_skip);
|
|
57
|
-
|
|
58
|
-
template <typename Engine>
|
|
59
|
-
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
60
|
-
|
|
61
|
-
template <typename Engine>
|
|
62
|
-
friend void skip_ahead(Engine& engine, std::initializer_list<std::uint64_t> num_to_skip);
|
|
63
|
-
|
|
64
|
-
template <typename Distr, typename Engine>
|
|
65
|
-
friend void generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
66
|
-
sycl::buffer<typename Distr::result_type, 1>& r);
|
|
67
|
-
|
|
68
|
-
template <typename Distr, typename Engine>
|
|
69
|
-
friend sycl::event generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
70
|
-
typename Distr::result_type* r,
|
|
71
|
-
const std::vector<sycl::event>& dependencies);
|
|
72
|
-
|
|
73
|
-
template <typename Engine>
|
|
74
|
-
friend std::int64_t get_state_size(Engine& engine);
|
|
75
|
-
|
|
76
|
-
template <typename Engine>
|
|
77
|
-
friend void save_state(Engine& engine, std::uint8_t* mem);
|
|
78
|
-
|
|
79
|
-
template <typename Engine>
|
|
80
|
-
friend void save_state(Engine& engine, const std::string& filename);
|
|
81
|
-
|
|
82
|
-
template <typename Engine>
|
|
83
|
-
friend Engine load_state(const sycl::queue& queue, const std::uint8_t* mem);
|
|
84
|
-
|
|
85
|
-
template <typename Engine>
|
|
86
|
-
friend Engine load_state(const sycl::queue& queue, const std::string& filename);
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
// Class oneapi::mkl::rng::mrg32k3a
|
|
90
|
-
//
|
|
91
|
-
// Represents the combined recurcive pseudorandom number generator
|
|
92
|
-
//
|
|
93
|
-
// Supported parallelization methods:
|
|
94
|
-
// skip_ahead
|
|
95
|
-
//
|
|
96
|
-
namespace mrg32k3a_mode {
|
|
97
|
-
struct optimal {};
|
|
98
|
-
struct custom {
|
|
99
|
-
custom() = delete;
|
|
100
|
-
std::uint32_t num_streams;
|
|
101
|
-
};
|
|
102
|
-
constexpr optimal optimal_v{};
|
|
103
|
-
} // namespace mrg32k3a_mode
|
|
104
|
-
|
|
105
|
-
class DLL_EXPORT mrg32k3a : detail::engine_base<mrg32k3a> {
|
|
106
|
-
public:
|
|
107
|
-
static constexpr std::uint32_t default_seed = 1;
|
|
108
|
-
|
|
109
|
-
mrg32k3a(sycl::queue queue, std::uint32_t seed = default_seed);
|
|
110
|
-
|
|
111
|
-
mrg32k3a(sycl::queue queue, std::uint32_t seed, mrg32k3a_mode::optimal mode);
|
|
112
|
-
|
|
113
|
-
mrg32k3a(sycl::queue queue, std::uint32_t seed, mrg32k3a_mode::custom mode);
|
|
114
|
-
|
|
115
|
-
mrg32k3a(sycl::queue queue, std::initializer_list<std::uint32_t> seed);
|
|
116
|
-
|
|
117
|
-
mrg32k3a(sycl::queue queue, std::initializer_list<std::uint32_t> seed,
|
|
118
|
-
mrg32k3a_mode::optimal mode);
|
|
119
|
-
|
|
120
|
-
mrg32k3a(sycl::queue queue, std::initializer_list<std::uint32_t> seed,
|
|
121
|
-
mrg32k3a_mode::custom mode);
|
|
122
|
-
|
|
123
|
-
mrg32k3a(const mrg32k3a& other);
|
|
124
|
-
|
|
125
|
-
mrg32k3a(mrg32k3a&& other);
|
|
126
|
-
|
|
127
|
-
mrg32k3a& operator=(const mrg32k3a& other);
|
|
128
|
-
|
|
129
|
-
mrg32k3a& operator=(mrg32k3a&& other);
|
|
130
|
-
|
|
131
|
-
~mrg32k3a();
|
|
132
|
-
|
|
133
|
-
private:
|
|
134
|
-
void skip_ahead(std::uint64_t num_to_skip);
|
|
135
|
-
|
|
136
|
-
void skip_ahead(std::initializer_list<std::uint64_t> num_to_skip);
|
|
137
|
-
|
|
138
|
-
template <typename Engine>
|
|
139
|
-
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
140
|
-
|
|
141
|
-
template <typename Engine>
|
|
142
|
-
friend void skip_ahead(Engine& engine, std::initializer_list<std::uint64_t> num_to_skip);
|
|
143
|
-
|
|
144
|
-
template <typename Distr, typename Engine>
|
|
145
|
-
friend void generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
146
|
-
sycl::buffer<typename Distr::result_type, 1>& r);
|
|
147
|
-
|
|
148
|
-
template <typename Distr, typename Engine>
|
|
149
|
-
friend sycl::event generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
150
|
-
typename Distr::result_type* r,
|
|
151
|
-
const std::vector<sycl::event>& dependencies);
|
|
152
|
-
|
|
153
|
-
template <typename Engine>
|
|
154
|
-
friend std::int64_t get_state_size(Engine& engine);
|
|
155
|
-
|
|
156
|
-
template <typename Engine>
|
|
157
|
-
friend void save_state(Engine& engine, std::uint8_t* mem);
|
|
158
|
-
|
|
159
|
-
template <typename Engine>
|
|
160
|
-
friend void save_state(Engine& engine, const std::string& filename);
|
|
161
|
-
|
|
162
|
-
template <typename Engine>
|
|
163
|
-
friend Engine load_state(const sycl::queue& queue, const std::uint8_t* mem);
|
|
164
|
-
|
|
165
|
-
template <typename Engine>
|
|
166
|
-
friend Engine load_state(const sycl::queue& queue, const std::string& filename);
|
|
167
|
-
};
|
|
168
|
-
|
|
169
|
-
// Class oneapi::mkl::rng::mcg31m1
|
|
170
|
-
//
|
|
171
|
-
// Represents the 31-bit multiplicative congruential pseudorandom number generator
|
|
172
|
-
//
|
|
173
|
-
// Supported parallelization methods:
|
|
174
|
-
// skip_ahead
|
|
175
|
-
// leapfrog
|
|
176
|
-
class DLL_EXPORT mcg31m1 : detail::engine_base<mcg31m1> {
|
|
177
|
-
public:
|
|
178
|
-
static constexpr std::uint32_t default_seed = 1;
|
|
179
|
-
|
|
180
|
-
mcg31m1(sycl::queue queue, std::uint32_t seed = default_seed);
|
|
181
|
-
|
|
182
|
-
mcg31m1(const mcg31m1& other);
|
|
183
|
-
|
|
184
|
-
mcg31m1(mcg31m1&& other);
|
|
185
|
-
|
|
186
|
-
mcg31m1& operator=(const mcg31m1& other);
|
|
187
|
-
|
|
188
|
-
mcg31m1& operator=(mcg31m1&& other);
|
|
189
|
-
|
|
190
|
-
~mcg31m1();
|
|
191
|
-
|
|
192
|
-
private:
|
|
193
|
-
void skip_ahead(std::uint64_t num_to_skip);
|
|
194
|
-
|
|
195
|
-
void leapfrog(std::uint64_t idx, std::uint64_t stride);
|
|
196
|
-
|
|
197
|
-
template <typename Engine>
|
|
198
|
-
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
199
|
-
|
|
200
|
-
template <typename Engine>
|
|
201
|
-
friend void leapfrog(Engine& engine, std::uint64_t idx, std::uint64_t stride);
|
|
202
|
-
|
|
203
|
-
template <typename Distr, typename Engine>
|
|
204
|
-
friend void generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
205
|
-
sycl::buffer<typename Distr::result_type, 1>& r);
|
|
206
|
-
|
|
207
|
-
template <typename Distr, typename Engine>
|
|
208
|
-
friend sycl::event generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
209
|
-
typename Distr::result_type* r,
|
|
210
|
-
const std::vector<sycl::event>& dependencies);
|
|
211
|
-
|
|
212
|
-
template <typename Engine>
|
|
213
|
-
friend std::int64_t get_state_size(Engine& engine);
|
|
214
|
-
|
|
215
|
-
template <typename Engine>
|
|
216
|
-
friend void save_state(Engine& engine, std::uint8_t* mem);
|
|
217
|
-
|
|
218
|
-
template <typename Engine>
|
|
219
|
-
friend void save_state(Engine& engine, const std::string& filename);
|
|
220
|
-
|
|
221
|
-
template <typename Engine>
|
|
222
|
-
friend Engine load_state(const sycl::queue& queue, const std::uint8_t* mem);
|
|
223
|
-
|
|
224
|
-
template <typename Engine>
|
|
225
|
-
friend Engine load_state(const sycl::queue& queue, const std::string& filename);
|
|
226
|
-
};
|
|
227
|
-
|
|
228
|
-
// Class oneapi::mkl::rng::mcg59
|
|
229
|
-
//
|
|
230
|
-
// Represents the 59-bit multiplicative congruential pseudorandom
|
|
231
|
-
//
|
|
232
|
-
// number generator
|
|
233
|
-
// Supported parallelization methods:
|
|
234
|
-
// skip_ahead
|
|
235
|
-
// leapfrog
|
|
236
|
-
class DLL_EXPORT mcg59 : detail::engine_base<mcg59> {
|
|
237
|
-
public:
|
|
238
|
-
static constexpr std::uint64_t default_seed = 1;
|
|
239
|
-
|
|
240
|
-
mcg59(sycl::queue queue, std::uint64_t seed = default_seed);
|
|
241
|
-
|
|
242
|
-
mcg59(const mcg59& other);
|
|
243
|
-
|
|
244
|
-
mcg59(mcg59&& other);
|
|
245
|
-
|
|
246
|
-
mcg59& operator=(const mcg59& other);
|
|
247
|
-
|
|
248
|
-
mcg59& operator=(mcg59&& other);
|
|
249
|
-
|
|
250
|
-
~mcg59();
|
|
251
|
-
|
|
252
|
-
private:
|
|
253
|
-
void skip_ahead(std::uint64_t num_to_skip);
|
|
254
|
-
|
|
255
|
-
void leapfrog(std::uint64_t idx, std::uint64_t stride);
|
|
256
|
-
|
|
257
|
-
template <typename Engine>
|
|
258
|
-
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
259
|
-
|
|
260
|
-
template <typename Engine>
|
|
261
|
-
friend void leapfrog(Engine& engine, std::uint64_t idx, std::uint64_t stride);
|
|
262
|
-
|
|
263
|
-
template <typename Distr, typename Engine>
|
|
264
|
-
friend void generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
265
|
-
sycl::buffer<typename Distr::result_type, 1>& r);
|
|
266
|
-
|
|
267
|
-
template <typename Distr, typename Engine>
|
|
268
|
-
friend sycl::event generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
269
|
-
typename Distr::result_type* r,
|
|
270
|
-
const std::vector<sycl::event>& dependencies);
|
|
271
|
-
|
|
272
|
-
template <typename Engine>
|
|
273
|
-
friend std::int64_t get_state_size(Engine& engine);
|
|
274
|
-
|
|
275
|
-
template <typename Engine>
|
|
276
|
-
friend void save_state(Engine& engine, std::uint8_t* mem);
|
|
277
|
-
|
|
278
|
-
template <typename Engine>
|
|
279
|
-
friend void save_state(Engine& engine, const std::string& filename);
|
|
280
|
-
|
|
281
|
-
template <typename Engine>
|
|
282
|
-
friend Engine load_state(const sycl::queue& queue, const std::uint8_t* mem);
|
|
283
|
-
|
|
284
|
-
template <typename Engine>
|
|
285
|
-
friend Engine load_state(const sycl::queue& queue, const std::string& filename);
|
|
286
|
-
};
|
|
287
|
-
|
|
288
|
-
// Class oneapi::mkl::rng::r250
|
|
289
|
-
//
|
|
290
|
-
// Represents the 32-bit generalized feedback shift register pseudorandom number generator
|
|
291
|
-
class DLL_EXPORT r250 : detail::engine_base<r250> {
|
|
292
|
-
public:
|
|
293
|
-
static constexpr std::uint32_t default_seed = 1;
|
|
294
|
-
|
|
295
|
-
r250(sycl::queue queue, std::uint32_t seed = default_seed);
|
|
296
|
-
|
|
297
|
-
r250(sycl::queue queue, std::vector<std::uint32_t> seed);
|
|
298
|
-
|
|
299
|
-
r250(const r250& other);
|
|
300
|
-
|
|
301
|
-
r250(r250&& other);
|
|
302
|
-
|
|
303
|
-
r250& operator=(const r250& other);
|
|
304
|
-
|
|
305
|
-
r250& operator=(r250&& other);
|
|
306
|
-
|
|
307
|
-
~r250();
|
|
308
|
-
|
|
309
|
-
private:
|
|
310
|
-
template <typename Distr, typename Engine>
|
|
311
|
-
friend void generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
312
|
-
sycl::buffer<typename Distr::result_type, 1>& r);
|
|
313
|
-
|
|
314
|
-
template <typename Distr, typename Engine>
|
|
315
|
-
friend sycl::event generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
316
|
-
typename Distr::result_type* r,
|
|
317
|
-
const std::vector<sycl::event>& dependencies);
|
|
318
|
-
|
|
319
|
-
template <typename Engine>
|
|
320
|
-
friend std::int64_t get_state_size(Engine& engine);
|
|
321
|
-
|
|
322
|
-
template <typename Engine>
|
|
323
|
-
friend void save_state(Engine& engine, std::uint8_t* mem);
|
|
324
|
-
|
|
325
|
-
template <typename Engine>
|
|
326
|
-
friend void save_state(Engine& engine, const std::string& filename);
|
|
327
|
-
|
|
328
|
-
template <typename Engine>
|
|
329
|
-
friend Engine load_state(const sycl::queue& queue, const std::uint8_t* mem);
|
|
330
|
-
|
|
331
|
-
template <typename Engine>
|
|
332
|
-
friend Engine load_state(const sycl::queue& queue, const std::string& filename);
|
|
333
|
-
};
|
|
334
|
-
|
|
335
|
-
// Class oneapi::mkl::rng::wichmann_hill
|
|
336
|
-
//
|
|
337
|
-
// Represents Whichmann-Hill pseudorandom number generator (a set of 273 basic generators)
|
|
338
|
-
//
|
|
339
|
-
// Supported parallelization methods:
|
|
340
|
-
// skip_ahead
|
|
341
|
-
// leapfrog
|
|
342
|
-
class DLL_EXPORT wichmann_hill : detail::engine_base<wichmann_hill> {
|
|
343
|
-
public:
|
|
344
|
-
static constexpr std::uint32_t default_seed = 1;
|
|
345
|
-
|
|
346
|
-
wichmann_hill(sycl::queue queue, std::uint32_t seed = default_seed);
|
|
347
|
-
|
|
348
|
-
wichmann_hill(sycl::queue queue, std::uint32_t seed, std::uint32_t engine_idx);
|
|
349
|
-
|
|
350
|
-
wichmann_hill(sycl::queue queue, std::initializer_list<std::uint32_t> seed);
|
|
351
|
-
|
|
352
|
-
wichmann_hill(sycl::queue queue, std::initializer_list<std::uint32_t> seed,
|
|
353
|
-
std::uint32_t engine_idx);
|
|
354
|
-
|
|
355
|
-
wichmann_hill(const wichmann_hill& other);
|
|
356
|
-
|
|
357
|
-
wichmann_hill(wichmann_hill&& other);
|
|
358
|
-
|
|
359
|
-
wichmann_hill& operator=(const wichmann_hill& other);
|
|
360
|
-
|
|
361
|
-
wichmann_hill& operator=(wichmann_hill&& other);
|
|
362
|
-
|
|
363
|
-
~wichmann_hill();
|
|
364
|
-
|
|
365
|
-
private:
|
|
366
|
-
void skip_ahead(std::uint64_t num_to_skip);
|
|
367
|
-
|
|
368
|
-
void leapfrog(std::uint64_t idx, std::uint64_t stride);
|
|
369
|
-
|
|
370
|
-
template <typename Engine>
|
|
371
|
-
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
372
|
-
|
|
373
|
-
template <typename Engine>
|
|
374
|
-
friend void leapfrog(Engine& engine, std::uint64_t idx, std::uint64_t stride);
|
|
375
|
-
|
|
376
|
-
template <typename Distr, typename Engine>
|
|
377
|
-
friend void generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
378
|
-
sycl::buffer<typename Distr::result_type, 1>& r);
|
|
379
|
-
|
|
380
|
-
template <typename Distr, typename Engine>
|
|
381
|
-
friend sycl::event generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
382
|
-
typename Distr::result_type* r,
|
|
383
|
-
const std::vector<sycl::event>& dependencies);
|
|
384
|
-
|
|
385
|
-
template <typename Engine>
|
|
386
|
-
friend std::int64_t get_state_size(Engine& engine);
|
|
387
|
-
|
|
388
|
-
template <typename Engine>
|
|
389
|
-
friend void save_state(Engine& engine, std::uint8_t* mem);
|
|
390
|
-
|
|
391
|
-
template <typename Engine>
|
|
392
|
-
friend void save_state(Engine& engine, const std::string& filename);
|
|
393
|
-
|
|
394
|
-
template <typename Engine>
|
|
395
|
-
friend Engine load_state(const sycl::queue& queue, const std::uint8_t* mem);
|
|
396
|
-
|
|
397
|
-
template <typename Engine>
|
|
398
|
-
friend Engine load_state(const sycl::queue& queue, const std::string& filename);
|
|
399
|
-
};
|
|
400
|
-
|
|
401
|
-
// Class oneapi::mkl::rng::mt19937
|
|
402
|
-
//
|
|
403
|
-
// Represents Mersenne Twister pseudorandom number generator MT19937
|
|
404
|
-
//
|
|
405
|
-
// Supported parallelization methods:
|
|
406
|
-
// skip_ahead
|
|
407
|
-
class DLL_EXPORT mt19937 : detail::engine_base<mt19937> {
|
|
408
|
-
public:
|
|
409
|
-
static constexpr std::uint32_t default_seed = 1;
|
|
410
|
-
|
|
411
|
-
mt19937(sycl::queue queue, std::uint32_t seed = default_seed);
|
|
412
|
-
|
|
413
|
-
mt19937(sycl::queue queue, std::initializer_list<std::uint32_t> seed);
|
|
414
|
-
|
|
415
|
-
mt19937(const mt19937& other);
|
|
416
|
-
|
|
417
|
-
mt19937(mt19937&& other);
|
|
418
|
-
|
|
419
|
-
mt19937& operator=(const mt19937& other);
|
|
420
|
-
|
|
421
|
-
mt19937& operator=(mt19937&& other);
|
|
422
|
-
|
|
423
|
-
~mt19937();
|
|
424
|
-
|
|
425
|
-
private:
|
|
426
|
-
void skip_ahead(std::uint64_t num_to_skip);
|
|
427
|
-
|
|
428
|
-
template <typename Engine>
|
|
429
|
-
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
430
|
-
|
|
431
|
-
template <typename Distr, typename Engine>
|
|
432
|
-
friend void generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
433
|
-
sycl::buffer<typename Distr::result_type, 1>& r);
|
|
434
|
-
|
|
435
|
-
template <typename Distr, typename Engine>
|
|
436
|
-
friend sycl::event generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
437
|
-
typename Distr::result_type* r,
|
|
438
|
-
const std::vector<sycl::event>& dependencies);
|
|
439
|
-
|
|
440
|
-
template <typename Engine>
|
|
441
|
-
friend std::int64_t get_state_size(Engine& engine);
|
|
442
|
-
|
|
443
|
-
template <typename Engine>
|
|
444
|
-
friend void save_state(Engine& engine, std::uint8_t* mem);
|
|
445
|
-
|
|
446
|
-
template <typename Engine>
|
|
447
|
-
friend void save_state(Engine& engine, const std::string& filename);
|
|
448
|
-
|
|
449
|
-
template <typename Engine>
|
|
450
|
-
friend Engine load_state(const sycl::queue& queue, const std::uint8_t* mem);
|
|
451
|
-
|
|
452
|
-
template <typename Engine>
|
|
453
|
-
friend Engine load_state(const sycl::queue& queue, const std::string& filename);
|
|
454
|
-
};
|
|
455
|
-
|
|
456
|
-
// Class oneapi::mkl::rng::sfmt19937
|
|
457
|
-
//
|
|
458
|
-
// Represents SIMD-oriented Fast Mersenne Twister pseudorandom number generator SFMT19937
|
|
459
|
-
//
|
|
460
|
-
// Supported parallelization methods:
|
|
461
|
-
// skip_ahead
|
|
462
|
-
class DLL_EXPORT sfmt19937 : detail::engine_base<sfmt19937> {
|
|
463
|
-
public:
|
|
464
|
-
static constexpr std::uint32_t default_seed = 1;
|
|
465
|
-
|
|
466
|
-
sfmt19937(sycl::queue queue, std::uint32_t seed = default_seed);
|
|
467
|
-
|
|
468
|
-
sfmt19937(sycl::queue queue, std::initializer_list<std::uint32_t> seed);
|
|
469
|
-
|
|
470
|
-
sfmt19937(const sfmt19937& other);
|
|
471
|
-
|
|
472
|
-
sfmt19937(sfmt19937&& other);
|
|
473
|
-
|
|
474
|
-
sfmt19937& operator=(const sfmt19937& other);
|
|
475
|
-
|
|
476
|
-
sfmt19937& operator=(sfmt19937&& other);
|
|
477
|
-
|
|
478
|
-
~sfmt19937();
|
|
479
|
-
|
|
480
|
-
private:
|
|
481
|
-
void skip_ahead(std::uint64_t num_to_skip);
|
|
482
|
-
|
|
483
|
-
template <typename Engine>
|
|
484
|
-
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
485
|
-
|
|
486
|
-
template <typename Distr, typename Engine>
|
|
487
|
-
friend void generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
488
|
-
sycl::buffer<typename Distr::result_type, 1>& r);
|
|
489
|
-
|
|
490
|
-
template <typename Distr, typename Engine>
|
|
491
|
-
friend sycl::event generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
492
|
-
typename Distr::result_type* r,
|
|
493
|
-
const std::vector<sycl::event>& dependencies);
|
|
494
|
-
|
|
495
|
-
template <typename Engine>
|
|
496
|
-
friend std::int64_t get_state_size(Engine& engine);
|
|
497
|
-
|
|
498
|
-
template <typename Engine>
|
|
499
|
-
friend void save_state(Engine& engine, std::uint8_t* mem);
|
|
500
|
-
|
|
501
|
-
template <typename Engine>
|
|
502
|
-
friend void save_state(Engine& engine, const std::string& filename);
|
|
503
|
-
|
|
504
|
-
template <typename Engine>
|
|
505
|
-
friend Engine load_state(const sycl::queue& queue, const std::uint8_t* mem);
|
|
506
|
-
|
|
507
|
-
template <typename Engine>
|
|
508
|
-
friend Engine load_state(const sycl::queue& queue, const std::string& filename);
|
|
509
|
-
};
|
|
510
|
-
|
|
511
|
-
// Class oneapi::mkl::rng::mt2203
|
|
512
|
-
//
|
|
513
|
-
// Represents Mersenne Twister pseudorandom number generator MT2203 (a set of 6024
|
|
514
|
-
// basic generators)
|
|
515
|
-
class DLL_EXPORT mt2203 : detail::engine_base<mt2203> {
|
|
516
|
-
public:
|
|
517
|
-
static constexpr std::uint32_t default_seed = 1;
|
|
518
|
-
|
|
519
|
-
mt2203(sycl::queue queue, std::uint32_t seed = default_seed);
|
|
520
|
-
|
|
521
|
-
mt2203(sycl::queue queue, std::uint32_t seed, std::uint32_t engine_idx);
|
|
522
|
-
|
|
523
|
-
mt2203(sycl::queue queue, std::initializer_list<std::uint32_t> seed);
|
|
524
|
-
|
|
525
|
-
mt2203(sycl::queue queue, std::initializer_list<std::uint32_t> seed, std::uint32_t engine_idx);
|
|
526
|
-
|
|
527
|
-
mt2203(const mt2203& other);
|
|
528
|
-
|
|
529
|
-
mt2203(mt2203&& other);
|
|
530
|
-
|
|
531
|
-
mt2203& operator=(const mt2203& other);
|
|
532
|
-
|
|
533
|
-
mt2203& operator=(mt2203&& other);
|
|
534
|
-
|
|
535
|
-
~mt2203();
|
|
536
|
-
|
|
537
|
-
private:
|
|
538
|
-
template <typename Distr, typename Engine>
|
|
539
|
-
friend void generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
540
|
-
sycl::buffer<typename Distr::result_type, 1>& r);
|
|
541
|
-
|
|
542
|
-
template <typename Distr, typename Engine>
|
|
543
|
-
friend sycl::event generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
544
|
-
typename Distr::result_type* r,
|
|
545
|
-
const std::vector<sycl::event>& dependencies);
|
|
546
|
-
|
|
547
|
-
template <typename Engine>
|
|
548
|
-
friend std::int64_t get_state_size(Engine& engine);
|
|
549
|
-
|
|
550
|
-
template <typename Engine>
|
|
551
|
-
friend void save_state(Engine& engine, std::uint8_t* mem);
|
|
552
|
-
|
|
553
|
-
template <typename Engine>
|
|
554
|
-
friend void save_state(Engine& engine, const std::string& filename);
|
|
555
|
-
|
|
556
|
-
template <typename Engine>
|
|
557
|
-
friend Engine load_state(const sycl::queue& queue, const std::uint8_t* mem);
|
|
558
|
-
|
|
559
|
-
template <typename Engine>
|
|
560
|
-
friend Engine load_state(const sycl::queue& queue, const std::string& filename);
|
|
561
|
-
};
|
|
562
|
-
|
|
563
|
-
// Class oneapi::mkl::rng::ars5
|
|
564
|
-
//
|
|
565
|
-
// Represents ARS-5 counter-based pseudorandom number generator
|
|
566
|
-
//
|
|
567
|
-
// Supported parallelization methods:
|
|
568
|
-
// skip_ahead
|
|
569
|
-
class DLL_EXPORT ars5 : detail::engine_base<ars5> {
|
|
570
|
-
public:
|
|
571
|
-
static constexpr std::uint64_t default_seed = 0;
|
|
572
|
-
|
|
573
|
-
ars5(sycl::queue queue, std::uint64_t seed = default_seed);
|
|
574
|
-
|
|
575
|
-
ars5(sycl::queue queue, std::initializer_list<std::uint64_t> seed);
|
|
576
|
-
|
|
577
|
-
ars5(const ars5& other);
|
|
578
|
-
|
|
579
|
-
ars5(ars5&& other);
|
|
580
|
-
|
|
581
|
-
ars5& operator=(const ars5& other);
|
|
582
|
-
|
|
583
|
-
ars5& operator=(ars5&& other);
|
|
584
|
-
|
|
585
|
-
~ars5();
|
|
586
|
-
|
|
587
|
-
private:
|
|
588
|
-
void skip_ahead(std::uint64_t num_to_skip);
|
|
589
|
-
|
|
590
|
-
void skip_ahead(std::initializer_list<std::uint64_t> num_to_skip);
|
|
591
|
-
|
|
592
|
-
template <typename Engine>
|
|
593
|
-
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
594
|
-
|
|
595
|
-
template <typename Engine>
|
|
596
|
-
friend void skip_ahead(Engine& engine, std::initializer_list<std::uint64_t> num_to_skip);
|
|
597
|
-
|
|
598
|
-
template <typename Distr, typename Engine>
|
|
599
|
-
friend void generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
600
|
-
sycl::buffer<typename Distr::result_type, 1>& r);
|
|
601
|
-
|
|
602
|
-
template <typename Distr, typename Engine>
|
|
603
|
-
friend sycl::event generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
604
|
-
typename Distr::result_type* r,
|
|
605
|
-
const std::vector<sycl::event>& dependencies);
|
|
606
|
-
|
|
607
|
-
template <typename Engine>
|
|
608
|
-
friend std::int64_t get_state_size(Engine& engine);
|
|
609
|
-
|
|
610
|
-
template <typename Engine>
|
|
611
|
-
friend void save_state(Engine& engine, std::uint8_t* mem);
|
|
612
|
-
|
|
613
|
-
template <typename Engine>
|
|
614
|
-
friend void save_state(Engine& engine, const std::string& filename);
|
|
615
|
-
|
|
616
|
-
template <typename Engine>
|
|
617
|
-
friend Engine load_state(const sycl::queue& queue, const std::uint8_t* mem);
|
|
618
|
-
|
|
619
|
-
template <typename Engine>
|
|
620
|
-
friend Engine load_state(const sycl::queue& queue, const std::string& filename);
|
|
621
|
-
};
|
|
622
|
-
|
|
623
|
-
// NON-DETERMINISTIC RANDOM NUMBER ENGINES
|
|
624
|
-
|
|
625
|
-
// Class oneapi::mkl::rng::nondeterministic
|
|
626
|
-
//
|
|
627
|
-
// Represents the non-deterministic random number generator
|
|
628
|
-
// (RDRAND-based)
|
|
629
|
-
class DLL_EXPORT nondeterministic : detail::engine_base<nondeterministic> {
|
|
630
|
-
public:
|
|
631
|
-
nondeterministic(sycl::queue queue);
|
|
632
|
-
|
|
633
|
-
nondeterministic(const nondeterministic& other);
|
|
634
|
-
|
|
635
|
-
nondeterministic(nondeterministic&& other);
|
|
636
|
-
|
|
637
|
-
nondeterministic& operator=(const nondeterministic& other);
|
|
638
|
-
|
|
639
|
-
nondeterministic& operator=(nondeterministic&& other);
|
|
640
|
-
|
|
641
|
-
~nondeterministic();
|
|
642
|
-
|
|
643
|
-
private:
|
|
644
|
-
template <typename Distr, typename Engine>
|
|
645
|
-
friend void generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
646
|
-
sycl::buffer<typename Distr::result_type, 1>& r);
|
|
647
|
-
|
|
648
|
-
template <typename Distr, typename Engine>
|
|
649
|
-
friend sycl::event generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
650
|
-
typename Distr::result_type* r,
|
|
651
|
-
const std::vector<sycl::event>& dependencies);
|
|
652
|
-
|
|
653
|
-
template <typename Engine>
|
|
654
|
-
friend std::int64_t get_state_size(Engine& engine);
|
|
655
|
-
|
|
656
|
-
template <typename Engine>
|
|
657
|
-
friend void save_state(Engine& engine, std::uint8_t* mem);
|
|
658
|
-
|
|
659
|
-
template <typename Engine>
|
|
660
|
-
friend void save_state(Engine& engine, const std::string& filename);
|
|
661
|
-
|
|
662
|
-
template <typename Engine>
|
|
663
|
-
friend Engine load_state(const sycl::queue& queue, const std::uint8_t* mem);
|
|
664
|
-
|
|
665
|
-
template <typename Engine>
|
|
666
|
-
friend Engine load_state(const sycl::queue& queue, const std::string& filename);
|
|
667
|
-
};
|
|
668
|
-
|
|
669
|
-
// QUASI-RANDOM NUMBER ENGINES
|
|
670
|
-
|
|
671
|
-
// Class oneapi::mkl::rng::sobol
|
|
672
|
-
//
|
|
673
|
-
// Represents the Sobol quasi-random number generator
|
|
674
|
-
//
|
|
675
|
-
// Supported parallelization methods:
|
|
676
|
-
// skip_ahead
|
|
677
|
-
class DLL_EXPORT sobol : detail::engine_base<sobol> {
|
|
678
|
-
public:
|
|
679
|
-
static constexpr std::uint32_t default_dimensions_number = 1;
|
|
680
|
-
|
|
681
|
-
sobol(sycl::queue queue, std::uint32_t dimensions = default_dimensions_number);
|
|
682
|
-
|
|
683
|
-
sobol(sycl::queue queue, std::vector<std::uint32_t>& direction_numbers);
|
|
684
|
-
|
|
685
|
-
sobol(const sobol& other);
|
|
686
|
-
|
|
687
|
-
sobol(sobol&& other);
|
|
688
|
-
|
|
689
|
-
sobol& operator=(const sobol& other);
|
|
690
|
-
|
|
691
|
-
sobol& operator=(sobol&& other);
|
|
692
|
-
|
|
693
|
-
~sobol();
|
|
694
|
-
|
|
695
|
-
private:
|
|
696
|
-
void skip_ahead(std::uint64_t num_to_skip);
|
|
697
|
-
|
|
698
|
-
template <typename Engine>
|
|
699
|
-
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
700
|
-
|
|
701
|
-
template <typename Distr, typename Engine>
|
|
702
|
-
friend void generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
703
|
-
sycl::buffer<typename Distr::result_type, 1>& r);
|
|
704
|
-
|
|
705
|
-
template <typename Distr, typename Engine>
|
|
706
|
-
friend sycl::event generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
707
|
-
typename Distr::result_type* r,
|
|
708
|
-
const std::vector<sycl::event>& dependencies);
|
|
709
|
-
|
|
710
|
-
template <typename Engine>
|
|
711
|
-
friend std::int64_t get_state_size(Engine& engine);
|
|
712
|
-
|
|
713
|
-
template <typename Engine>
|
|
714
|
-
friend void save_state(Engine& engine, std::uint8_t* mem);
|
|
715
|
-
|
|
716
|
-
template <typename Engine>
|
|
717
|
-
friend void save_state(Engine& engine, const std::string& filename);
|
|
718
|
-
|
|
719
|
-
template <typename Engine>
|
|
720
|
-
friend Engine load_state(const sycl::queue& queue, const std::uint8_t* mem);
|
|
721
|
-
|
|
722
|
-
template <typename Engine>
|
|
723
|
-
friend Engine load_state(const sycl::queue& queue, const std::string& filename);
|
|
724
|
-
};
|
|
725
|
-
|
|
726
|
-
// Class oneapi::mkl::rng::niederreiter
|
|
727
|
-
//
|
|
728
|
-
// Represents the Niederreiter quasi-random number generator
|
|
729
|
-
//
|
|
730
|
-
// Supported parallelization methods:
|
|
731
|
-
// skip_ahead
|
|
732
|
-
class DLL_EXPORT niederreiter : detail::engine_base<niederreiter> {
|
|
733
|
-
public:
|
|
734
|
-
static constexpr std::uint32_t default_dimensions_number = 1;
|
|
735
|
-
|
|
736
|
-
niederreiter(sycl::queue queue, std::uint32_t dimensions = default_dimensions_number);
|
|
737
|
-
|
|
738
|
-
niederreiter(sycl::queue queue, std::vector<std::uint32_t>& irred_polynomials);
|
|
739
|
-
|
|
740
|
-
niederreiter(const niederreiter& other);
|
|
741
|
-
|
|
742
|
-
niederreiter(niederreiter&& other);
|
|
743
|
-
|
|
744
|
-
niederreiter& operator=(const niederreiter& other);
|
|
745
|
-
|
|
746
|
-
niederreiter& operator=(niederreiter&& other);
|
|
747
|
-
|
|
748
|
-
~niederreiter();
|
|
749
|
-
|
|
750
|
-
private:
|
|
751
|
-
void skip_ahead(std::uint64_t num_to_skip);
|
|
752
|
-
|
|
753
|
-
template <typename Engine>
|
|
754
|
-
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
755
|
-
|
|
756
|
-
template <typename Distr, typename Engine>
|
|
757
|
-
friend void generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
758
|
-
sycl::buffer<typename Distr::result_type, 1>& r);
|
|
759
|
-
|
|
760
|
-
template <typename Distr, typename Engine>
|
|
761
|
-
friend sycl::event generate(const Distr& distr, Engine& engine, std::int64_t n,
|
|
762
|
-
typename Distr::result_type* r,
|
|
763
|
-
const std::vector<sycl::event>& dependencies);
|
|
764
|
-
|
|
765
|
-
template <typename Engine>
|
|
766
|
-
friend std::int64_t get_state_size(Engine& engine);
|
|
767
|
-
|
|
768
|
-
template <typename Engine>
|
|
769
|
-
friend void save_state(Engine& engine, std::uint8_t* mem);
|
|
770
|
-
|
|
771
|
-
template <typename Engine>
|
|
772
|
-
friend void save_state(Engine& engine, const std::string& filename);
|
|
773
|
-
|
|
774
|
-
template <typename Engine>
|
|
775
|
-
friend Engine load_state(const sycl::queue& queue, const std::uint8_t* mem);
|
|
776
|
-
|
|
777
|
-
template <typename Engine>
|
|
778
|
-
friend Engine load_state(const sycl::queue& queue, const std::string& filename);
|
|
779
|
-
};
|
|
780
|
-
|
|
781
|
-
// default engine to be used for common cases
|
|
782
|
-
using default_engine = philox4x32x10;
|
|
783
|
-
|
|
784
|
-
} // namespace rng
|
|
785
|
-
} // namespace mkl
|
|
786
|
-
} // namespace oneapi
|
|
787
|
-
|
|
788
|
-
#endif // _MKL_RNG_ENGINES_HPP_
|