| 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | 
|---|
| 2 |  | 
|---|
| 3 | <html> | 
|---|
| 4 | <head> | 
|---|
| 5 |   <meta http-equiv="Content-Language" content="en-us"> | 
|---|
| 6 |   <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"> | 
|---|
| 7 |  | 
|---|
| 8 |   <title>Boost Random Number Generator Library (Miscellaneous)</title> | 
|---|
| 9 | </head> | 
|---|
| 10 |  | 
|---|
| 11 | <body bgcolor="#FFFFFF" text="#000000"> | 
|---|
| 12 |   <h1>Random Number Generator Library --- Miscellaneous Decorators</h1> | 
|---|
| 13 |  | 
|---|
| 14 |   <ul> | 
|---|
| 15 |     <li><a href="#random_number_generator">Class template | 
|---|
| 16 |     <code>random_number_generator</code></a></li> | 
|---|
| 17 |   </ul> | 
|---|
| 18 |  | 
|---|
| 19 |   <h2>Introduction</h2> | 
|---|
| 20 |  | 
|---|
| 21 |   <p>These decorator class templates allow adaptation of the random number | 
|---|
| 22 |   generators and distribution functions to concepts found in the C++ Standard | 
|---|
| 23 |   Library, in particular the RandomNumberGenerator and the InputIterator | 
|---|
| 24 |   concepts. The latter adaptation is useful, because the the basic random | 
|---|
| 25 |   number generators do not implement the InputIterator requirements per se, | 
|---|
| 26 |   in contrast to the distribution functions.</p> | 
|---|
| 27 |  | 
|---|
| 28 |   <h2><a name="synopsis" id="synopsis">Synopsis</a> of miscellaneous | 
|---|
| 29 |   decorators in header <code><boost/random.hpp></code></h2> | 
|---|
| 30 |   <pre> | 
|---|
| 31 | namespace boost { | 
|---|
| 32 |   template<class UniformRandomNumberGenerator, class IntType = long> | 
|---|
| 33 |   class random_number_generator; | 
|---|
| 34 | } // namespace boost | 
|---|
| 35 | </pre> | 
|---|
| 36 |  | 
|---|
| 37 |   <h2><a name="random_number_generator" id="random_number_generator">Class | 
|---|
| 38 |   template <code>random_number_generator</code></a></h2> | 
|---|
| 39 |  | 
|---|
| 40 |   <h3>Synopsis</h3> | 
|---|
| 41 |   <pre> | 
|---|
| 42 | template<class UniformRandomNumberGenerator, class IntType = long> | 
|---|
| 43 | class random_number_generator | 
|---|
| 44 | { | 
|---|
| 45 | public: | 
|---|
| 46 |   typedef UniformRandomNumberGenerator base_type; | 
|---|
| 47 |   typedef IntType argument_type; | 
|---|
| 48 |   typedef IntType result_type; | 
|---|
| 49 |   random_number_generator(base_type & rng); | 
|---|
| 50 |   result_type operator()(argument_type n); | 
|---|
| 51 | }; | 
|---|
| 52 | </pre> | 
|---|
| 53 |  | 
|---|
| 54 |   <h3>Description</h3> | 
|---|
| 55 |  | 
|---|
| 56 |   <p>Instantiations of class template <code>random_number_generator</code> | 
|---|
| 57 |   model a RandomNumberGenerator (std:25.2.11 [lib.alg.random.shuffle]). On | 
|---|
| 58 |   each invocation, it returns a uniformly distributed integer in the range | 
|---|
| 59 |   [0..<code>n</code>).</p> | 
|---|
| 60 |  | 
|---|
| 61 |   <p>The template parameter <code>IntType</code> shall denote some | 
|---|
| 62 |   integer-like value type.</p> | 
|---|
| 63 |  | 
|---|
| 64 |   <p><em>Note:</em> I consider it unfortunate that the C++ Standard uses the | 
|---|
| 65 |   name RandomNumberGenerator for something rather specific.</p> | 
|---|
| 66 |  | 
|---|
| 67 |   <h3>Members</h3> | 
|---|
| 68 |   <pre> | 
|---|
| 69 | random_number_generator(base_type & rng) | 
|---|
| 70 | </pre> | 
|---|
| 71 |  | 
|---|
| 72 |   <p><strong>Effects:</strong> Constructs a | 
|---|
| 73 |   <code>random_number_generator</code> functor with the given uniform random | 
|---|
| 74 |   number generator as the underlying source of random numbers.</p> | 
|---|
| 75 |   <pre> | 
|---|
| 76 | result_type operator()(argument_type n) | 
|---|
| 77 | </pre> | 
|---|
| 78 |  | 
|---|
| 79 |   <p><strong>Returns:</strong> The value of | 
|---|
| 80 |   <code>uniform_int<base_type>(rng, 0, n-1)()</code>.</p> | 
|---|
| 81 |   <hr> | 
|---|
| 82 |  | 
|---|
| 83 |   <p><a href="http://validator.w3.org/check?uri=referer"><img border="0" src= | 
|---|
| 84 |   "http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional" | 
|---|
| 85 |   height="31" width="88"></a></p> | 
|---|
| 86 |  | 
|---|
| 87 |   <p>Revised  | 
|---|
| 88 |   <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->05 | 
|---|
| 89 |   December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38516" --></p> | 
|---|
| 90 |  | 
|---|
| 91 |   <p><i>Copyright © 2000-2005 <a href= | 
|---|
| 92 |   "../../people/jens_maurer.htm">Jens Maurer</a></i></p> | 
|---|
| 93 |  | 
|---|
| 94 |   <p><i>Distributed under the Boost Software License, Version 1.0. (See | 
|---|
| 95 |   accompanying file <a href="../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or | 
|---|
| 96 |   copy at <a href= | 
|---|
| 97 |   "http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</i></p> | 
|---|
| 98 | </body> | 
|---|
| 99 | </html> | 
|---|