RandomSample with specified random number generator

jerro a at a.com
Thu Jun 14 14:37:05 PDT 2012


> Assuming API changes are permissible (a big IF), I think the 
> way to do it might be something like
>
> auto randomSample(R, UniformRNG = Random, seed)(R r, size_t n, 
> seed s = unpredictableSeed)
>
> ... meaning that the user has an option to specify an RNG 
> _type_ without specifying a seed, and that the seed can be 
> either unpredictable or specific.
>
> The user could also not specify a RNG type, in which case the 
> default RNG type would be used, but would be seeded 
> unpredictably.

Issues with copying rngs are not unique to randomSample - anyone
who uses random number generators will run into them
sooner or later. So the problem is not that randomSample takes
a rng as a parameter - it's that rngs are value types. The
proper solution would be to make them reference types. I don't
know if that can be done now as it would surely break some code,
but people can use pointers to rngs instead of rngs themselves.
I think not doing that will cause bugs irregardless of how
randomSample works. I know it would cause bugs in my code.



More information about the Digitalmars-d mailing list