23 #define DEBUG_TYPE "rng"
33 RandomNumberGenerator::RandomNumberGenerator(
StringRef Salt) {
36 dbgs() <<
"Warning! Using unseeded random number generator.\n"
44 std::vector<uint32_t>
Data;
45 Data.reserve(2 + Salt.
size());
47 Data.push_back(
Seed >> 32);
49 std::copy(Salt.
begin(), Salt.
end(), Data.end());
51 std::seed_seq SeedSeq(Data.begin(), Data.end());
52 Generator.seed(SeedSeq);
static cl::opt< unsigned long long > Seed("rng-seed", cl::value_desc("seed"), cl::desc("Seed for the random number generator"), cl::init(0))
size_t size() const
size - Get the string size.
uint_fast64_t operator()()
Returns a random number in the range [0, Max).
initializer< Ty > init(const Ty &Val)
raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.
StringRef - Represent a constant reference to a string, i.e.