blob: 74b1d2bb3236312af28e19c61bfdf74ec2a2bdb0 [file] [log] [blame]
[/
/ Copyright (c) 2009 Steven Watanabe
/
/ Distributed under the Boost Software License, Version 1.0. (See
/ accompanying file LICENSE_1_0.txt or copy at
/ http://www.boost.org/LICENSE_1_0.txt)
]
[section Synopsis of miscellaneous decorators in header <boost/random.hpp>]
namespace boost {
template<class UniformRandomNumberGenerator, class IntType = long>
class random_number_generator;
} // namespace boost
[endsect]
[section Class template random_number_generator]
[section Synopsis]
template<class UniformRandomNumberGenerator, class IntType = long>
class random_number_generator
{
public:
typedef UniformRandomNumberGenerator base_type;
typedef IntType argument_type;
typedef IntType result_type;
random_number_generator(base_type & rng);
result_type operator()(argument_type n);
};
[endsect]
[section Description]
Instantiations of class template random_number_generator model a
RandomNumberGenerator (std:25.2.11 [lib.alg.random.shuffle]). On each
invocation, it returns a uniformly distributed integer in the range [0..n).
The template parameter IntType shall denote some integer-like value type.
[note I consider it unfortunate that the C++ Standard uses the name
RandomNumberGenerator for something rather specific.]
[endsect]
[section Members]
random_number_generator(base_type & rng)
Effects: Constructs a random_number_generator functor with the given uniform
random number generator as the underlying source of random numbers.
result_type operator()(argument_type n)
Returns: The value of uniform_int<base_type>(rng, 0, n-1)().
[endsect]
[endsect]