mkl-devel-dpcpp 2024.2.1__py2.py3-none-win_amd64.whl → 2025.0.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-2024.2.1.data/data/Library/include/oneapi/mkl/dfti.hpp → mkl_devel_dpcpp-2025.0.0.data/data/Library/include/oneapi/mkl/dft.hpp +82 -36
- mkl_devel_dpcpp-2025.0.0.data/data/Library/include/oneapi/mkl/dfti.hpp +22 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/lapack/lapack.hpp +90 -90
- mkl_devel_dpcpp-2025.0.0.data/data/Library/include/oneapi/mkl/rng/device/detail/beta_impl.hpp +464 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/distribution_base.hpp +8 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/exponential_impl.hpp +7 -0
- mkl_devel_dpcpp-2025.0.0.data/data/Library/include/oneapi/mkl/rng/device/detail/gamma_impl.hpp +285 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/mcg31m1_impl.hpp +4 -12
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/mcg59_impl.hpp +8 -20
- mkl_devel_dpcpp-2025.0.0.data/data/Library/include/oneapi/mkl/rng/device/detail/uniform_impl.hpp +289 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/vm_wrappers.hpp +42 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/distributions.hpp +172 -15
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/engines.hpp +1 -7
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/types.hpp +12 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/distributions.hpp +11 -80
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/spblas/sparse_auxiliary.hpp +43 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/spblas/sparse_operations.hpp +69 -6
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/spblas/sparse_structures.hpp +33 -34
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl.hpp +1 -1
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/lib/mkl_sycl.lib +0 -0
- mkl_devel_dpcpp-2025.0.0.data/data/Library/lib/mkl_sycl_blas_dll.lib +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/lib/mkl_sycl_data_fitting_dll.lib +0 -0
- mkl_devel_dpcpp-2025.0.0.data/data/Library/lib/mkl_sycl_dft_dll.lib +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/lib/mkl_sycl_dll.lib +0 -0
- mkl_devel_dpcpp-2025.0.0.data/data/Library/lib/mkl_sycl_lapack_dll.lib +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/lib/mkl_sycl_rng_dll.lib +0 -0
- mkl_devel_dpcpp-2025.0.0.data/data/Library/lib/mkl_sycl_sparse_dll.lib +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/lib/mkl_sycl_stats_dll.lib +0 -0
- mkl_devel_dpcpp-2025.0.0.data/data/Library/lib/mkl_sycl_vm_dll.lib +0 -0
- {mkl_devel_dpcpp-2024.2.1.dist-info → mkl_devel_dpcpp-2025.0.0.dist-info}/METADATA +3 -3
- mkl_devel_dpcpp-2025.0.0.dist-info/RECORD +90 -0
- mkl_devel_dpcpp-2024.2.1.data/data/Library/include/oneapi/mkl/rng/device/detail/uniform_impl.hpp +0 -131
- mkl_devel_dpcpp-2024.2.1.data/data/Library/lib/mkl_sycl_blas_dll.lib +0 -0
- mkl_devel_dpcpp-2024.2.1.data/data/Library/lib/mkl_sycl_dft_dll.lib +0 -0
- mkl_devel_dpcpp-2024.2.1.data/data/Library/lib/mkl_sycl_lapack_dll.lib +0 -0
- mkl_devel_dpcpp-2024.2.1.data/data/Library/lib/mkl_sycl_sparse_dll.lib +0 -0
- mkl_devel_dpcpp-2024.2.1.data/data/Library/lib/mkl_sycl_vm_dll.lib +0 -0
- mkl_devel_dpcpp-2024.2.1.dist-info/RECORD +0 -87
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/bfloat16.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/blas/buffer.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/blas/buffer_decls.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/blas/types.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/blas/usm.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/blas/usm_decls.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/blas.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/exceptions.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/experimental/data_fitting/interpolate.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/experimental/data_fitting/spline_and_data_params.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/experimental/data_fitting/splines.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/experimental/data_fitting.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/export.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/lapack/concepts.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/lapack/exceptions.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/lapack/scratchpad.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/lapack.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/detail/engine_base.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/bernoulli_impl.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/bits_impl.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/engine_base.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/engine_helpers_base.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/gaussian_impl.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/lognormal_impl.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/mcg31m1_helpers_impl.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/mcg59_helpers_impl.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_helpers_impl.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_impl.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/mrg32k3a_skip_ahead_matrix.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/philox4x32x10_helpers_impl.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/philox4x32x10_impl.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/poisson_impl.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/types.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/detail/uniform_bits_impl.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/engine_helpers.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device/functions.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/device.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/engines.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng/functions.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/rng.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/spblas.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/stats.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/types.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/vm/buffer.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/vm/decls.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/vm/device/detail/decls.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/vm/device/detail/dispatch.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/vm/device/detail/ep.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/vm/device/detail/ha.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/vm/device/detail/la.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/vm/device/detail/rts.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/vm/device/detail/scalar.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/vm/device/vm.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/vm/span.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/vm/usm.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.data → mkl_devel_dpcpp-2025.0.0.data}/data/Library/include/oneapi/mkl/vm.hpp +0 -0
- {mkl_devel_dpcpp-2024.2.1.dist-info → mkl_devel_dpcpp-2025.0.0.dist-info}/LICENSE.txt +0 -0
- {mkl_devel_dpcpp-2024.2.1.dist-info → mkl_devel_dpcpp-2025.0.0.dist-info}/WHEEL +0 -0
- {mkl_devel_dpcpp-2024.2.1.dist-info → mkl_devel_dpcpp-2025.0.0.dist-info}/top_level.txt +0 -0
|
@@ -112,6 +112,48 @@ static inline DataType ln_wrapper(DataType a) {
|
|
|
112
112
|
#endif // MKL_RNG_USE_BINARY_CODE
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
+
template <typename DataType>
|
|
116
|
+
static inline DataType pow_wrapper(DataType a, DataType b) {
|
|
117
|
+
#if MKL_RNG_USE_BINARY_CODE
|
|
118
|
+
DataType t;
|
|
119
|
+
if constexpr (std::is_same_v<DataType, double>)
|
|
120
|
+
vm_d::pow(&a, &b, &t, vm_d::mode::ep);
|
|
121
|
+
else
|
|
122
|
+
t = sycl::pow(a, b);
|
|
123
|
+
return t;
|
|
124
|
+
#else
|
|
125
|
+
return sycl::pow(a, b);
|
|
126
|
+
#endif // MKL_RNG_USE_BINARY_CODE
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
template <typename DataType>
|
|
130
|
+
static inline DataType powr_wrapper(DataType a, DataType b) {
|
|
131
|
+
#if MKL_RNG_USE_BINARY_CODE
|
|
132
|
+
DataType t;
|
|
133
|
+
if constexpr (std::is_same_v<DataType, double>)
|
|
134
|
+
vm_d::powr(&a, &b, &t, vm_d::mode::ep);
|
|
135
|
+
else
|
|
136
|
+
t = sycl::powr(a, b);
|
|
137
|
+
return t;
|
|
138
|
+
#else
|
|
139
|
+
return sycl::powr(a, b);
|
|
140
|
+
#endif // MKL_RNG_USE_BINARY_CODE
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
template <typename DataType>
|
|
144
|
+
static inline DataType exp_wrapper(DataType a) {
|
|
145
|
+
#if MKL_RNG_USE_BINARY_CODE
|
|
146
|
+
DataType t;
|
|
147
|
+
if constexpr (std::is_same_v<DataType, double>)
|
|
148
|
+
vm_d::exp(&a, &t, vm_d::mode::ep);
|
|
149
|
+
else
|
|
150
|
+
t = sycl::exp(a);
|
|
151
|
+
return t;
|
|
152
|
+
#else
|
|
153
|
+
return sycl::exp(a);
|
|
154
|
+
#endif // MKL_RNG_USE_BINARY_CODE
|
|
155
|
+
}
|
|
156
|
+
|
|
115
157
|
#if MKL_RNG_USE_BINARY_CODE
|
|
116
158
|
template <typename RealType>
|
|
117
159
|
inline RealType erf_inv_wrapper(RealType x) {
|
|
@@ -62,7 +62,9 @@ public:
|
|
|
62
62
|
|
|
63
63
|
static_assert(std::is_same<Type, float>::value || std::is_same<Type, double>::value ||
|
|
64
64
|
std::is_same<Type, std::int32_t>::value ||
|
|
65
|
-
std::is_same<Type, std::uint32_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,
|
|
66
68
|
"oneMKL: rng/uniform: type is not supported");
|
|
67
69
|
|
|
68
70
|
using method_type = Method;
|
|
@@ -71,12 +73,14 @@ public:
|
|
|
71
73
|
|
|
72
74
|
uniform()
|
|
73
75
|
: detail::distribution_base<uniform<Type, Method>>(
|
|
74
|
-
|
|
76
|
+
Type(0.0),
|
|
75
77
|
std::is_integral<Type>::value
|
|
76
|
-
? (std::
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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)) {}
|
|
80
84
|
|
|
81
85
|
explicit uniform(Type a, Type b) : detail::distribution_base<uniform<Type, Method>>(a, b) {}
|
|
82
86
|
explicit uniform(const param_type& pt)
|
|
@@ -144,8 +148,7 @@ public:
|
|
|
144
148
|
using param_type = typename detail::distribution_base<gaussian<RealType, Method>>::param_type;
|
|
145
149
|
|
|
146
150
|
gaussian()
|
|
147
|
-
: detail::distribution_base<gaussian<RealType, Method>>(
|
|
148
|
-
static_cast<RealType>(1.0)) {}
|
|
151
|
+
: detail::distribution_base<gaussian<RealType, Method>>(RealType(0.0), RealType(1.0)) {}
|
|
149
152
|
|
|
150
153
|
explicit gaussian(RealType mean, RealType stddev)
|
|
151
154
|
: detail::distribution_base<gaussian<RealType, Method>>(mean, stddev) {}
|
|
@@ -208,11 +211,10 @@ public:
|
|
|
208
211
|
|
|
209
212
|
lognormal()
|
|
210
213
|
: detail::distribution_base<lognormal<RealType, Method>>(
|
|
211
|
-
|
|
212
|
-
static_cast<RealType>(0.0), static_cast<RealType>(1.0)) {}
|
|
214
|
+
RealType(0.0), RealType(1.0), RealType(0.0), RealType(1.0)) {}
|
|
213
215
|
|
|
214
|
-
explicit lognormal(RealType m, RealType s, RealType displ =
|
|
215
|
-
RealType scale =
|
|
216
|
+
explicit lognormal(RealType m, RealType s, RealType displ = RealType(0.0),
|
|
217
|
+
RealType scale = RealType(1.0))
|
|
216
218
|
: detail::distribution_base<lognormal<RealType, Method>>(m, s, displ, scale) {}
|
|
217
219
|
explicit lognormal(const param_type& pt)
|
|
218
220
|
: detail::distribution_base<lognormal<RealType, Method>>(pt.m_, pt.s_, pt.displ_,
|
|
@@ -250,6 +252,157 @@ public:
|
|
|
250
252
|
friend typename Distr::result_type generate_single(Distr& distr, Engine& engine);
|
|
251
253
|
};
|
|
252
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
|
+
|
|
253
406
|
// Class template oneapi::mkl::rng::device::uniform_bits
|
|
254
407
|
//
|
|
255
408
|
// Represents discrete uniform bits random number distribution
|
|
@@ -334,8 +487,8 @@ public:
|
|
|
334
487
|
typename detail::distribution_base<exponential<RealType, Method>>::param_type;
|
|
335
488
|
|
|
336
489
|
exponential()
|
|
337
|
-
: detail::distribution_base<exponential<RealType, Method>>(
|
|
338
|
-
|
|
490
|
+
: detail::distribution_base<exponential<RealType, Method>>(RealType(0.0),
|
|
491
|
+
RealType(1.0)) {}
|
|
339
492
|
|
|
340
493
|
explicit exponential(RealType a, RealType beta)
|
|
341
494
|
: detail::distribution_base<exponential<RealType, Method>>(a, beta) {}
|
|
@@ -442,7 +595,11 @@ public:
|
|
|
442
595
|
"oneMKL: rng/bernoulli: method is incorrect");
|
|
443
596
|
|
|
444
597
|
static_assert(std::is_same<IntType, std::int32_t>::value ||
|
|
445
|
-
std::is_same<IntType, std::uint32_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,
|
|
446
603
|
"oneMKL: rng/bernoulli: type is not supported");
|
|
447
604
|
|
|
448
605
|
using method_type = Method;
|
|
@@ -139,9 +139,6 @@ public:
|
|
|
139
139
|
mcg31m1(std::uint32_t seed, std::uint64_t offset = 0)
|
|
140
140
|
: detail::engine_base<mcg31m1<VecSize>>(seed, offset) {}
|
|
141
141
|
|
|
142
|
-
mcg31m1(std::initializer_list<std::uint32_t> seed, std::uint64_t offset = 0)
|
|
143
|
-
: detail::engine_base<mcg31m1<VecSize>>(seed.size(), seed.begin(), offset) {}
|
|
144
|
-
|
|
145
142
|
private:
|
|
146
143
|
template <typename Engine>
|
|
147
144
|
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
@@ -170,12 +167,9 @@ public:
|
|
|
170
167
|
|
|
171
168
|
mcg59() : detail::engine_base<mcg59<VecSize>>(default_seed) {}
|
|
172
169
|
|
|
173
|
-
mcg59(std::
|
|
170
|
+
mcg59(std::uint64_t seed, std::uint64_t offset = 0)
|
|
174
171
|
: detail::engine_base<mcg59<VecSize>>(seed, offset) {}
|
|
175
172
|
|
|
176
|
-
mcg59(std::initializer_list<std::uint32_t> seed, std::uint64_t offset = 0)
|
|
177
|
-
: detail::engine_base<mcg59<VecSize>>(seed.size(), seed.begin(), offset) {}
|
|
178
|
-
|
|
179
173
|
private:
|
|
180
174
|
template <typename Engine>
|
|
181
175
|
friend void skip_ahead(Engine& engine, std::uint64_t num_to_skip);
|
|
@@ -57,6 +57,18 @@ struct icdf {};
|
|
|
57
57
|
using by_default = icdf;
|
|
58
58
|
} // namespace bernoulli_method
|
|
59
59
|
|
|
60
|
+
namespace beta_method {
|
|
61
|
+
struct cja {};
|
|
62
|
+
struct cja_accurate {};
|
|
63
|
+
using by_default = cja;
|
|
64
|
+
} // namespace beta_method
|
|
65
|
+
|
|
66
|
+
namespace gamma_method {
|
|
67
|
+
struct marsaglia {};
|
|
68
|
+
struct marsaglia_accurate {};
|
|
69
|
+
using by_default = marsaglia;
|
|
70
|
+
} // namespace gamma_method
|
|
71
|
+
|
|
60
72
|
} // namespace oneapi::mkl::rng::device
|
|
61
73
|
|
|
62
74
|
#endif // _MKL_RNG_DEVICE_TYPES_HPP_
|
|
@@ -261,22 +261,12 @@ public:
|
|
|
261
261
|
static constexpr layout layout_type = Layout;
|
|
262
262
|
|
|
263
263
|
struct param_type {
|
|
264
|
-
[[deprecated("Use the constructor with sycl::span instead")]]
|
|
265
|
-
param_type(std::uint32_t dimen, std::vector<RealType> mean, std::vector<RealType> matrix)
|
|
266
|
-
: dimen_(dimen),
|
|
267
|
-
mean_(mean),
|
|
268
|
-
matrix_(matrix) {
|
|
269
|
-
mean_span_ = sycl::span<RealType>{mean_.data(), mean_.size()};
|
|
270
|
-
matrix_span_ = sycl::span<RealType>{matrix_.data(), matrix_.size()};
|
|
271
|
-
}
|
|
272
264
|
param_type(std::uint32_t dimen, sycl::span<RealType> mean, sycl::span<RealType> matrix)
|
|
273
265
|
: dimen_(dimen),
|
|
274
266
|
mean_span_(mean),
|
|
275
267
|
matrix_span_(matrix) {}
|
|
276
268
|
|
|
277
269
|
std::uint32_t dimen_;
|
|
278
|
-
std::vector<RealType> mean_;
|
|
279
|
-
std::vector<RealType> matrix_;
|
|
280
270
|
sycl::span<RealType> mean_span_;
|
|
281
271
|
sycl::span<RealType> matrix_span_;
|
|
282
272
|
};
|
|
@@ -295,28 +285,8 @@ public:
|
|
|
295
285
|
}
|
|
296
286
|
}
|
|
297
287
|
|
|
298
|
-
[[deprecated("Use the constructor with sycl::span instead")]]
|
|
299
|
-
explicit gaussian_mv(std::uint32_t dimen, std::vector<RealType> mean,
|
|
300
|
-
std::vector<RealType> matrix)
|
|
301
|
-
: dimen_(dimen),
|
|
302
|
-
mean_(mean),
|
|
303
|
-
matrix_(matrix) {
|
|
304
|
-
mean_span_ = sycl::span<RealType>{mean_.data(), mean_.size()};
|
|
305
|
-
matrix_span_ = sycl::span<RealType>{matrix_.data(), matrix_.size()};
|
|
306
|
-
|
|
307
|
-
if ((mean.size() != dimen)) {
|
|
308
|
-
throw oneapi::mkl::invalid_argument("rng", "gaussian_mv", "'mean' vector size is incorrect");
|
|
309
|
-
}
|
|
310
|
-
if ((matrix.size() != dimen * dimen) && (matrix.size() != dimen) &&
|
|
311
|
-
(matrix.size() != dimen * (dimen + 1) / 2)) {
|
|
312
|
-
throw oneapi::mkl::invalid_argument("rng", "gaussian_mv", "'matrix' size is incorrect");
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
|
|
316
288
|
explicit gaussian_mv(const param_type& pt)
|
|
317
289
|
: dimen_(pt.dimen_),
|
|
318
|
-
mean_(pt.mean_),
|
|
319
|
-
matrix_(pt.matrix_),
|
|
320
290
|
mean_span_(pt.mean_span_),
|
|
321
291
|
matrix_span_(pt.matrix_span_) {
|
|
322
292
|
|
|
@@ -332,12 +302,12 @@ public:
|
|
|
332
302
|
return dimen_;
|
|
333
303
|
}
|
|
334
304
|
|
|
335
|
-
|
|
336
|
-
return
|
|
305
|
+
sycl::span<RealType> mean() const {
|
|
306
|
+
return mean_span_;
|
|
337
307
|
}
|
|
338
308
|
|
|
339
|
-
|
|
340
|
-
return
|
|
309
|
+
sycl::span<RealType> matrix() const {
|
|
310
|
+
return matrix_span_;
|
|
341
311
|
}
|
|
342
312
|
|
|
343
313
|
param_type param() const {
|
|
@@ -352,16 +322,12 @@ public:
|
|
|
352
322
|
throw oneapi::mkl::invalid_argument("rng", "gaussian_mv", "'matrix' size is < 0");
|
|
353
323
|
}
|
|
354
324
|
dimen_ = pt.dimen_;
|
|
355
|
-
mean_ = pt.mean_;
|
|
356
|
-
matrix_ = pt.matrix_;
|
|
357
325
|
mean_span_ = pt.mean_span_;
|
|
358
326
|
matrix_span_ = pt.matrix_span_;
|
|
359
327
|
}
|
|
360
328
|
|
|
361
329
|
private:
|
|
362
330
|
std::uint32_t dimen_;
|
|
363
|
-
std::vector<RealType> mean_;
|
|
364
|
-
std::vector<RealType> matrix_;
|
|
365
331
|
sycl::span<RealType> mean_span_;
|
|
366
332
|
sycl::span<RealType> matrix_span_;
|
|
367
333
|
};
|
|
@@ -1628,28 +1594,12 @@ public:
|
|
|
1628
1594
|
using result_type = IntType;
|
|
1629
1595
|
|
|
1630
1596
|
struct param_type {
|
|
1631
|
-
[[deprecated("Use the constructor with sycl::span instead")]]
|
|
1632
|
-
param_type(std::int32_t ntrial, std::vector<double> p) : ntrial_(ntrial), p_(p) {
|
|
1633
|
-
p_span_ = sycl::span<double>{p_.data(), p_.size()};
|
|
1634
|
-
}
|
|
1635
1597
|
param_type(std::int32_t ntrial, sycl::span<double> p) : ntrial_(ntrial), p_span_(p) {}
|
|
1636
1598
|
|
|
1637
1599
|
std::int32_t ntrial_;
|
|
1638
|
-
std::vector<double> p_;
|
|
1639
1600
|
sycl::span<double> p_span_;
|
|
1640
1601
|
};
|
|
1641
1602
|
|
|
1642
|
-
[[deprecated("Use the constructor with sycl::span instead")]]
|
|
1643
|
-
explicit multinomial(std::int32_t ntrial, std::vector<double> p) : ntrial_(ntrial), p_(p) {
|
|
1644
|
-
p_span_ = sycl::span<double>{p_.data(), p_.size()};
|
|
1645
|
-
if (ntrial < 0) {
|
|
1646
|
-
throw oneapi::mkl::invalid_argument("rng", "multinomial", "ntrial < 0");
|
|
1647
|
-
}
|
|
1648
|
-
if (p.size() < 1) {
|
|
1649
|
-
throw oneapi::mkl::invalid_argument("rng", "multinomial", "size of p < 1");
|
|
1650
|
-
}
|
|
1651
|
-
}
|
|
1652
|
-
|
|
1653
1603
|
explicit multinomial(std::int32_t ntrial, sycl::span<double> p) : ntrial_(ntrial), p_span_(p) {
|
|
1654
1604
|
if (ntrial < 0) {
|
|
1655
1605
|
throw oneapi::mkl::invalid_argument("rng", "multinomial", "ntrial < 0");
|
|
@@ -1659,7 +1609,7 @@ public:
|
|
|
1659
1609
|
}
|
|
1660
1610
|
}
|
|
1661
1611
|
|
|
1662
|
-
explicit multinomial(const param_type& pt) : ntrial_(pt.ntrial_),
|
|
1612
|
+
explicit multinomial(const param_type& pt) : ntrial_(pt.ntrial_), p_span_(pt.p_span_) {
|
|
1663
1613
|
if (pt.ntrial_ < 0) {
|
|
1664
1614
|
throw oneapi::mkl::invalid_argument("rng", "multinomial", "ntrial < 0");
|
|
1665
1615
|
}
|
|
@@ -1672,8 +1622,8 @@ public:
|
|
|
1672
1622
|
return ntrial_;
|
|
1673
1623
|
}
|
|
1674
1624
|
|
|
1675
|
-
|
|
1676
|
-
return
|
|
1625
|
+
sycl::span<double> p() const {
|
|
1626
|
+
return p_span_;
|
|
1677
1627
|
}
|
|
1678
1628
|
|
|
1679
1629
|
param_type param() const {
|
|
@@ -1688,13 +1638,11 @@ public:
|
|
|
1688
1638
|
throw oneapi::mkl::invalid_argument("rng", "multinomial", "size of p < 1");
|
|
1689
1639
|
}
|
|
1690
1640
|
ntrial_ = pt.ntrial_;
|
|
1691
|
-
p_ = pt.p_;
|
|
1692
1641
|
p_span_ = pt.p_span_;
|
|
1693
1642
|
}
|
|
1694
1643
|
|
|
1695
1644
|
private:
|
|
1696
1645
|
std::int32_t ntrial_;
|
|
1697
|
-
std::vector<double> p_;
|
|
1698
1646
|
sycl::span<double> p_span_;
|
|
1699
1647
|
};
|
|
1700
1648
|
|
|
@@ -1867,7 +1815,7 @@ private:
|
|
|
1867
1815
|
// oneapi::mkl::rng::poisson_v_method::gaussian_icdf_based
|
|
1868
1816
|
//
|
|
1869
1817
|
// Input arguments:
|
|
1870
|
-
// lambda -
|
|
1818
|
+
// lambda - span of distribution parameters
|
|
1871
1819
|
|
|
1872
1820
|
namespace poisson_v_method {
|
|
1873
1821
|
struct gaussian_icdf_based {};
|
|
@@ -1888,26 +1836,11 @@ public:
|
|
|
1888
1836
|
using result_type = IntType;
|
|
1889
1837
|
|
|
1890
1838
|
struct param_type {
|
|
1891
|
-
[[deprecated("Use the constructor with sycl::span instead")]]
|
|
1892
|
-
param_type(std::vector<double> lambda) : lambda_(lambda) {
|
|
1893
|
-
lambda_span_ = sycl::span<double>{lambda_.data(), lambda_.size()};
|
|
1894
|
-
}
|
|
1895
1839
|
param_type(sycl::span<double> lambda) : lambda_span_(lambda) {}
|
|
1896
1840
|
|
|
1897
|
-
std::vector<double> lambda_;
|
|
1898
1841
|
sycl::span<double> lambda_span_;
|
|
1899
1842
|
};
|
|
1900
1843
|
|
|
1901
|
-
[[deprecated("Use the constructor with sycl::span instead")]]
|
|
1902
|
-
explicit poisson_v(std::vector<double> lambda) : lambda_(lambda)
|
|
1903
|
-
{
|
|
1904
|
-
lambda_span_ = sycl::span<double>{lambda_.data(), lambda_.size()};
|
|
1905
|
-
if ((lambda.size() <= 0)) {
|
|
1906
|
-
throw oneapi::mkl::invalid_argument("rng", "poisson_v",
|
|
1907
|
-
"size of lambda < 0");
|
|
1908
|
-
}
|
|
1909
|
-
}
|
|
1910
|
-
|
|
1911
1844
|
explicit poisson_v(sycl::span<double> lambda) : lambda_span_(lambda) {
|
|
1912
1845
|
if ((lambda.size() <= 0)) {
|
|
1913
1846
|
throw oneapi::mkl::invalid_argument("rng", "poisson_v",
|
|
@@ -1915,14 +1848,14 @@ public:
|
|
|
1915
1848
|
}
|
|
1916
1849
|
}
|
|
1917
1850
|
|
|
1918
|
-
explicit poisson_v(const param_type& pt) :
|
|
1851
|
+
explicit poisson_v(const param_type& pt) : lambda_span_(pt.lambda_span_) {
|
|
1919
1852
|
if ((pt.lambda_span_.size() <= 0)) {
|
|
1920
1853
|
throw oneapi::mkl::invalid_argument("rng", "poisson_v", "size of lambda < 0");
|
|
1921
1854
|
}
|
|
1922
1855
|
}
|
|
1923
1856
|
|
|
1924
|
-
|
|
1925
|
-
return
|
|
1857
|
+
sycl::span<double> lambda() const {
|
|
1858
|
+
return lambda_span_;
|
|
1926
1859
|
}
|
|
1927
1860
|
|
|
1928
1861
|
param_type param() const {
|
|
@@ -1933,12 +1866,10 @@ public:
|
|
|
1933
1866
|
if ((pt.lambda_span_.size() <= 0)) {
|
|
1934
1867
|
throw oneapi::mkl::invalid_argument("rng", "poisson_v", "size of lambda < 0");
|
|
1935
1868
|
}
|
|
1936
|
-
lambda_ = pt.lambda_;
|
|
1937
1869
|
lambda_span_ = pt.lambda_span_;
|
|
1938
1870
|
}
|
|
1939
1871
|
|
|
1940
1872
|
private:
|
|
1941
|
-
std::vector<double> lambda_;
|
|
1942
1873
|
sycl::span<double> lambda_span_;
|
|
1943
1874
|
};
|
|
1944
1875
|
|
|
@@ -38,6 +38,49 @@ DLL_EXPORT sycl::event omatcopy(sycl::queue &queue,
|
|
|
38
38
|
matrix_handle_t spMat_out,
|
|
39
39
|
const std::vector<sycl::event> &dependencies = {});
|
|
40
40
|
|
|
41
|
+
/******************************************************************************/
|
|
42
|
+
DLL_EXPORT void omatconvert_buffer_size(
|
|
43
|
+
sycl::queue &queue,
|
|
44
|
+
matrix_handle_t spMat_in,
|
|
45
|
+
matrix_handle_t spMat_out,
|
|
46
|
+
omatconvert_alg alg,
|
|
47
|
+
omatconvert_descr_t descr,
|
|
48
|
+
std::int64_t &sizeTempWorkspace);
|
|
49
|
+
|
|
50
|
+
DLL_EXPORT void omatconvert_analyze(
|
|
51
|
+
sycl::queue &queue,
|
|
52
|
+
matrix_handle_t spMat_in,
|
|
53
|
+
matrix_handle_t spMat_out,
|
|
54
|
+
omatconvert_alg alg,
|
|
55
|
+
omatconvert_descr_t descr,
|
|
56
|
+
sycl::buffer<std::uint8_t, 1> *tempWorkspace);
|
|
57
|
+
|
|
58
|
+
DLL_EXPORT sycl::event omatconvert_analyze(
|
|
59
|
+
sycl::queue &queue,
|
|
60
|
+
matrix_handle_t spMat_in,
|
|
61
|
+
matrix_handle_t spMat_out,
|
|
62
|
+
omatconvert_alg alg,
|
|
63
|
+
omatconvert_descr_t descr,
|
|
64
|
+
void *tempWorkspace,
|
|
65
|
+
const std::vector<sycl::event> &dependencies = {});
|
|
66
|
+
|
|
67
|
+
DLL_EXPORT void omatconvert_get_nnz(
|
|
68
|
+
sycl::queue &queue,
|
|
69
|
+
matrix_handle_t spMat_in,
|
|
70
|
+
matrix_handle_t spMat_out,
|
|
71
|
+
omatconvert_alg alg,
|
|
72
|
+
omatconvert_descr_t descr,
|
|
73
|
+
std::int64_t &nnzOut,
|
|
74
|
+
const std::vector<sycl::event> &dependencies = {});
|
|
75
|
+
|
|
76
|
+
DLL_EXPORT sycl::event omatconvert (
|
|
77
|
+
sycl::queue &queue,
|
|
78
|
+
oneapi::mkl::sparse::matrix_handle_t spMat_in,
|
|
79
|
+
oneapi::mkl::sparse::matrix_handle_t spMat_out,
|
|
80
|
+
omatconvert_alg alg,
|
|
81
|
+
omatconvert_descr_t descr,
|
|
82
|
+
const std::vector<sycl::event> &dependencies = {});
|
|
83
|
+
|
|
41
84
|
/******************************************************************************/
|
|
42
85
|
DLL_EXPORT sycl::event sort_matrix(sycl::queue &queue,
|
|
43
86
|
matrix_handle_t spMat,
|