38 #ifndef FCL_MATH_RNG_H 39 #define FCL_MATH_RNG_H 45 #include "fcl/math/constants.h" 46 #include "fcl/math/detail/seed.h" 73 int uniformInt(
int lower_bound,
int upper_bound);
109 void disk(S r_min, S r_max, S& x, S& y);
112 void ball(S r_min, S r_max, S& x, S& y, S& z);
116 static void setSeed(std::uint_fast32_t seed);
121 static std::uint_fast32_t
getSeed();
125 std::mt19937 generator_;
126 std::uniform_real_distribution<> uniDist_;
127 std::normal_distribution<> normalDist_;
136 #include "fcl/math/rng-inl.h" void quaternion(S value[4])
Uniform random unit quaternion sampling. The computed value has the order (x,y,z,w) ...
Definition: rng-inl.h:132
Main namespace.
Definition: broadphase_bruteforce-inl.h:45
void ball(S r_min, S r_max, S &x, S &y, S &z)
Uniform random sample in a ball with radius from r_min to r_max.
Definition: rng-inl.h:171
S uniformReal(S lower_bound, S upper_bound)
Generate a random real within given bounds: [lower_bound, upper_bound)
Definition: rng-inl.h:66
RNG()
Constructor. Always sets a different random seed.
Definition: rng-inl.h:52
static std::uint_fast32_t getSeed()
Get the seed used for random number generation. Passing the returned value to setSeed() at a subseque...
Definition: rng-inl.h:214
void disk(S r_min, S r_max, S &x, S &y)
Uniform random sample on a disk with radius from r_min to r_max.
Definition: rng-inl.h:159
*void eulerRPY(S value[3])
Uniform random sampling of Euler roll-pitch-yaw angles, each in the range [-pi, pi). The computed value has the order (roll, pitch, yaw)
Definition: rng-inl.h:150
S halfNormalReal(S r_min, S r_max, S focus=3.0)
Generate a random real using a half-normal distribution. The value is within specified bounds [r_min...
Definition: rng-inl.h:105
S gaussian(S mean, S stddev)
Generate a random real using a normal distribution with given mean and variance.
Definition: rng-inl.h:98
int uniformInt(int lower_bound, int upper_bound)
Generate a random integer within given bounds: [lower_bound, upper_bound].
Definition: rng-inl.h:75
int halfNormalInt(int r_min, int r_max, S focus=3.0)
Generate a random integer using a half-normal distribution. The value is within specified bounds ([r_...
Definition: rng-inl.h:122
S uniform01()
Generate a random real between 0 and 1.
Definition: rng-inl.h:59
bool uniformBool()
Generate a random boolean.
Definition: rng-inl.h:84
static void setSeed(std::uint_fast32_t seed)
Set the seed for random number generation. Use this function to ensure the same sequence of random nu...
Definition: rng-inl.h:192
S gaussian01()
Generate a random real using a normal distribution with mean 0 and variance 1.
Definition: rng-inl.h:91
Random number generation. An instance of this class cannot be used by multiple threads at once (membe...
Definition: rng.h:58