Location of popFront (was: randomSample)
Lionello Lunesu
lionello at lunesu.remove.com
Sun May 24 21:43:46 PDT 2009
Andrei,
I noticed in random.d, uniform template, that popFront is called in
different locations for integral compared to floating point types: for
integral types you .front first and .popFront afterwards, but for floating
point types you start with .popFront and then check .front.
This has a peculiar effect: for example, if you do uniform(0.0,100.0)
followed by uniform(0,100) there's a big chance that the integral part of
the first random number is equal to the second random number.
import std.stdio, std.random;
void main()
{
writeln(uniform(0.0,100.0));
writeln(uniform(0,100));
}
I don't think this warrants a bug report, but I do think the location of
.popFront should be standardized, either before or after any .front.
Just sayin'.
L.
More information about the Digitalmars-d
mailing list