Standardized the generate method of the marsenne twister random generator in order to get also a unsigned capped random generation (like all the other generate() of the other random generators)
This commit is contained in:
parent
c085b7d6ba
commit
7dbcb078e5
|
@ -345,12 +345,17 @@ public:
|
|||
mt[0] = 0x80000000u; /* MSB is 1; assuring non-zero initial array */
|
||||
}
|
||||
|
||||
unsigned int generate(unsigned int limit)
|
||||
{
|
||||
return generate()%limit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a random number in the [0,0xffffffff] interval using the improved Marsenne Twister algorithm.
|
||||
*
|
||||
* NOTE: Limit is not considered, the interval is fixed.
|
||||
*/
|
||||
unsigned int generate(unsigned int /*limit*/)
|
||||
unsigned int generate()
|
||||
{
|
||||
unsigned int y;
|
||||
static unsigned int mag01[2]={0x0u, MATRIX_A};
|
||||
|
@ -392,19 +397,19 @@ public:
|
|||
/// Returns a random number in the [0,1] real interval using the improved Marsenne-Twister.
|
||||
double generate01closed()
|
||||
{
|
||||
return generate(0)*(1.0/4294967295.0);
|
||||
return generate()*(1.0/4294967295.0);
|
||||
}
|
||||
|
||||
/// Returns a random number in the [0,1) real interval using the improved Marsenne-Twister.
|
||||
double generate01()
|
||||
{
|
||||
return generate(0)*(1.0/4294967296.0);
|
||||
return generate()*(1.0/4294967296.0);
|
||||
}
|
||||
|
||||
/// Generates a random number in the (0,1) real interval using the improved Marsenne-Twister.
|
||||
double generate01open()
|
||||
{
|
||||
return (((double)generate(0)) + 0.5)*(1.0/4294967296.0);
|
||||
return (((double)generate()) + 0.5)*(1.0/4294967296.0);
|
||||
}
|
||||
|
||||
/// Generate a random triple of baricentric coords
|
||||
|
@ -419,8 +424,7 @@ public:
|
|||
}
|
||||
p[0]=1.0-(p[1] + p[2]);
|
||||
}
|
||||
};
|
||||
|
||||
}; // end class MarsenneTwisterRNG
|
||||
|
||||
/* Returns a value with normal distribution with mean m, standard deviation s
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue