2 // Inclusion of standard header file
8 // Inclusion of system header file
13 // Inclusion of local header file
15 #include "islibfunc.hpp"
16 #include "random_number_generator.hpp"
17 #include "system_error.hpp"
22 // Definition of static data member
24 std::size_t random_number_generator::generate_random_number_seed_calling_times = 0;
27 // Definition of constructor
29 random_number_generator::random_number_generator
31 random_number_seed_type const random_number_seed,
32 double const minimum_value,
33 double const maximum_value
35 random_number_generator_implement ( random_number_generator_engine_type ( random_number_seed ), random_number_generator_distribution_type ( minimum_value, maximum_value ) )
42 double const minimum_value_,
43 double const maximum_value_
46 throw_if ( std::invalid_argument ( "islib::random_number_generator::random_number_generator: minimum_value_ >= maximum_value_" ), minimum_value_ >= maximum_value_ );
56 a_local ( minimum_value, maximum_value );
60 // Definition of constructor
62 random_number_generator::random_number_generator
64 double const minimum_value,
65 double const maximum_value
67 random_number_generator_implement ( random_number_generator_engine_type ( this_type::generate_random_number_seed () ), random_number_generator_distribution_type ( minimum_value, maximum_value ) )
74 double const minimum_value_,
75 double const maximum_value_
78 throw_if ( std::invalid_argument ( "islib::random_number_generator::random_number_generator: minimum_value_ >= maximum_value_" ), minimum_value_ >= maximum_value_ );
88 a_local ( minimum_value, maximum_value );
92 // Definition of destructor
94 random_number_generator::~random_number_generator
102 // Definition of method
105 random_number_generator::generate
109 return random_number_generator_implement ();
113 // Definition of static member function
115 random_number_generator::random_number_seed_type
116 random_number_generator::generate_random_number_seed
119 random_number_seed_type const random_number_seed = static_cast < random_number_seed_type > ( time () ) + static_cast < random_number_seed_type > ( getpid () ) + static_cast < random_number_seed_type > ( generate_random_number_seed_calling_times );
121 ++generate_random_number_seed_calling_times;
123 return random_number_seed;