Storm 1.11.1.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
random.h
Go to the documentation of this file.
1#pragma once
2
3#include <boost/random.hpp>
4#include <random>
5
7
8namespace storm {
9namespace utility {
10template<typename ValueType>
12 public:
14 RandomProbabilityGenerator(uint64_t seed);
15 ValueType random() const;
16 uint64_t random_uint(uint64_t min, uint64_t max);
17};
18
19template<>
21 public:
23 RandomProbabilityGenerator(uint64_t seed);
24 double random();
25 uint64_t random_uint(uint64_t min, uint64_t max);
26
27 private:
28 std::uniform_real_distribution<double> distribution;
29 std::mt19937 engine;
30};
31
32template<>
33class RandomProbabilityGenerator<storm::RationalNumber> {
34 public:
37 RationalNumber random();
38 uint64_t random_uint(uint64_t min, uint64_t max);
39
40 private:
41 std::uniform_int_distribution<uint64_t> distribution;
42 std::mt19937 engine;
43};
44
46 public:
48 bool random(boost::mt19937& engine);
49
50 private:
51 boost::random::bernoulli_distribution<> distribution;
52};
53
55 public:
57 double random(boost::mt19937& engine);
58
59 private:
60 boost::random::exponential_distribution<> distribution;
61};
62
63} // namespace utility
64} // namespace storm
bool random(boost::mt19937 &engine)
Definition random.cpp:39
double random(boost::mt19937 &engine)
Definition random.cpp:45
uint64_t random_uint(uint64_t min, uint64_t max)
Definition random.cpp:33
ValueType max(ValueType const &first, ValueType const &second)
ValueType min(ValueType const &first, ValueType const &second)