Boost logo

Boost :

Subject: [boost] [Random] design of the random library
From: Ares Lagae (ares.lagae_at_[hidden])
Date: 2008-11-13 05:48:28


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/

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk