default random object?
Don
nospam at nospam.com
Mon Feb 16 00:21:32 PST 2009
Andrei Alexandrescu wrote:
> Benji Smith wrote:
>> Benji Smith wrote:
>>> Maybe a NumericInterval struct would be a good idea. It could be
>>> specialized to any numeric type (float, double, int, etc), it would
>>> know its own boundaries, and it'd keep track of whether those
>>> boundaries were open or closed.
>>>
>>> The random functions would take an RND and an interval (with some
>>> reasonable default intervals for common tasks like choosing elements
>>> from arrays and random-access ranges).
>>>
>>> I have a Java implementation around here somewhere that I could port
>>> to D if anyone is interested.
>>>
>>> --benji
>>
>> Incidentally, the NumericInterval has lots of other interesting
>> applications. For example
>>
>> auto i = NumericInterval.UBYTE.intersect(NumericInterval.SBYTE);
>> bool safelyPolysemious = i.contains(someByteValue);
>>
>> auto array = new double[123];
>> auto i = NumericInterval.indexInterval(array);
>> bool indexIsLegal = i.contains(someIndex);
>>
>> Using a numeric interval for generating random numbers would be, in my
>> opinion, totally ideal.
>>
>> double d = uniform(NumericInterval.DOUBLE); // Any double value
>
> I've never been in a situation in my life where I thought, hey, a random
> double is exactly what I'd need right now. It's a ginormous interval!
>
> Andrei
It's worse than that. Since the range of double includes infinity, a
uniform distribution must return +-infinity with probability 1. It's
nonsense.
More information about the Digitalmars-d
mailing list