diff --git a/include/linear_congruential_generator.hpp b/include/linear_congruential_generator.hpp index eef02fc..6b5f614 100644 --- a/include/linear_congruential_generator.hpp +++ b/include/linear_congruential_generator.hpp @@ -51,7 +51,6 @@ class LinearCongruentialGenerator : public PseudoRandomNumberGenerator { LinearCongruentialGenerator(const uint64_t seed, const uint64_t modulus, const uint64_t multiplier, const uint64_t increment, const uint64_t mask); uint64_t generateRandomValue() override; - double generateUnitNormalRandomValue() override; }; #endif \ No newline at end of file diff --git a/include/mersenne_twister.hpp b/include/mersenne_twister.hpp index 3a75b6d..ffabd77 100644 --- a/include/mersenne_twister.hpp +++ b/include/mersenne_twister.hpp @@ -100,7 +100,6 @@ class MersenneTwister : public PseudoRandomNumberGenerator { MersenneTwister(const uint64_t seed); uint64_t generateRandomValue() override; - double generateUnitNormalRandomValue() override; }; #endif \ No newline at end of file diff --git a/include/prng.hpp b/include/prng.hpp index 4386948..69ccf65 100644 --- a/include/prng.hpp +++ b/include/prng.hpp @@ -20,7 +20,7 @@ class PseudoRandomNumberGenerator uint64_t generateCryptographicallyInsecureSeed(); virtual uint64_t generateRandomValue() = 0; - virtual double generateUnitNormalRandomValue() = 0; + double generateUnitNormalRandomValue(); double generateFloatingPointRandomValue(float min, float max); int64_t generateIntegerRandomValue(int32_t min, int32_t max); }; diff --git a/include/xorshift.hpp b/include/xorshift.hpp index db5aba7..b936e9c 100644 --- a/include/xorshift.hpp +++ b/include/xorshift.hpp @@ -34,7 +34,6 @@ class XORShift : public PseudoRandomNumberGenerator { uint64_t generateRandomValue() override; - double generateUnitNormalRandomValue() override; }; #endif \ No newline at end of file diff --git a/src/prngs/linear_congruential_generator.cpp b/src/prngs/linear_congruential_generator.cpp index 350165e..e405f90 100644 --- a/src/prngs/linear_congruential_generator.cpp +++ b/src/prngs/linear_congruential_generator.cpp @@ -72,19 +72,3 @@ uint64_t LinearCongruentialGenerator::generateRandomValue() { return m_current_value; } - -// Generate a random value normalized to the range [0, 1) -double LinearCongruentialGenerator::generateUnitNormalRandomValue() { - - uint64_t random_value = generateRandomValue(); - - uint64_t range = m_maximum_value - m_minimum_value; - if (range == 0) { - return 0.0; // Avoid division by zero - } - - // Normalize the random value to [0, 1) - double normalized_value = static_cast(random_value - m_minimum_value) / static_cast(range); - return normalized_value; -} - diff --git a/src/prngs/mersenne_twister.cpp b/src/prngs/mersenne_twister.cpp index 70702d0..61ccd6d 100644 --- a/src/prngs/mersenne_twister.cpp +++ b/src/prngs/mersenne_twister.cpp @@ -111,18 +111,3 @@ uint64_t MersenneTwister::generateRandomValue(){ uint64_t tempered_value = tempering(raw_value); return tempered_value; } - -// Generate a random value normalized to the range [0, 1) -double MersenneTwister::generateUnitNormalRandomValue() { - - uint64_t random_value = generateRandomValue(); - - uint64_t range = m_maximum_value - m_minimum_value; - if (range == 0) { - return 0.0; // Avoid division by zero - } - - // Normalize the random value to [0, 1) - double normalized_value = static_cast(random_value - m_minimum_value) / static_cast(range); - return normalized_value; -} diff --git a/src/prngs/prng.cpp b/src/prngs/prng.cpp index 6628e72..b22693b 100644 --- a/src/prngs/prng.cpp +++ b/src/prngs/prng.cpp @@ -66,4 +66,4 @@ double PseudoRandomNumberGenerator::generateUnitNormalRandomValue() { // Normalize the random value to [0, 1) double normalized_value = static_cast(random_value - m_minimum_value) / static_cast(range); return normalized_value; -} \ No newline at end of file +} diff --git a/src/prngs/xorshift.cpp b/src/prngs/xorshift.cpp index 947fed1..ce3a3f7 100644 --- a/src/prngs/xorshift.cpp +++ b/src/prngs/xorshift.cpp @@ -36,19 +36,3 @@ uint64_t XORShift::generateRandomValue() { return m_current_value; } - -// Generate a random value normalized to the range [0, 1) -double XORShift::generateUnitNormalRandomValue() { - - uint64_t random_value = generateRandomValue(); - - uint64_t range = m_maximum_value - m_minimum_value; - if (range == 0) { - return 0.0; // Avoid division by zero - } - - // Normalize the random value to [0, 1) - double normalized_value = static_cast(random_value - m_minimum_value) / static_cast(range); - return normalized_value; -} -