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