[Issue 3025] New: uniform(float, float) pops first, uniform(int, int) pops last
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon May 25 07:59:33 PDT 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3025
Summary: uniform(float,float) pops first, uniform(int,int) pops
last
Product: D
Version: 2.030
Platform: PC
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: Phobos
AssignedTo: bugzilla at digitalmars.com
ReportedBy: lio+bugzilla at lunesu.com
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));
}
The location of .popFront should be standardized, either before or after any
.front.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list