23 std::uniform_int_distribution<u8> dist{min_bound, max_bound};
29 std::uniform_int_distribution<u16> dist{min_bound, max_bound};
35 std::uniform_int_distribution<u32> dist{min_bound, max_bound};
41 std::uniform_int_distribution<u64> dist{min_bound, max_bound};
47 std::uniform_int_distribution<i8> dist{min_bound, max_bound};
53 std::uniform_int_distribution<i16> dist{min_bound, max_bound};
59 std::uniform_int_distribution<i32> dist{min_bound, max_bound};
65 std::uniform_int_distribution<i64> dist{min_bound, max_bound};
71 std::uniform_real_distribution<f32> dist{min_bound, max_bound};
77 std::uniform_real_distribution<f64> dist{min_bound, max_bound};
83 sycl::vec<_arg_, 2> mock_value( \
84 std::mt19937 &eng, sycl::vec<_arg_, 2> min_bound, sycl::vec<_arg_, 2> max_bound) { \
86 mock_value(eng, min_bound.x(), max_bound.x()), \
87 mock_value(eng, min_bound.y(), max_bound.y())}; \
92 sycl::vec<_arg_, 3> mock_value( \
93 std::mt19937 &eng, sycl::vec<_arg_, 3> min_bound, sycl::vec<_arg_, 3> max_bound) { \
95 mock_value(eng, min_bound.x(), max_bound.x()), \
96 mock_value(eng, min_bound.y(), max_bound.y()), \
97 mock_value(eng, min_bound.z(), max_bound.z())}; \
102 sycl::vec<_arg_, 4> mock_value( \
103 std::mt19937 &eng, sycl::vec<_arg_, 4> min_bound, sycl::vec<_arg_, 4> max_bound) { \
105 mock_value(eng, min_bound.x(), max_bound.x()), \
106 mock_value(eng, min_bound.y(), max_bound.y()), \
107 mock_value(eng, min_bound.z(), max_bound.z()), \
108 mock_value(eng, min_bound.w(), max_bound.w())}; \
113 sycl::vec<_arg_, 8> mock_value( \
114 std::mt19937 &eng, sycl::vec<_arg_, 8> min_bound, sycl::vec<_arg_, 8> max_bound) { \
116 mock_value(eng, min_bound.s0(), max_bound.s0()), \
117 mock_value(eng, min_bound.s1(), max_bound.s1()), \
118 mock_value(eng, min_bound.s2(), max_bound.s2()), \
119 mock_value(eng, min_bound.s3(), max_bound.s3()), \
120 mock_value(eng, min_bound.s4(), max_bound.s4()), \
121 mock_value(eng, min_bound.s5(), max_bound.s5()), \
122 mock_value(eng, min_bound.s6(), max_bound.s6()), \
123 mock_value(eng, min_bound.s7(), max_bound.s7())}; \
128 sycl::vec<_arg_, 16> mock_value( \
129 std::mt19937 &eng, sycl::vec<_arg_, 16> min_bound, sycl::vec<_arg_, 16> max_bound) { \
131 mock_value(eng, min_bound.s0(), max_bound.s0()), \
132 mock_value(eng, min_bound.s1(), max_bound.s1()), \
133 mock_value(eng, min_bound.s2(), max_bound.s2()), \
134 mock_value(eng, min_bound.s3(), max_bound.s3()), \
135 mock_value(eng, min_bound.s4(), max_bound.s4()), \
136 mock_value(eng, min_bound.s5(), max_bound.s5()), \
137 mock_value(eng, min_bound.s6(), max_bound.s6()), \
138 mock_value(eng, min_bound.s7(), max_bound.s7()), \
139 mock_value(eng, min_bound.s8(), max_bound.s8()), \
140 mock_value(eng, min_bound.s9(), max_bound.s9()), \
141 mock_value(eng, min_bound.sA(), max_bound.sA()), \
142 mock_value(eng, min_bound.sB(), max_bound.sB()), \
143 mock_value(eng, min_bound.sC(), max_bound.sC()), \
144 mock_value(eng, min_bound.sD(), max_bound.sD()), \
145 mock_value(eng, min_bound.sE(), max_bound.sE()), \
146 mock_value(eng, min_bound.sF(), max_bound.sF())}; \
149#define X(_arg_) X2(_arg_) X3(_arg_) X4(_arg_) X8(_arg_) X16(_arg_)
175 std::uniform_int_distribution<u8> dist{min_bound, max_bound};
181 std::uniform_int_distribution<u16> dist{min_bound, max_bound};
187 std::uniform_int_distribution<u32> dist{min_bound, max_bound};
193 std::uniform_int_distribution<u64> dist{min_bound, max_bound};
199 std::uniform_int_distribution<i8> dist{min_bound, max_bound};
205 std::uniform_int_distribution<i16> dist{min_bound, max_bound};
211 std::uniform_int_distribution<i32> dist{min_bound, max_bound};
217 std::uniform_int_distribution<i64> dist{min_bound, max_bound};
223 std::uniform_real_distribution<f32> dist{min_bound, max_bound};
229 std::uniform_real_distribution<f64> dist{min_bound, max_bound};
235 sycl::vec<_arg_, 2> mock_value( \
236 std::mt19937_64 &eng, sycl::vec<_arg_, 2> min_bound, sycl::vec<_arg_, 2> max_bound) { \
238 mock_value(eng, min_bound.x(), max_bound.x()), \
239 mock_value(eng, min_bound.y(), max_bound.y())}; \
244 sycl::vec<_arg_, 3> mock_value( \
245 std::mt19937_64 &eng, sycl::vec<_arg_, 3> min_bound, sycl::vec<_arg_, 3> max_bound) { \
247 mock_value(eng, min_bound.x(), max_bound.x()), \
248 mock_value(eng, min_bound.y(), max_bound.y()), \
249 mock_value(eng, min_bound.z(), max_bound.z())}; \
254 sycl::vec<_arg_, 4> mock_value( \
255 std::mt19937_64 &eng, sycl::vec<_arg_, 4> min_bound, sycl::vec<_arg_, 4> max_bound) { \
257 mock_value(eng, min_bound.x(), max_bound.x()), \
258 mock_value(eng, min_bound.y(), max_bound.y()), \
259 mock_value(eng, min_bound.z(), max_bound.z()), \
260 mock_value(eng, min_bound.w(), max_bound.w())}; \
265 sycl::vec<_arg_, 8> mock_value( \
266 std::mt19937_64 &eng, sycl::vec<_arg_, 8> min_bound, sycl::vec<_arg_, 8> max_bound) { \
268 mock_value(eng, min_bound.s0(), max_bound.s0()), \
269 mock_value(eng, min_bound.s1(), max_bound.s1()), \
270 mock_value(eng, min_bound.s2(), max_bound.s2()), \
271 mock_value(eng, min_bound.s3(), max_bound.s3()), \
272 mock_value(eng, min_bound.s4(), max_bound.s4()), \
273 mock_value(eng, min_bound.s5(), max_bound.s5()), \
274 mock_value(eng, min_bound.s6(), max_bound.s6()), \
275 mock_value(eng, min_bound.s7(), max_bound.s7())}; \
280 sycl::vec<_arg_, 16> mock_value( \
281 std::mt19937_64 &eng, sycl::vec<_arg_, 16> min_bound, sycl::vec<_arg_, 16> max_bound) { \
283 mock_value(eng, min_bound.s0(), max_bound.s0()), \
284 mock_value(eng, min_bound.s1(), max_bound.s1()), \
285 mock_value(eng, min_bound.s2(), max_bound.s2()), \
286 mock_value(eng, min_bound.s3(), max_bound.s3()), \
287 mock_value(eng, min_bound.s4(), max_bound.s4()), \
288 mock_value(eng, min_bound.s5(), max_bound.s5()), \
289 mock_value(eng, min_bound.s6(), max_bound.s6()), \
290 mock_value(eng, min_bound.s7(), max_bound.s7()), \
291 mock_value(eng, min_bound.s8(), max_bound.s8()), \
292 mock_value(eng, min_bound.s9(), max_bound.s9()), \
293 mock_value(eng, min_bound.sA(), max_bound.sA()), \
294 mock_value(eng, min_bound.sB(), max_bound.sB()), \
295 mock_value(eng, min_bound.sC(), max_bound.sC()), \
296 mock_value(eng, min_bound.sD(), max_bound.sD()), \
297 mock_value(eng, min_bound.sE(), max_bound.sE()), \
298 mock_value(eng, min_bound.sF(), max_bound.sF())}; \
301#define X(_arg_) X2(_arg_) X3(_arg_) X4(_arg_) X8(_arg_) X16(_arg_)
double f64
Alias for double.
float f32
Alias for float.
std::int8_t i8
8 bit integer
std::uint8_t u8
8 bit unsigned integer
std::uint32_t u32
32 bit unsigned integer
std::uint64_t u64
64 bit unsigned integer
std::uint16_t u16
16 bit unsigned integer
std::int16_t i16
16 bit integer
std::int64_t i64
64 bit integer
std::int32_t i32
32 bit integer
Utility functions for generating random mock values.
namespace for primitive algorithm (e.g. sort, scan, reductions, ...)
T mock_value(Engine &eng, T min_bound, T max_bound)
Generates a random mock value within specified bounds.