On 04/23/2013 10:59 PM, bearophile wrote: > Also note by their nature doubles are not equally spread across the line of > Reals, so getting a truly uniform distribution is hard or impossible.
More than that -- the number of unique values generated by the underlying RNG should (for Mersenne Twister) be much smaller than the number of unique double values in [-double.max, double.max], because the type used is uint32. I think the infinities probably come from the fact that the returned random value is generated by the following expression: _a + (_b - _a) * cast(NumberType) (urng.front - urng.min) / (urng.max - urng.min); So, you've got a double.max + (double.max - double.min) in there which evaluates to inf.