#include <LinearCongruentialRandomGenerator.h>
A simple deterministic and portable random number generator. More...
A simple deterministic and portable random number generator.
This class implements a Linear Congruential Generator (LCG) algorithm to generate pseudo-random numbers. It is designed to provide deterministic and portable random number generation, making it well-suited for testing purposes.
Public Member Functions | |
LinearCongruentialRandomGenerator (unsigned int initialSeed) | |
unsigned int | generateRandom () |
Generates the next pseudo-random number. More... | |
template<class Scalar > | |
Scalar | generateInUnitRange () |
Generates a pseudo-random value within the unit interval [0, 1]. More... | |
double | generateInRange (double rmin, double rmax) |
Generates a pseudo-random double value within a specified range. More... | |
float | generateInRange (float rmin, float rmax) |
Generates a pseudo-random float value within a specified range. More... | |
|
explicit |
double sofa::testing::LinearCongruentialRandomGenerator::generateInRange | ( | double | rmin, |
double | rmax | ||
) |
Generates a pseudo-random double value within a specified range.
This function generates a pseudo-random double value between the provided minimum (rmin
) and maximum (rmax
) values.
rmin | The minimum value of the desired range (inclusive). |
rmax | The maximum value of the desired range (inclusive). |
Example usage:
Generates a pseudo-random float value within a specified range.
This function generates a pseudo-random float value between the provided minimum (rmin
) and maximum (rmax
) values.
rmin | The minimum value of the desired range (inclusive). |
rmax | The maximum value of the desired range (inclusive). |
Example usage:
|
inline |
Generates a pseudo-random value within the unit interval [0, 1].
This templated function generates a pseudo-random value of the specified scalar type within the unit interval [0, 1]. It utilizes the underlying random number generator to produce a normalized random value within the unit range.
Scalar | The scalar type for the generated value (e.g., float, double). |
Example usage:
unsigned sofa::testing::LinearCongruentialRandomGenerator::generateRandom | ( | ) |
Generates the next pseudo-random number.
This method uses a Linear Congruential Generator (LCG) algorithm to update the seed and produce the next pseudo-random number.