17 : linear_congruential_previous(seed), mz_array_position(0UL), mz_borrow(0), mz_previous_normal_flag(0)
22 : mz_array_position(0UL), mz_borrow(0), mz_previous_normal_flag(0)
26 : linear_congruential_previous(r.linear_congruential_previous)
27 , mz_array_position(r.mz_array_position)
28 , mz_borrow(r.mz_borrow)
29 , mz_previous_normal_flag(r.mz_previous_normal_flag)
68 reseed((
unsigned long)std::time(
nullptr));
85 for (
int j=0;j<1000;j++)
lrand32();
126 while (r2 >=1.0 || r2 == 0.0);
127 double fac = std::sqrt(-2.0*std::log(r2)/r2);
156 while (r2 >=1.0 || r2 == 0.0);
157 double fac = std::sqrt(-2.0*std::log(r2)/r2);
177 assert(lower <= upper);
182 unsigned long range = upper-lower+1;
183 unsigned long denom = 0xffffffff/range;
185 while ((ran=
lrand32()) >= denom*range) ;
186 return lower + int(ran/denom);
192 assert(lower <= upper);
199 unsigned long range = upper-lower+1;
200 unsigned long denom = 0xffffffff/range;
203 while ((ran=
lrand32())>=denom*range) ++count;
204 return lower + int(ran/denom);
209 assert(lower <= upper);
210 return (
double(
lrand32())/0xffffffff)*(upper-lower) + lower;
215 assert(lower <= upper);
216 return (
double(
lrand32())/0xffffffff +
double(
lrand32())/(
double(0xffffffff)*
double(0xffffffff)))*(upper-lower) + lower;
double normal64()
Random value from a unit normal distribution about zero.
unsigned long linear_congruential_lrand32()
unsigned long mz_array[vnl_random_array_size]
double normal()
Random value from a unit normal distribution about zero.
unsigned long mz_seed_array[vnl_random_array_size]
void restart()
This restarts the sequence of random numbers.
A superior random number generator.
double mz_previous_normal
vnl_random()
Default constructor.
unsigned int mz_array_position
unsigned long linear_congruential_previous
A superior random number generator.
int mz_previous_normal_flag
double drand32()
Generates a random double in the range 0 <= x <= 1 with 32 bit randomness.
double drand64()
Generates a random double in the range 0 <= x <= 1 with 64 bit randomness.
constexpr unsigned int vnl_random_array_size
unsigned long lrand32()
Generates a random unsigned 32-bit number.
void reseed()
Starts a new non-deterministic sequence from an already declared generator.
vnl_random & operator=(const vnl_random &)
Copy operator.