According to:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1452.html

[quote] A uniform_real random distribution produces floating-point random
numbers x in the range min <= x <= max, with equal probability. min and max are
the parameters of the distribution. [/unqoute]


Following code (with either -std=c++0x or -std=gnu++0x):
#include <tr1/random>
#include <iostream>

int main()
{
 std::tr1::mt19937 e;
 std::tr1::uniform_real<double> dist(0.0, 1.0);
 std::cout << dist(e) << std::endl;
 return 0;
}

Produces: 3.49921e+09. It should produce a value between [0.0, 1.0). Not some
wild int.


-- 
           Summary: A uniform_real random distribution produces invalid
                    floating-point random numbers
           Product: gcc
           Version: 4.3.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dchichkov at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44653

Reply via email to