[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