You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

46 lines
1.2 KiB

#include <random>
#include "storm/adapters/RationalNumberAdapter.h"
namespace storm {
namespace utility {
template<typename ValueType>
class RandomProbabilityGenerator {
public:
RandomProbabilityGenerator();
RandomProbabilityGenerator(uint64_t seed);
ValueType random() const;
uint64_t random_uint(uint64_t min, uint64_t max);
};
template<>
class RandomProbabilityGenerator<double> {
public:
RandomProbabilityGenerator();
RandomProbabilityGenerator(uint64_t seed);
double random();
uint64_t random_uint(uint64_t min, uint64_t max);
private:
std::uniform_real_distribution<double> distribution;
std::mt19937 engine;
};
template<>
class RandomProbabilityGenerator<storm::RationalNumber> {
public:
RandomProbabilityGenerator();
RandomProbabilityGenerator(uint64_t seed);
RationalNumber random();
uint64_t random_uint(uint64_t min, uint64_t max);
private:
std::uniform_int_distribution<uint64_t> distribution;
std::mt19937 engine;
};
}
}