| [/ |
| / 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] |