mkl-devel-dpcpp 2025.1.0__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.

Files changed (103) hide show
  1. {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl.lib +0 -0
  2. mkl_devel_dpcpp-2025.2.0.data/data/Library/lib/mkl_sycl_dft_dll.lib +0 -0
  3. {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_dll.lib +0 -0
  4. mkl_devel_dpcpp-2025.2.0.data/data/Library/lib/mkl_sycl_lapack_dll.lib +0 -0
  5. {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_rng_dll.lib +0 -0
  6. mkl_devel_dpcpp-2025.2.0.data/data/Library/lib/mkl_sycl_sparse_dll.lib +0 -0
  7. {mkl_devel_dpcpp-2025.1.0.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/METADATA +4 -3
  8. mkl_devel_dpcpp-2025.2.0.dist-info/RECORD +15 -0
  9. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/bfloat16.hpp +0 -26
  10. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/buffer.hpp +0 -42
  11. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/buffer_decls.hpp +0 -880
  12. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/spec.hpp +0 -42
  13. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/types.hpp +0 -60
  14. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/usm.hpp +0 -42
  15. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas/usm_decls.hpp +0 -1240
  16. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/blas.hpp +0 -34
  17. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/dft/spec.hpp +0 -42
  18. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/dft.hpp +0 -254
  19. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/dfti.hpp +0 -22
  20. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/exceptions.hpp +0 -110
  21. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/experimental/data_fitting/interpolate.hpp +0 -67
  22. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/experimental/data_fitting/spline_and_data_params.hpp +0 -68
  23. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/experimental/data_fitting/splines.hpp +0 -177
  24. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/experimental/data_fitting.hpp +0 -22
  25. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/export.hpp +0 -25
  26. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack/concepts.hpp +0 -55
  27. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack/exceptions.hpp +0 -75
  28. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack/lapack.hpp +0 -1096
  29. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack/scratchpad.hpp +0 -107
  30. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack/spec.hpp +0 -42
  31. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/lapack.hpp +0 -24
  32. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/detail/engine_base.hpp +0 -48
  33. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/bernoulli_impl.hpp +0 -89
  34. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/beta_impl.hpp +0 -463
  35. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/bits_impl.hpp +0 -71
  36. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/distribution_base.hpp +0 -85
  37. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/engine_base.hpp +0 -43
  38. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/engine_helpers_base.hpp +0 -54
  39. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/exponential_impl.hpp +0 -116
  40. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/gamma_impl.hpp +0 -285
  41. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/gaussian_impl.hpp +0 -270
  42. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/geometric_impl.hpp +0 -99
  43. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/lognormal_impl.hpp +0 -105
  44. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg31m1_helpers_impl.hpp +0 -117
  45. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg31m1_impl.hpp +0 -223
  46. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg59_helpers_impl.hpp +0 -118
  47. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg59_impl.hpp +0 -266
  48. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_helpers_impl.hpp +0 -125
  49. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_impl.hpp +0 -385
  50. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_skip_ahead_matrix.hpp +0 -3668
  51. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/philox4x32x10_helpers_impl.hpp +0 -141
  52. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/philox4x32x10_impl.hpp +0 -552
  53. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/poisson_impl.hpp +0 -328
  54. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/types.hpp +0 -58
  55. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/uniform_bits_impl.hpp +0 -51
  56. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/uniform_impl.hpp +0 -287
  57. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/detail/vm_wrappers.hpp +0 -183
  58. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/distributions.hpp +0 -700
  59. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/engine_helpers.hpp +0 -116
  60. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/engines.hpp +0 -187
  61. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/functions.hpp +0 -59
  62. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device/types.hpp +0 -79
  63. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/device.hpp +0 -29
  64. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/distributions.hpp +0 -1913
  65. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/engines.hpp +0 -788
  66. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/functions.hpp +0 -163
  67. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng/spec.hpp +0 -42
  68. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/rng.hpp +0 -23
  69. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spblas/sparse_auxiliary.hpp +0 -111
  70. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spblas/sparse_operations.hpp +0 -446
  71. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spblas/sparse_structures.hpp +0 -193
  72. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spblas/spec.hpp +0 -42
  73. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spblas.hpp +0 -33
  74. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/spec.hpp +0 -42
  75. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/stats/spec.hpp +0 -42
  76. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/stats.hpp +0 -357
  77. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/types.hpp +0 -321
  78. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/buffer.hpp +0 -3529
  79. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/decls.hpp +0 -280
  80. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/decls.hpp +0 -81
  81. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/dispatch.hpp +0 -1059
  82. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/ep.hpp +0 -861
  83. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/ha.hpp +0 -860
  84. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/la.hpp +0 -860
  85. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/rts.hpp +0 -4608
  86. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/detail/scalar.hpp +0 -8963
  87. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/device/vm.hpp +0 -460
  88. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/span.hpp +0 -3813
  89. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/spec.hpp +0 -42
  90. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm/usm.hpp +0 -3581
  91. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl/vm.hpp +0 -31
  92. mkl_devel_dpcpp-2025.1.0.data/data/Library/include/oneapi/mkl.hpp +0 -35
  93. mkl_devel_dpcpp-2025.1.0.data/data/Library/lib/mkl_sycl_dft_dll.lib +0 -0
  94. mkl_devel_dpcpp-2025.1.0.data/data/Library/lib/mkl_sycl_lapack_dll.lib +0 -0
  95. mkl_devel_dpcpp-2025.1.0.data/data/Library/lib/mkl_sycl_sparse_dll.lib +0 -0
  96. mkl_devel_dpcpp-2025.1.0.dist-info/RECORD +0 -99
  97. {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_blas_dll.lib +0 -0
  98. {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_data_fitting_dll.lib +0 -0
  99. {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_stats_dll.lib +0 -0
  100. {mkl_devel_dpcpp-2025.1.0.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_vm_dll.lib +0 -0
  101. {mkl_devel_dpcpp-2025.1.0.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/LICENSE.txt +0 -0
  102. {mkl_devel_dpcpp-2025.1.0.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/WHEEL +0 -0
  103. {mkl_devel_dpcpp-2025.1.0.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/top_level.txt +0 -0
@@ -1,788 +0,0 @@
1
- /*******************************************************************************
2
- * Copyright (C) 2019 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_