isUniformRNG

Joseph Rushton Wakeling via Digitalmars-d digitalmars-d at puremagic.com
Thu May 8 14:29:45 PDT 2014


On 08/05/14 19:18, Nick Sabalausky via Digitalmars-d wrote:
> Some good looking stuff in there. The separation is a nice improvement, and
> having a "shuffle" is something we could certainly use.

Thanks! :-)

There is already a shuffle function in the existing std.random, but it's called 
randomShuffle:
http://dlang.org/phobos/std_random.html#.randomShuffle

> About avoiding problems from accidentally duplicating internal state, I'm not
> sure that changing to classes is really necessary for that. I addressed it in
> HashDRBG by simply making the internal state static. (Oops, or at least I meant
> to...fixing now...). The various InputRange instantiations (for the different
> possible elemement types) all draw from the same source (HashDRBGStream), so
> this should work out pretty well. I'd imagine the existing std.random algos
> could do something similar.

That seems a problematic fix for me -- doesn't it mean that there can only ever 
be one instance of any individual RNG?  While many applications wouldn't notice 
the difference, it's a pretty major breach of encapsulation (and purity).

On a related note -- I like your concept of a random stream.  I think it may be 
useful to adapt as part of the way in which std.random2.device works.  I need to 
compare to other Phobos stream code -- isn't Steven Schweighoffer working on 
up-to-date stream functionality as part of std.io ... ?


More information about the Digitalmars-d mailing list