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