diff --git a/include/mersenne_twister.hpp b/include/mersenne_twister.hpp index ffabd77..356f7c9 100644 --- a/include/mersenne_twister.hpp +++ b/include/mersenne_twister.hpp @@ -88,7 +88,7 @@ class MersenneTwister : public PseudoRandomNumberGenerator { uint64_t m_upper_bit_mask; uint64_t m_lower_bit_mask; std::vector m_recurrence_state; - int m_state_index; + int m_state_index = 0; std::vector initializeRecurrenceState(const uint64_t seed); diff --git a/src/prngs/mersenne_twister.cpp b/src/prngs/mersenne_twister.cpp index 61ccd6d..c623761 100644 --- a/src/prngs/mersenne_twister.cpp +++ b/src/prngs/mersenne_twister.cpp @@ -6,45 +6,42 @@ MersenneTwister::MersenneTwister() - : PseudoRandomNumberGenerator() { - m_w = Default_w; - m_n = Default_n; - m_m = Default_m; - m_r = Default_r; - m_a = Default_a; - m_u = Default_u; - m_d = Default_d; - m_s = Default_s; - m_b = Default_b; - m_t = Default_t; - m_c = Default_c; - m_l = Default_l; - m_f = Default_f; + : m_w(Default_w), + m_n(Default_n), + m_m(Default_m), + m_r(Default_r), + m_a(Default_a), + m_u(Default_u), + m_d(Default_d), + m_s(Default_s), + m_b(Default_b), + m_t(Default_t), + m_c(Default_c), + m_l(Default_l), + m_f(Default_f) { m_lower_bit_mask = std::numeric_limits::max() >> (m_w - m_r); m_upper_bit_mask = std::numeric_limits::max() << (m_r); m_recurrence_state = initializeRecurrenceState(m_seed); - m_state_index = 0; } MersenneTwister::MersenneTwister(const uint64_t seed) - : PseudoRandomNumberGenerator(seed) { - m_w = Default_w; - m_n = Default_n; - m_m = Default_m; - m_r = Default_r; - m_a = Default_a; - m_u = Default_u; - m_d = Default_d; - m_s = Default_s; - m_b = Default_b; - m_t = Default_t; - m_c = Default_c; - m_l = Default_l; - m_f = Default_f; + : PseudoRandomNumberGenerator(seed), + m_w(Default_w), + m_n(Default_n), + m_m(Default_m), + m_r(Default_r), + m_a(Default_a), + m_u(Default_u), + m_d(Default_d), + m_s(Default_s), + m_b(Default_b), + m_t(Default_t), + m_c(Default_c), + m_l(Default_l), + m_f(Default_f) { m_lower_bit_mask = std::numeric_limits::max() >> (m_w - m_r); m_upper_bit_mask = std::numeric_limits::max() << (m_r); m_recurrence_state = initializeRecurrenceState(m_seed); - m_state_index = 0; } std::vector MersenneTwister::initializeRecurrenceState(const uint64_t seed) { diff --git a/src/prngs/xorshift.cpp b/src/prngs/xorshift.cpp index ce3a3f7..9c01af8 100644 --- a/src/prngs/xorshift.cpp +++ b/src/prngs/xorshift.cpp @@ -5,8 +5,7 @@ // Default constructor XORShift::XORShift() - : PseudoRandomNumberGenerator(), - m_a(DefaultA), + : m_a(DefaultA), m_b(DefaultB), m_c(DefaultC), m_current_value(m_seed) {}