Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
random.cpp
Go to the documentation of this file.
2
3#include <limits>
4
6
7namespace storm {
8namespace utility {
10 std::random_device rd;
11 engine = std::mt19937(rd());
12}
13
14RandomProbabilityGenerator<double>::RandomProbabilityGenerator(uint64_t seed) : distribution(0.0, 1.0), engine(seed) {}
15
17 return distribution(engine);
18}
19
21 return std::uniform_int_distribution<uint64_t>(min, max)(engine);
22}
23
24RandomProbabilityGenerator<RationalNumber>::RandomProbabilityGenerator() : distribution(0, std::numeric_limits<uint64_t>::max()) {
25 std::random_device rd;
26 engine = std::mt19937(rd());
27}
28
29RandomProbabilityGenerator<RationalNumber>::RandomProbabilityGenerator(uint64_t seed) : distribution(0, std::numeric_limits<uint64_t>::max()), engine(seed) {}
30
32 return storm::utility::convertNumber<RationalNumber>(distribution(engine)) /
33 storm::utility::convertNumber<RationalNumber>(std::numeric_limits<uint64_t>::max());
34}
35
37 return std::uniform_int_distribution<uint64_t>(min, max)(engine);
38}
39
41
42bool BernoulliDistributionGenerator::random(boost::mt19937& engine) {
43 return distribution(engine);
44}
45
47
48double ExponentialDistributionGenerator::random(boost::mt19937& engine) {
49 return distribution(engine);
50}
51} // namespace utility
52} // namespace storm
bool random(boost::mt19937 &engine)
Definition random.cpp:42
double random(boost::mt19937 &engine)
Definition random.cpp:48
uint64_t random_uint(uint64_t min, uint64_t max)
Definition random.cpp:36
ValueType max(ValueType const &first, ValueType const &second)
ValueType min(ValueType const &first, ValueType const &second)
TargetType convertNumber(SourceType const &number)