Storm
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>
6
7namespace storm {
8namespace utility {
9template<typename ValueType>
11 public:
13 RandomProbabilityGenerator(uint64_t seed);
14 ValueType random() const;
15 uint64_t random_uint(uint64_t min, uint64_t max);
16};
17
18template<>
20 public:
22 RandomProbabilityGenerator(uint64_t seed);
23 double random();
24 uint64_t random_uint(uint64_t min, uint64_t max);
25
26 private:
27 std::uniform_real_distribution<double> distribution;
28 std::mt19937 engine;
29};
30
31template<>
32class RandomProbabilityGenerator<storm::RationalNumber> {
33 public:
36 RationalNumber random();
37 uint64_t random_uint(uint64_t min, uint64_t max);
38
39 private:
40 std::uniform_int_distribution<uint64_t> distribution;
41 std::mt19937 engine;
42};
43
45 public:
47 bool random(boost::mt19937& engine);
48
49 private:
50 boost::random::bernoulli_distribution<> distribution;
51};
52
54 public:
56 double random(boost::mt19937& engine);
57
58 private:
59 boost::random::exponential_distribution<> distribution;
60};
61
62} // namespace utility
63} // 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)
LabParser.cpp.
Definition cli.cpp:18