Faro Engine 0.0.0.b519570 (main)
Loading...
Searching...
No Matches
Random.hpp
Go to the documentation of this file.
1#pragma once
2#include "../Primitives.hpp"
3#include <random>
4
5namespace Faro
6{
8 {
9 public:
11
12 void Seed(int seed);
13 static int RandomSeed();
14
15 template<class Type>
16 Type Random(Type min_value, Type max_value)
17 {
18 std::uniform_real_distribution<double> dist(static_cast<double>(min_value), static_cast<double>(max_value));
19 return dist(rng_);
20 }
21
22 private:
23 std::mt19937 rng_;
24 };
25
26 extern RandomStream global_rng_stream_;
27
28 template<class Type>
30 {
31 static Type Random(Type min_value, Type max_value)
32 {
33 return global_rng_stream_.Random(min_value, max_value);
34 }
35 };
36
41}
Definition Random.hpp:8
static int RandomSeed()
Definition Random.cpp:14
void Seed(int seed)
Definition Random.cpp:9
Type Random(Type min_value, Type max_value)
Definition Random.hpp:16
RandomStream()
Definition Random.cpp:4
Definition Array.hpp:8
RandomGenerator< int8 > RandomInt8
Definition Random.hpp:39
RandomGenerator< int32 > RandomInt32
Definition Random.hpp:37
RandomGenerator< uint8 > RandomUInt8
Definition Random.hpp:40
RandomStream global_rng_stream_
Definition Random.cpp:19
RandomGenerator< float > RandomFloat
Definition Random.hpp:38
Definition Random.hpp:30
static Type Random(Type min_value, Type max_value)
Definition Random.hpp:31