5 #ifndef STORAGE_LEVELDB_UTIL_RANDOM_H_ 6 #define STORAGE_LEVELDB_UTIL_RANDOM_H_ 19 explicit Random(uint32_t s) : seed_(s & 0x7fffffffu) {
21 if (seed_ == 0 || seed_ == 2147483647L) {
26 static const uint32_t M = 2147483647L;
27 static const uint64_t A = 16807;
34 uint64_t product = seed_ * A;
37 seed_ =
static_cast<uint32_t
>((product >> 31) + (product & M));
64 #endif // STORAGE_LEVELDB_UTIL_RANDOM_H_
uint32_t Skewed(int max_log)