18 template <
typename T, u
int32_t seed_t, ck::enable_if_t<is_same<
float, T>{}, 
bool> = false>
 
   21     uint32_t x         = bit_cast<uint32_t>(val);
 
   24     drop_bits = ((drop_bits & 31) << 11) | (drop_bits >> 5);
 
   25     drop_bits *= 0x7000149;
 
   29     uint32_t rng = (drop_bits ^ 0x13371337 ^ (
id * 229791) ^ seed);
 
   34 template <
typename T, u
int32_t seed_t, ck::enable_if_t<is_same<_Float16, T>{}, 
bool> = false>
 
   37     uint16_t x         = bit_cast<uint16_t>(val);
 
   39     drop_bits          = ((drop_bits & 31) << 11) | (drop_bits >> 5);
 
   40     drop_bits *= 0x7000149;
 
   44     uint32_t rng = (drop_bits ^ 0x13371337 ^ (
id * 229791) ^ seed);
 
   51           ck::enable_if_t<!(is_same<float, T>{} || is_same<_Float16, T>{}), 
bool> = 
false>
 
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:19
 
int32_t index_t
Definition: ck.hpp:299
 
typename std::enable_if< B, T >::type enable_if_t
Definition: enable_if.hpp:27
 
unsigned short uint16_t
Definition: stdint.h:125
 
unsigned int uint32_t
Definition: stdint.h:126
 
unsigned char uint8_t
Definition: stdint.h:124