
I have some questions regarding the design of the C++/TR1 and Boost.Random library. What are the requirements on the UniformRandomNumberGenerator argument of operator() of random distribution class templates? It seems that the only requirement is uniform distribution, and both range and type (integer / floating point) are not specified. Does this mean that the random distribution class templates work with any kind of UniformRandomNumberGenerator? Does the normal_distribution work as expected with a linear congruential uniform random number generator? Or does the normal distribution assume a continuous distribution in [0,1[? Are these requirements documented? I could not immediately find them in the documentation. It seems operator() of most random distributions will first have to construct a uniform_01 random distribution from the UniformRandomNumberGenerator argument and then transform that distribution to the required distribution (e.g. the normal_distribution would construct a uniform_01 distribution from the UniformRandomNumberGenerator argument of operator() and then use the Box-Muller transformation). I would appreciate it if someone could clarify these issues. -- Ares Lagae, Ph.D. Computer Graphics Research Group, Katholieke Universiteit Leuven http://www.cs.kuleuven.be/~ares/