9 using uint8_t =
unsigned char;
10 using uint16_t =
unsigned short;
11 using uint32_t =
unsigned int;
17 template <
typename T, u
int32_t seed_t, ck::enable_if_t<std::is_same<
float, T>{},
bool> = false>
20 uint32_t x = *(
reinterpret_cast<uint32_t*
>(&val));
21 uint32_t drop_bits = uint32_t(x) & 0xFFFFu;
23 drop_bits = ((drop_bits & 31) << 11) | (drop_bits >> 5);
24 drop_bits *= 0x7000149;
28 uint32_t rng = (drop_bits ^ 0x13371337 ^ (
id * 229791) ^ seed);
33 template <
typename T, u
int32_t seed_t, ck::enable_if_t<std::is_same<_Float16, T>{},
bool> = false>
36 uint16_t x = *(
reinterpret_cast<uint16_t*
>(&val));
37 uint32_t drop_bits = uint32_t(x) & 0xFFFFu;
38 drop_bits = ((drop_bits & 31) << 11) | (drop_bits >> 5);
39 drop_bits *= 0x7000149;
43 uint32_t rng = (drop_bits ^ 0x13371337 ^ (
id * 229791) ^ seed);
50 ck::enable_if_t<!(std::is_same<float, T>{} || std::is_same<_Float16, T>{}),
bool> =
false>
51 __host__ __device__ uint32_t
prand_generator(
int id, T val, uint32_t seed = seed_t)
constexpr detail::ignore_t ignore
Definition: ignore.hpp:20
__host__ __device__ uint32_t prand_generator(index_t id, T val, uint32_t seed=seed_t)
Definition: random_gen.hpp:18
int32_t index_t
Definition: ck.hpp:289
typename std::enable_if< B, T >::type enable_if_t
Definition: enable_if.hpp:13