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.

Files changed (94) hide show
  1. {mkl_devel_dpcpp-2025.0.1.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl.lib +0 -0
  2. {mkl_devel_dpcpp-2025.0.1.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_blas_dll.lib +0 -0
  3. mkl_devel_dpcpp-2025.2.0.data/data/Library/lib/mkl_sycl_dft_dll.lib +0 -0
  4. {mkl_devel_dpcpp-2025.0.1.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_dll.lib +0 -0
  5. mkl_devel_dpcpp-2025.2.0.data/data/Library/lib/mkl_sycl_lapack_dll.lib +0 -0
  6. {mkl_devel_dpcpp-2025.0.1.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_rng_dll.lib +0 -0
  7. mkl_devel_dpcpp-2025.2.0.data/data/Library/lib/mkl_sycl_sparse_dll.lib +0 -0
  8. {mkl_devel_dpcpp-2025.0.1.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/METADATA +4 -3
  9. mkl_devel_dpcpp-2025.2.0.dist-info/RECORD +15 -0
  10. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/bfloat16.hpp +0 -26
  11. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/blas/buffer.hpp +0 -42
  12. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/blas/buffer_decls.hpp +0 -880
  13. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/blas/types.hpp +0 -60
  14. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/blas/usm.hpp +0 -42
  15. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/blas/usm_decls.hpp +0 -1240
  16. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/blas.hpp +0 -33
  17. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/dft.hpp +0 -253
  18. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/dfti.hpp +0 -22
  19. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/exceptions.hpp +0 -110
  20. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/experimental/data_fitting/interpolate.hpp +0 -67
  21. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/experimental/data_fitting/spline_and_data_params.hpp +0 -68
  22. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/experimental/data_fitting/splines.hpp +0 -177
  23. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/experimental/data_fitting.hpp +0 -22
  24. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/export.hpp +0 -25
  25. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/lapack/concepts.hpp +0 -55
  26. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/lapack/exceptions.hpp +0 -75
  27. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/lapack/lapack.hpp +0 -1095
  28. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/lapack/scratchpad.hpp +0 -106
  29. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/lapack.hpp +0 -23
  30. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/detail/engine_base.hpp +0 -48
  31. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/bernoulli_impl.hpp +0 -89
  32. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/beta_impl.hpp +0 -464
  33. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/bits_impl.hpp +0 -71
  34. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/distribution_base.hpp +0 -81
  35. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/engine_base.hpp +0 -43
  36. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/engine_helpers_base.hpp +0 -54
  37. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/exponential_impl.hpp +0 -116
  38. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/gamma_impl.hpp +0 -285
  39. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/gaussian_impl.hpp +0 -270
  40. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/lognormal_impl.hpp +0 -105
  41. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg31m1_helpers_impl.hpp +0 -117
  42. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg31m1_impl.hpp +0 -223
  43. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg59_helpers_impl.hpp +0 -118
  44. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/mcg59_impl.hpp +0 -266
  45. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_helpers_impl.hpp +0 -125
  46. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_impl.hpp +0 -385
  47. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_skip_ahead_matrix.hpp +0 -3668
  48. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/philox4x32x10_helpers_impl.hpp +0 -141
  49. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/philox4x32x10_impl.hpp +0 -552
  50. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/poisson_impl.hpp +0 -355
  51. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/types.hpp +0 -58
  52. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/uniform_bits_impl.hpp +0 -51
  53. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/uniform_impl.hpp +0 -289
  54. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/detail/vm_wrappers.hpp +0 -183
  55. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/distributions.hpp +0 -637
  56. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/engine_helpers.hpp +0 -116
  57. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/engines.hpp +0 -187
  58. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/functions.hpp +0 -59
  59. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device/types.hpp +0 -74
  60. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/device.hpp +0 -29
  61. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/distributions.hpp +0 -1913
  62. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/engines.hpp +0 -788
  63. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng/functions.hpp +0 -163
  64. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/rng.hpp +0 -22
  65. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/spblas/sparse_auxiliary.hpp +0 -111
  66. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/spblas/sparse_operations.hpp +0 -446
  67. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/spblas/sparse_structures.hpp +0 -193
  68. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/spblas.hpp +0 -32
  69. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/stats.hpp +0 -356
  70. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/types.hpp +0 -321
  71. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/buffer.hpp +0 -3529
  72. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/decls.hpp +0 -280
  73. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/detail/decls.hpp +0 -81
  74. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/detail/dispatch.hpp +0 -1059
  75. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/detail/ep.hpp +0 -861
  76. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/detail/ha.hpp +0 -860
  77. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/detail/la.hpp +0 -860
  78. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/detail/rts.hpp +0 -4608
  79. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/detail/scalar.hpp +0 -8963
  80. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/device/vm.hpp +0 -460
  81. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/span.hpp +0 -3813
  82. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm/usm.hpp +0 -3581
  83. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl/vm.hpp +0 -30
  84. mkl_devel_dpcpp-2025.0.1.data/data/Library/include/oneapi/mkl.hpp +0 -34
  85. mkl_devel_dpcpp-2025.0.1.data/data/Library/lib/mkl_sycl_dft_dll.lib +0 -0
  86. mkl_devel_dpcpp-2025.0.1.data/data/Library/lib/mkl_sycl_lapack_dll.lib +0 -0
  87. mkl_devel_dpcpp-2025.0.1.data/data/Library/lib/mkl_sycl_sparse_dll.lib +0 -0
  88. mkl_devel_dpcpp-2025.0.1.dist-info/RECORD +0 -90
  89. {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
  90. {mkl_devel_dpcpp-2025.0.1.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_stats_dll.lib +0 -0
  91. {mkl_devel_dpcpp-2025.0.1.data → mkl_devel_dpcpp-2025.2.0.data}/data/Library/lib/mkl_sycl_vm_dll.lib +0 -0
  92. {mkl_devel_dpcpp-2025.0.1.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/LICENSE.txt +0 -0
  93. {mkl_devel_dpcpp-2025.0.1.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/WHEEL +0 -0
  94. {mkl_devel_dpcpp-2025.0.1.dist-info → mkl_devel_dpcpp-2025.2.0.dist-info}/top_level.txt +0 -0
@@ -1,637 +0,0 @@
1
- /*******************************************************************************
2
- * Copyright 2020 Intel Corporation
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing,
11
- * software distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions
14
- * and limitations under the License.
15
- *
16
- *
17
- * SPDX-License-Identifier: Apache-2.0
18
- *******************************************************************************/
19
-
20
- #ifndef _MKL_RNG_DEVICE_DISTRIBUTIONS_HPP_
21
- #define _MKL_RNG_DEVICE_DISTRIBUTIONS_HPP_
22
-
23
- #include <limits>
24
-
25
- #include "oneapi/mkl/rng/device/detail/distribution_base.hpp"
26
- #include "oneapi/mkl/rng/device/functions.hpp"
27
-
28
- namespace oneapi::mkl::rng::device {
29
-
30
- // CONTINUOUS AND DISCRETE RANDOM NUMBER DISTRIBUTIONS
31
-
32
- // Class template oneapi::mkl::rng::device::uniform
33
- //
34
- // Represents continuous and discrete uniform random number distribution
35
- //
36
- // Supported types:
37
- // float
38
- // double
39
- // std::int32_t
40
- // std::uint32_t
41
- //
42
- // Supported methods:
43
- // oneapi::mkl::rng::device::uniform_method::standard
44
- // oneapi::mkl::rng::device::uniform_method::accurate
45
- //
46
- // Input arguments:
47
- // a - left bound. 0.0 by default
48
- // b - right bound. 1.0 by default (for std::(u)int32_t std::numeric_limits<std::int32_t>::max()
49
- // is used for accurate method and 2^23 is used for standard method)
50
- //
51
- // Note: using (un)signed integer uniform distribution with uniform_method::standard method may
52
- // cause incorrect statistics of the produced random numbers (due to rounding error) if
53
- // (abs(b - a) > 2^23) || (abs(b) > 2^23) || (abs(a) > 2^23)
54
- // Please use uniform_method::accurate method instead
55
- //
56
- template <typename Type, typename Method>
57
- class uniform : detail::distribution_base<uniform<Type, Method>> {
58
- public:
59
- static_assert(std::is_same<Method, uniform_method::standard>::value ||
60
- std::is_same<Method, uniform_method::accurate>::value,
61
- "oneMKL: rng/uniform: method is incorrect");
62
-
63
- static_assert(std::is_same<Type, float>::value || std::is_same<Type, double>::value ||
64
- std::is_same<Type, std::int32_t>::value ||
65
- std::is_same<Type, std::uint32_t>::value ||
66
- std::is_same<Type, std::int64_t>::value ||
67
- std::is_same<Type, std::uint64_t>::value,
68
- "oneMKL: rng/uniform: type is not supported");
69
-
70
- using method_type = Method;
71
- using result_type = Type;
72
- using param_type = typename detail::distribution_base<uniform<Type, Method>>::param_type;
73
-
74
- uniform()
75
- : detail::distribution_base<uniform<Type, Method>>(
76
- Type(0.0),
77
- std::is_integral<Type>::value
78
- ? ((std::is_same_v<Type, std::uint64_t> || std::is_same_v<Type, std::int64_t>)
79
- ? (std::numeric_limits<Type>::max)()
80
- : (std::is_same<Method, uniform_method::standard>::value
81
- ? (1 << 23)
82
- : (std::numeric_limits<Type>::max)()))
83
- : Type(1.0)) {}
84
-
85
- explicit uniform(Type a, Type b) : detail::distribution_base<uniform<Type, Method>>(a, b) {}
86
- explicit uniform(const param_type& pt)
87
- : detail::distribution_base<uniform<Type, Method>>(pt.a_, pt.b_) {}
88
-
89
- Type a() const {
90
- return detail::distribution_base<uniform<Type, Method>>::a();
91
- }
92
-
93
- Type b() const {
94
- return detail::distribution_base<uniform<Type, Method>>::b();
95
- }
96
-
97
- param_type param() const {
98
- return detail::distribution_base<uniform<Type, Method>>::param();
99
- }
100
-
101
- void param(const param_type& pt) {
102
- detail::distribution_base<uniform<Type, Method>>::param(pt);
103
- }
104
-
105
- private:
106
- template <typename Distr, typename Engine>
107
- friend auto generate(Distr& distr, Engine& engine) ->
108
- typename std::conditional<Engine::vec_size == 1, typename Distr::result_type,
109
- sycl::vec<typename Distr::result_type, Engine::vec_size>>::type;
110
-
111
- template <typename Distr, typename Engine>
112
- friend typename Distr::result_type generate_single(Distr& distr, Engine& engine);
113
- };
114
-
115
- // Class template oneapi::mkl::rng::device::gaussian
116
- //
117
- // Represents continuous normal random number distribution
118
- //
119
- // Supported types:
120
- // float
121
- // double
122
- //
123
- // Supported methods:
124
- // oneapi::mkl::rng::device::gaussian_method::box_muller2
125
- // oneapi::mkl::rng::device::gaussian_method::icdf
126
- //
127
- // Input arguments:
128
- // mean - mean. 0 by default
129
- // stddev - standard deviation. 1.0 by default
130
- //
131
- template <typename RealType, typename Method>
132
- class gaussian : detail::distribution_base<gaussian<RealType, Method>> {
133
- public:
134
- static_assert(std::is_same<Method, gaussian_method::box_muller2>::value
135
- #if MKL_RNG_USE_BINARY_CODE
136
- || std::is_same<Method, gaussian_method::icdf>::value
137
- #endif
138
- ,
139
- "oneMKL: rng/gaussian: method is incorrect");
140
- #if !MKL_RNG_USE_BINARY_CODE
141
- static_assert(!std::is_same<Method, gaussian_method::icdf>::value, "icdf method not supported");
142
- #endif
143
- static_assert(std::is_same<RealType, float>::value || std::is_same<RealType, double>::value,
144
- "oneMKL: rng/gaussian: type is not supported");
145
-
146
- using method_type = Method;
147
- using result_type = RealType;
148
- using param_type = typename detail::distribution_base<gaussian<RealType, Method>>::param_type;
149
-
150
- gaussian()
151
- : detail::distribution_base<gaussian<RealType, Method>>(RealType(0.0), RealType(1.0)) {}
152
-
153
- explicit gaussian(RealType mean, RealType stddev)
154
- : detail::distribution_base<gaussian<RealType, Method>>(mean, stddev) {}
155
- explicit gaussian(const param_type& pt)
156
- : detail::distribution_base<gaussian<RealType, Method>>(pt.mean_, pt.stddev_) {}
157
-
158
- RealType mean() const {
159
- return detail::distribution_base<gaussian<RealType, Method>>::mean();
160
- }
161
-
162
- RealType stddev() const {
163
- return detail::distribution_base<gaussian<RealType, Method>>::stddev();
164
- }
165
-
166
- param_type param() const {
167
- return detail::distribution_base<gaussian<RealType, Method>>::param();
168
- }
169
-
170
- void param(const param_type& pt) {
171
- detail::distribution_base<gaussian<RealType, Method>>::param(pt);
172
- }
173
-
174
- template <typename Distr, typename Engine>
175
- friend auto generate(Distr& distr, Engine& engine) ->
176
- typename std::conditional<Engine::vec_size == 1, typename Distr::result_type,
177
- sycl::vec<typename Distr::result_type, Engine::vec_size>>::type;
178
- template <typename Distr, typename Engine>
179
- friend typename Distr::result_type generate_single(Distr& distr, Engine& engine);
180
- };
181
-
182
- // Class template oneapi::mkl::rng::device::lognormal
183
- //
184
- // Represents continuous lognormal random number distribution
185
- //
186
- // Supported types:
187
- // float
188
- // double
189
- //
190
- // Supported methods:
191
- // oneapi::mkl::rng::device::lognormal_method::box_muller2
192
- //
193
- // Input arguments:
194
- // m - mean of the subject normal distribution. 0.0 by default
195
- // s - standard deviation of the subject normal distribution. 1.0 by default
196
- // displ - displacement. 0.0 by default
197
- // scale - scalefactor. 1.0 by default
198
- //
199
- template <typename RealType, typename Method>
200
- class lognormal : detail::distribution_base<lognormal<RealType, Method>> {
201
- public:
202
- static_assert(std::is_same<Method, lognormal_method::box_muller2>::value,
203
- "oneMKL: rng/lognormal: method is incorrect");
204
-
205
- static_assert(std::is_same<RealType, float>::value || std::is_same<RealType, double>::value,
206
- "oneMKL: rng/lognormal: type is not supported");
207
-
208
- using method_type = Method;
209
- using result_type = RealType;
210
- using param_type = typename detail::distribution_base<lognormal<RealType, Method>>::param_type;
211
-
212
- lognormal()
213
- : detail::distribution_base<lognormal<RealType, Method>>(
214
- RealType(0.0), RealType(1.0), RealType(0.0), RealType(1.0)) {}
215
-
216
- explicit lognormal(RealType m, RealType s, RealType displ = RealType(0.0),
217
- RealType scale = RealType(1.0))
218
- : detail::distribution_base<lognormal<RealType, Method>>(m, s, displ, scale) {}
219
- explicit lognormal(const param_type& pt)
220
- : detail::distribution_base<lognormal<RealType, Method>>(pt.m_, pt.s_, pt.displ_,
221
- pt.scale_) {}
222
-
223
- RealType m() const {
224
- return detail::distribution_base<lognormal<RealType, Method>>::m();
225
- }
226
-
227
- RealType s() const {
228
- return detail::distribution_base<lognormal<RealType, Method>>::s();
229
- }
230
-
231
- RealType displ() const {
232
- return detail::distribution_base<lognormal<RealType, Method>>::displ();
233
- }
234
-
235
- RealType scale() const {
236
- return detail::distribution_base<lognormal<RealType, Method>>::scale();
237
- }
238
-
239
- param_type param() const {
240
- return detail::distribution_base<lognormal<RealType, Method>>::param();
241
- }
242
-
243
- void param(const param_type& pt) {
244
- detail::distribution_base<lognormal<RealType, Method>>::param(pt);
245
- }
246
-
247
- template <typename Distr, typename Engine>
248
- friend auto generate(Distr& distr, Engine& engine) ->
249
- typename std::conditional<Engine::vec_size == 1, typename Distr::result_type,
250
- sycl::vec<typename Distr::result_type, Engine::vec_size>>::type;
251
- template <typename Distr, typename Engine>
252
- friend typename Distr::result_type generate_single(Distr& distr, Engine& engine);
253
- };
254
-
255
- // Class template oneapi::mkl::rng::device::beta
256
- //
257
- // Represents continuous beta random number distribution
258
- //
259
- // Supported types:
260
- // float
261
- // double
262
- //
263
- // Supported methods:
264
- // oneapi::mkl::rng::device::beta_method::cja
265
- // oneapi::mkl::rng::device::beta_method::cja_accurate
266
- //
267
- // Input arguments:
268
- // p - shape. 1.0 by default
269
- // q - shape. 0.0 by default
270
- // a - displacement. 1.0 by default
271
- // b - scalefactor. 1.0 by default
272
- //
273
- template <typename RealType, typename Method>
274
- class beta : detail::distribution_base<beta<RealType, Method>> {
275
- public:
276
- static_assert(std::is_same<Method, beta_method::cja>::value ||
277
- std::is_same<Method, beta_method::cja_accurate>::value,
278
- "oneMKL: rng/beta: method is incorrect");
279
-
280
- static_assert(std::is_same<RealType, float>::value || std::is_same<RealType, double>::value,
281
- "oneMKL: rng/beta: type is not supported");
282
-
283
- using method_type = Method;
284
- using result_type = RealType;
285
- using param_type = typename detail::distribution_base<beta<RealType, Method>>::param_type;
286
-
287
- beta()
288
- : detail::distribution_base<beta<RealType, Method>>(RealType(1.0), RealType(1.0),
289
- RealType(0.0), RealType(1.0)) {}
290
-
291
- explicit beta(RealType p, RealType q, RealType a, RealType b)
292
- : detail::distribution_base<beta<RealType, Method>>(p, q, a, b) {}
293
-
294
- explicit beta(const param_type& pt)
295
- : detail::distribution_base<beta<RealType, Method>>(pt.p_, pt.q_, pt.a_, pt.b_) {}
296
-
297
- RealType p() const {
298
- return detail::distribution_base<beta<RealType, Method>>::p();
299
- }
300
-
301
- RealType q() const {
302
- return detail::distribution_base<beta<RealType, Method>>::q();
303
- }
304
-
305
- RealType a() const {
306
- return detail::distribution_base<beta<RealType, Method>>::a();
307
- }
308
-
309
- RealType b() const {
310
- return detail::distribution_base<beta<RealType, Method>>::b();
311
- }
312
-
313
- param_type param() const {
314
- return detail::distribution_base<beta<RealType, Method>>::param();
315
- }
316
-
317
- std::size_t count_rejected_numbers() const {
318
- return detail::distribution_base<beta<RealType, Method>>::count_rejected_numbers();
319
- }
320
-
321
- void param(const param_type& pt) {
322
- detail::distribution_base<beta<RealType, Method>>::param(pt);
323
- }
324
-
325
- template <typename Distr, typename Engine>
326
- friend auto generate(Distr& distr, Engine& engine) ->
327
- typename std::conditional<Engine::vec_size == 1, typename Distr::result_type,
328
- sycl::vec<typename Distr::result_type, Engine::vec_size>>::type;
329
- template <typename Distr, typename Engine>
330
- friend typename Distr::result_type generate_single(Distr& distr, Engine& engine);
331
- };
332
-
333
- // Class template oneapi::mkl::rng::device::gamma
334
- //
335
- // Represents continuous gamma random number distribution
336
- //
337
- // Supported types:
338
- // float
339
- // double
340
- //
341
- // Supported methods:
342
- // oneapi::mkl::rng::device::gamma_method::marsaglia
343
- // oneapi::mkl::rng::device::gamma_method::marsaglia_accurate
344
- //
345
- // Input arguments:
346
- // alpha - shape. 1.0 by default
347
- // a - displacement. 0.0 by default
348
- // beta - scalefactor. 1.0 by default
349
- //
350
- template <typename RealType, typename Method>
351
- class gamma : detail::distribution_base<gamma<RealType, Method>> {
352
- public:
353
- static_assert(std::is_same<Method, gamma_method::marsaglia>::value ||
354
- std::is_same<Method, gamma_method::marsaglia_accurate>::value,
355
- "oneMKL: rng/gamma: method is incorrect");
356
-
357
- static_assert(std::is_same<RealType, float>::value || std::is_same<RealType, double>::value,
358
- "oneMKL: rng/gamma: type is not supported");
359
-
360
- using method_type = Method;
361
- using result_type = RealType;
362
- using param_type = typename detail::distribution_base<gamma<RealType, Method>>::param_type;
363
-
364
- gamma()
365
- : detail::distribution_base<gamma<RealType, Method>>(RealType(1.0), RealType(0.0),
366
- RealType(1.0)) {}
367
-
368
- explicit gamma(RealType alpha, RealType a, RealType beta)
369
- : detail::distribution_base<gamma<RealType, Method>>(alpha, a, beta) {}
370
-
371
- explicit gamma(const param_type& pt)
372
- : detail::distribution_base<gamma<RealType, Method>>(pt.alpha_, pt.a_, pt.beta_) {}
373
-
374
- RealType alpha() const {
375
- return detail::distribution_base<gamma<RealType, Method>>::alpha();
376
- }
377
-
378
- RealType a() const {
379
- return detail::distribution_base<gamma<RealType, Method>>::a();
380
- }
381
-
382
- RealType beta() const {
383
- return detail::distribution_base<gamma<RealType, Method>>::beta();
384
- }
385
-
386
- std::size_t count_rejected_numbers() const {
387
- return detail::distribution_base<gamma<RealType, Method>>::count_rejected_numbers();
388
- }
389
-
390
- param_type param() const {
391
- return detail::distribution_base<gamma<RealType, Method>>::param();
392
- }
393
-
394
- void param(const param_type& pt) {
395
- detail::distribution_base<gamma<RealType, Method>>::param(pt);
396
- }
397
-
398
- template <typename Distr, typename Engine>
399
- friend auto generate(Distr& distr, Engine& engine) ->
400
- typename std::conditional<Engine::vec_size == 1, typename Distr::result_type,
401
- sycl::vec<typename Distr::result_type, Engine::vec_size>>::type;
402
- template <typename Distr, typename Engine>
403
- friend typename Distr::result_type generate_single(Distr& distr, Engine& engine);
404
- };
405
-
406
- // Class template oneapi::mkl::rng::device::uniform_bits
407
- //
408
- // Represents discrete uniform bits random number distribution
409
- //
410
- // Supported types:
411
- // std::uint32_t
412
- // std::uint64_t
413
- //
414
- template <typename UIntType>
415
- class uniform_bits : detail::distribution_base<uniform_bits<UIntType>> {
416
- public:
417
- static_assert(std::is_same<UIntType, std::uint32_t>::value ||
418
- std::is_same<UIntType, std::uint64_t>::value,
419
- "oneMKL: rng/uniform_bits: type is not supported");
420
- using result_type = UIntType;
421
-
422
- private:
423
- template <typename Distr, typename Engine>
424
- friend auto generate(Distr& distr, Engine& engine) ->
425
- typename std::conditional<Engine::vec_size == 1, typename Distr::result_type,
426
- sycl::vec<typename Distr::result_type, Engine::vec_size>>::type;
427
-
428
- template <typename Distr, typename Engine>
429
- friend typename Distr::result_type generate_single(Distr& distr, Engine& engine);
430
- };
431
-
432
- // Class template oneapi::mkl::rng::device::bits
433
- //
434
- // Represents bits of underlying random number engine
435
- //
436
- // Supported types:
437
- // std::uint32_t for philox4x32x10, mrg32k3a and mcg31m1
438
- // std::uint64_t for mcg59 only
439
- //
440
- template <typename UIntType>
441
- class bits : detail::distribution_base<bits<UIntType>> {
442
- public:
443
- static_assert(std::is_same<UIntType, std::uint32_t>::value ||
444
- std::is_same<UIntType, std::uint64_t>::value,
445
- "oneMKL: rng/bits: type is not supported");
446
- using result_type = UIntType;
447
-
448
- private:
449
- template <typename Distr, typename Engine>
450
- friend auto generate(Distr& distr, Engine& engine) ->
451
- typename std::conditional<Engine::vec_size == 1, typename Distr::result_type,
452
- sycl::vec<typename Distr::result_type, Engine::vec_size>>::type;
453
-
454
- template <typename Distr, typename Engine>
455
- friend typename Distr::result_type generate_single(Distr& distr, Engine& engine);
456
- };
457
-
458
- // Class template oneapi::mkl::rng::device::exponential
459
- //
460
- // Represents continuous exponential random number distribution
461
- //
462
- // Supported types:
463
- // float
464
- // double
465
- //
466
- // Supported methods:
467
- // oneapi::mkl::rng::device::exponential_method::icdf
468
- // oneapi::mkl::rng::device::exponential_method::icdf_accurate
469
- //
470
- // Input arguments:
471
- // displ - displacement. 0.0 by default
472
- // scale - scalefactor. 1.0 by default
473
- //
474
- template <typename RealType, typename Method>
475
- class exponential : detail::distribution_base<exponential<RealType, Method>> {
476
- public:
477
- static_assert(std::is_same<Method, exponential_method::icdf>::value ||
478
- std::is_same<Method, exponential_method::icdf_accurate>::value,
479
- "oneMKL: rng/exponential: method is incorrect");
480
-
481
- static_assert(std::is_same<RealType, float>::value || std::is_same<RealType, double>::value,
482
- "oneMKL: rng/exponential: type is not supported");
483
-
484
- using method_type = Method;
485
- using result_type = RealType;
486
- using param_type =
487
- typename detail::distribution_base<exponential<RealType, Method>>::param_type;
488
-
489
- exponential()
490
- : detail::distribution_base<exponential<RealType, Method>>(RealType(0.0),
491
- RealType(1.0)) {}
492
-
493
- explicit exponential(RealType a, RealType beta)
494
- : detail::distribution_base<exponential<RealType, Method>>(a, beta) {}
495
-
496
- explicit exponential(const param_type& pt)
497
- : detail::distribution_base<exponential<RealType, Method>>(pt.a_, pt.beta_) {}
498
-
499
- RealType a() const {
500
- return detail::distribution_base<exponential<RealType, Method>>::a();
501
- }
502
-
503
- RealType beta() const {
504
- return detail::distribution_base<exponential<RealType, Method>>::beta();
505
- }
506
-
507
- param_type param() const {
508
- return detail::distribution_base<exponential<RealType, Method>>::param();
509
- }
510
-
511
- void param(const param_type& pt) {
512
- detail::distribution_base<exponential<RealType, Method>>::param(pt);
513
- }
514
-
515
- template <typename Distr, typename Engine>
516
- friend auto generate(Distr& distr, Engine& engine) ->
517
- typename std::conditional<Engine::vec_size == 1, typename Distr::result_type,
518
- sycl::vec<typename Distr::result_type, Engine::vec_size>>::type;
519
- template <typename Distr, typename Engine>
520
- friend typename Distr::result_type generate_single(Distr& distr, Engine& engine);
521
- };
522
-
523
- // Class template oneapi::mkl::rng::device::poisson
524
- //
525
- // Represents discrete poisson random number distribution
526
- //
527
- // Supported types:
528
- // std::int32_t
529
- // std::uint32_t
530
- //
531
- // Supported methods:
532
- // oneapi::mkl::rng::device::poisson_method::devroye
533
- //
534
- // Input arguments:
535
- // lambda - mean value. 1.0 by default
536
- //
537
- template <typename IntType, typename Method>
538
- class poisson : detail::distribution_base<poisson<IntType, Method>> {
539
- public:
540
- static_assert(std::is_same<Method, poisson_method::devroye>::value,
541
- "oneMKL: rng/poisson: method is incorrect");
542
-
543
- static_assert(std::is_same<IntType, std::int32_t>::value ||
544
- std::is_same<IntType, std::uint32_t>::value,
545
- "oneMKL: rng/poisson: type is not supported");
546
-
547
- using method_type = Method;
548
- using result_type = IntType;
549
- using param_type = typename detail::distribution_base<poisson<IntType, Method>>::param_type;
550
-
551
- poisson() : detail::distribution_base<poisson<IntType, Method>>(0.5) {}
552
-
553
- explicit poisson(double lambda) : detail::distribution_base<poisson<IntType, Method>>(lambda) {}
554
- explicit poisson(const param_type& pt)
555
- : detail::distribution_base<poisson<IntType, Method>>(pt.lambda_) {}
556
-
557
- double lambda() const {
558
- return detail::distribution_base<poisson<IntType, Method>>::lambda();
559
- }
560
-
561
- param_type param() const {
562
- return detail::distribution_base<poisson<IntType, Method>>::param();
563
- }
564
-
565
- void param(const param_type& pt) {
566
- detail::distribution_base<poisson<IntType, Method>>::param(pt);
567
- }
568
-
569
- template <typename Distr, typename Engine>
570
- friend auto generate(Distr& distr, Engine& engine) ->
571
- typename std::conditional<Engine::vec_size == 1, typename Distr::result_type,
572
- sycl::vec<typename Distr::result_type, Engine::vec_size>>::type;
573
- template <typename Distr, typename Engine>
574
- friend typename Distr::result_type generate_single(Distr& distr, Engine& engine);
575
- };
576
-
577
- // Class template oneapi::mkl::rng::device::bernoulli
578
- //
579
- // Represents discrete Bernoulli random number distribution
580
- //
581
- // Supported types:
582
- // std::uint32_t
583
- // std::int32_t
584
- //
585
- // Supported methods:
586
- // oneapi::mkl::rng::bernoulli_method::icdf;
587
- //
588
- // Input arguments:
589
- // p - success probablity of a trial. 0.5 by default
590
- //
591
- template <typename IntType, typename Method>
592
- class bernoulli : detail::distribution_base<bernoulli<IntType, Method>> {
593
- public:
594
- static_assert(std::is_same<Method, bernoulli_method::icdf>::value,
595
- "oneMKL: rng/bernoulli: method is incorrect");
596
-
597
- static_assert(std::is_same<IntType, std::int32_t>::value ||
598
- std::is_same<IntType, std::uint32_t>::value ||
599
- std::is_same<IntType, std::int16_t>::value ||
600
- std::is_same<IntType, std::uint16_t>::value ||
601
- std::is_same<IntType, std::int8_t>::value ||
602
- std::is_same<IntType, std::uint8_t>::value,
603
- "oneMKL: rng/bernoulli: type is not supported");
604
-
605
- using method_type = Method;
606
- using result_type = IntType;
607
- using param_type = typename detail::distribution_base<bernoulli<IntType, Method>>::param_type;
608
-
609
- bernoulli() : detail::distribution_base<bernoulli<IntType, Method>>(0.5f) {}
610
-
611
- explicit bernoulli(float p) : detail::distribution_base<bernoulli<IntType, Method>>(p) {}
612
- explicit bernoulli(const param_type& pt)
613
- : detail::distribution_base<bernoulli<IntType, Method>>(pt.p_) {}
614
-
615
- float p() const {
616
- return detail::distribution_base<bernoulli<IntType, Method>>::p();
617
- }
618
-
619
- param_type param() const {
620
- return detail::distribution_base<bernoulli<IntType, Method>>::param();
621
- }
622
-
623
- void param(const param_type& pt) {
624
- detail::distribution_base<bernoulli<IntType, Method>>::param(pt);
625
- }
626
-
627
- template <typename Distr, typename Engine>
628
- friend auto generate(Distr& distr, Engine& engine) ->
629
- typename std::conditional<Engine::vec_size == 1, typename Distr::result_type,
630
- sycl::vec<typename Distr::result_type, Engine::vec_size>>::type;
631
- template <typename Distr, typename Engine>
632
- friend typename Distr::result_type generate_single(Distr& distr, Engine& engine);
633
- };
634
-
635
- } // namespace oneapi::mkl::rng::device
636
-
637
- #endif // _MKL_RNG_DEVICE_DISTRIBUTIONS_HPP_