Commit 7f5a22c4 authored by Davis King's avatar Davis King

Gave rand a constructor that takes a seed value.

parent 1b1cf754
...@@ -36,18 +36,15 @@ namespace dlib ...@@ -36,18 +36,15 @@ namespace dlib
rand( rand(
) )
{ {
// prime the generator a bit init();
for (int i = 0; i < 10000; ++i) }
mt();
max_val = 0xFFFFFF;
max_val *= 0x1000000;
max_val += 0xFFFFFF;
max_val += 0.01;
has_gaussian = false; rand (
next_gaussian = 0; const std::string& seed_value
)
{
init();
set_seed(seed_value);
} }
virtual ~rand( virtual ~rand(
...@@ -234,6 +231,23 @@ namespace dlib ...@@ -234,6 +231,23 @@ namespace dlib
); );
private: private:
void init()
{
// prime the generator a bit
for (int i = 0; i < 10000; ++i)
mt();
max_val = 0xFFFFFF;
max_val *= 0x1000000;
max_val += 0xFFFFFF;
max_val += 0.01;
has_gaussian = false;
next_gaussian = 0;
}
mt19937 mt; mt19937 mt;
std::string seed; std::string seed;
......
...@@ -34,6 +34,19 @@ namespace dlib ...@@ -34,6 +34,19 @@ namespace dlib
- std::bad_alloc - std::bad_alloc
!*/ !*/
rand (
const std::string& seed_value
);
/*!
ensures
- #*this is properly initialized
- #get_seed() == seed_value
- This version of the constructor is equivalent to using
the default constructor and then calling set_seed(seed_value)
throws
- std::bad_alloc
!*/
virtual ~rand( virtual ~rand(
); );
/*! /*!
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment