koho.cpp  1.1.0
random_number_generator.h
Go to the documentation of this file.
1 
5 // Author: AI Werkstatt (TM)
6 // (C) Copyright 2019, AI Werkstatt (TM) www.aiwerkstatt.com. All rights reserved.
7 
8 #ifndef KOHO_RANDOM_NUMBER_GENERATOR_H
9 #define KOHO_RANDOM_NUMBER_GENERATOR_H
10 
11 #include <random>
12 
13 namespace koho {
14 
15 // =============================================================================
16 // Random Number Generator
17 // =============================================================================
18 
20  class RandomState {
21 
22  protected:
24  std::mt19937 eng;
25 
26  public:
28  RandomState();
29 
31 
34  RandomState(unsigned long seed);
35 
37 
42  double uniform_real(double low,
43  double high);
44 
46 
51  long uniform_int(long low,
52  long high);
53 
55  static const long MAX_INT = std::numeric_limits<long>::max();
56  };
57 
58 } // namespace koho
59 
60 #endif
std::mt19937 eng
Mersenne twister.
Definition: random_number_generator.h:24
static const long MAX_INT
Upper bound for long random numbers [..., high).
Definition: random_number_generator.h:55
Definition: decision_forest.cpp:20
A random number generator.
Definition: random_number_generator.h:20
RandomState()
Create and initialize random number generator with the current system time.
Definition: random_number_generator.cpp:20
double uniform_real(double low, double high)
Provide a double random number from a uniform distribution between [low, high).
Definition: random_number_generator.cpp:28
long uniform_int(long low, long high)
Provide a long random number from a uniform distribution between [low, high).
Definition: random_number_generator.cpp:37