• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5<title>Reference</title>
6<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
7<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
8<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
9<link rel="up" href="../boost_random.html" title="Chapter 33. Boost.Random">
10<link rel="prev" href="tutorial.html" title="Tutorial">
11<link rel="next" href="../boost/random/additive_combine_engine.html" title="Class template additive_combine_engine">
12</head>
13<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14<table cellpadding="2" width="100%"><tr>
15<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
16<td align="center"><a href="../../../index.html">Home</a></td>
17<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
18<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
19<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
20<td align="center"><a href="../../../more/index.htm">More</a></td>
21</tr></table>
22<hr>
23<div class="spirit-nav">
24<a accesskey="p" href="tutorial.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_random.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../boost/random/additive_combine_engine.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
25</div>
26<div class="section">
27<div class="titlepage"><div><div><h2 class="title" style="clear: both">
28<a name="boost_random.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
29</h2></div></div></div>
30<div class="toc"><dl class="toc">
31<dt><span class="section"><a href="reference.html#boost_random.reference.concepts">Concepts</a></span></dt>
32<dt><span class="section"><a href="reference.html#boost_random.reference.generators">Generators</a></span></dt>
33<dt><span class="section"><a href="reference.html#boost_random.reference.distributions">Distributions</a></span></dt>
34<dt><span class="section"><a href="reference.html#boost_random.reference.utilities">Utilities</a></span></dt>
35<dt><span class="section"><a href="reference.html#headers">Headers</a></span></dt>
36</dl></div>
37<div class="section">
38<div class="titlepage"><div><div><h3 class="title">
39<a name="boost_random.reference.concepts"></a><a class="link" href="reference.html#boost_random.reference.concepts" title="Concepts">Concepts</a>
40</h3></div></div></div>
41<div class="toc"><dl class="toc">
42<dt><span class="section"><a href="reference.html#boost_random.reference.concepts.introduction">Introduction</a></span></dt>
43<dt><span class="section"><a href="reference.html#boost_random.reference.concepts.uniform_random_number_generator">Uniform
44        Random Number Generator</a></span></dt>
45<dt><span class="section"><a href="reference.html#boost_random.reference.concepts.non_deterministic_uniform_random_number_generator">Non-deterministic
46        Uniform Random Number Generator</a></span></dt>
47<dt><span class="section"><a href="reference.html#boost_random.reference.concepts.pseudo_random_number_generator">Pseudo-Random
48        Number Generator</a></span></dt>
49<dt><span class="section"><a href="reference.html#boost_random.reference.concepts.quasi_random_number_generator">Quasi-Random
50        Number Generator</a></span></dt>
51<dt><span class="section"><a href="reference.html#boost_random.reference.concepts.seed_sequence">Seed
52        Sequence</a></span></dt>
53<dt><span class="section"><a href="reference.html#boost_random.reference.concepts.random_distribution">Random
54        Distribution</a></span></dt>
55</dl></div>
56<div class="section">
57<div class="titlepage"><div><div><h4 class="title">
58<a name="boost_random.reference.concepts.introduction"></a><a class="link" href="reference.html#boost_random.reference.concepts.introduction" title="Introduction">Introduction</a>
59</h4></div></div></div>
60<p>
61          Random numbers are required in a number of different problem domains, such
62          as
63        </p>
64<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
65<li class="listitem">
66              numerics (simulation, Monte-Carlo integration)
67            </li>
68<li class="listitem">
69              games (non-deterministic enemy behavior)
70            </li>
71<li class="listitem">
72              security (key generation)
73            </li>
74<li class="listitem">
75              testing (random coverage in white-box tests)
76            </li>
77</ul></div>
78<p>
79          The Boost Random Number Generator Library provides a framework for random
80          number generators with well-defined properties so that the generators can
81          be used in the demanding numerics and security domains. For a general introduction
82          to random numbers in numerics, see
83        </p>
84<div class="blockquote"><blockquote class="blockquote"><p>
85            "Numerical Recipes in C: The art of scientific computing",
86            William H. Press, Saul A. Teukolsky, William A. Vetterling, Brian P.
87            Flannery, 2nd ed., 1992, pp. 274-328
88          </p></blockquote></div>
89<p>
90          Depending on the requirements of the problem domain, different variations
91          of random number generators are appropriate:
92        </p>
93<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
94<li class="listitem">
95              non-deterministic random number generator
96            </li>
97<li class="listitem">
98              pseudo-random number generator
99            </li>
100<li class="listitem">
101              quasi-random number generator
102            </li>
103</ul></div>
104<p>
105          All variations have some properties in common, the concepts (in the STL
106          sense) is called <a class="link" href="reference.html#boost_random.reference.concepts.uniform_random_number_generator" title="Uniform Random Number Generator">UniformRandomNumberGenerator</a>.
107          This concept will be defined in a subsequent section.
108        </p>
109<p>
110          The goals for this library are the following:
111        </p>
112<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
113<li class="listitem">
114              allow easy integration of third-party random-number generators
115            </li>
116<li class="listitem">
117              provide easy-to-use front-end classes which model popular distributions
118            </li>
119<li class="listitem">
120              provide maximum efficiency
121            </li>
122</ul></div>
123</div>
124<div class="section">
125<div class="titlepage"><div><div><h4 class="title">
126<a name="boost_random.reference.concepts.uniform_random_number_generator"></a><a class="link" href="reference.html#boost_random.reference.concepts.uniform_random_number_generator" title="Uniform Random Number Generator">Uniform
127        Random Number Generator</a>
128</h4></div></div></div>
129<p>
130          A uniform random number generator provides a sequence of random numbers
131          uniformly distributed on a given range. The range can be compile-time fixed
132          or available (only) after run-time construction of the object.
133        </p>
134<p>
135          The <span class="emphasis"><em>tight lower bound</em></span> of some (finite) set S is the
136          (unique) member l in S, so that for all v in S, l &lt;= v holds. Likewise,
137          the <span class="emphasis"><em>tight upper bound</em></span> of some (finite) set S is the
138          (unique) member u in S, so that for all v in S, v &lt;= u holds.
139        </p>
140<p>
141          In the following table, X denotes a number generator class returning objects
142          of type T, and v is a const value of X.
143        </p>
144<div class="table">
145<a name="boost_random.reference.concepts.uniform_random_number_generator.uniformrandomnumbergenerator_requirements"></a><p class="title"><b>Table 33.1. UniformRandomNumberGenerator requirements</b></p>
146<div class="table-contents"><table class="table" summary="UniformRandomNumberGenerator requirements">
147<colgroup>
148<col>
149<col>
150<col>
151</colgroup>
152<thead><tr>
153<th>
154                  <p>
155                    expression
156                  </p>
157                </th>
158<th>
159                  <p>
160                    return type
161                  </p>
162                </th>
163<th>
164                  <p>
165                    pre/post-condition
166                  </p>
167                </th>
168</tr></thead>
169<tbody>
170<tr>
171<td>
172                  <p>
173                    <code class="computeroutput"><span class="identifier">X</span><span class="special">::</span><span class="identifier">result_type</span></code>
174                  </p>
175                </td>
176<td>
177                  <p>
178                    <code class="computeroutput"><span class="identifier">T</span></code>
179                  </p>
180                </td>
181<td>
182                  <p>
183                    <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">is_specialized</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>, <code class="computeroutput"><span class="identifier">T</span></code>
184                    is <a href="../../../doc/html/LessThanComparable.html" target="_top">LessThanComparable</a>
185                  </p>
186                </td>
187</tr>
188<tr>
189<td>
190                  <p>
191                    <code class="computeroutput"><span class="identifier">u</span><span class="special">.</span><span class="keyword">operator</span><span class="special">()()</span></code>
192                  </p>
193                </td>
194<td>
195                  <p>
196                    <code class="computeroutput"><span class="identifier">T</span></code>
197                  </p>
198                </td>
199<td>
200                  <p>
201                    -
202                  </p>
203                </td>
204</tr>
205<tr>
206<td>
207                  <p>
208                    <code class="computeroutput"><span class="identifier">v</span><span class="special">.</span><span class="identifier">min</span><span class="special">()</span></code>
209                  </p>
210                </td>
211<td>
212                  <p>
213                    <code class="computeroutput"><span class="identifier">T</span></code>
214                  </p>
215                </td>
216<td>
217                  <p>
218                    tight lower bound on the set of all values returned by <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>.
219                    The return value of this function shall not change during the
220                    lifetime of the object.
221                  </p>
222                </td>
223</tr>
224<tr>
225<td>
226                  <p>
227                    <code class="computeroutput"><span class="identifier">v</span><span class="special">.</span><span class="identifier">max</span><span class="special">()</span></code>
228                  </p>
229                </td>
230<td>
231                  <p>
232                    <code class="computeroutput"><span class="identifier">T</span></code>
233                  </p>
234                </td>
235<td>
236                  <p>
237                    if <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">is_integer</span></code>, tight upper bound
238                    on the set of all values returned by <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>, otherwise, the smallest representable
239                    number larger than the tight upper bound on the set of all values
240                    returned by <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>. In any case, the return value
241                    of this function shall not change during the lifetime of the
242                    object.
243                  </p>
244                </td>
245</tr>
246</tbody>
247</table></div>
248</div>
249<br class="table-break"><p>
250          The member functions <code class="computeroutput"><span class="identifier">min</span></code>,
251          <code class="computeroutput"><span class="identifier">max</span></code>, and <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>
252          shall have amortized constant time complexity.
253        </p>
254<div class="note"><table border="0" summary="Note">
255<tr>
256<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
257<th align="left">Note</th>
258</tr>
259<tr><td align="left" valign="top">
260<p>
261            For integer generators (i.e. integer <code class="computeroutput"><span class="identifier">T</span></code>),
262            the generated values <code class="computeroutput"><span class="identifier">x</span></code>
263            fulfill <code class="computeroutput"><span class="identifier">min</span><span class="special">()</span>
264            <span class="special">&lt;=</span> <span class="identifier">x</span>
265            <span class="special">&lt;=</span> <span class="identifier">max</span><span class="special">()</span></code>, for non-integer generators (i.e. non-integer
266            <code class="computeroutput"><span class="identifier">T</span></code>), the generated values
267            <code class="computeroutput"><span class="identifier">x</span></code> fulfill <code class="computeroutput"><span class="identifier">min</span><span class="special">()</span> <span class="special">&lt;=</span> <span class="identifier">x</span> <span class="special">&lt;</span> <span class="identifier">max</span><span class="special">()</span></code>.
268          </p>
269<p>
270            Rationale: The range description with min and max serves two purposes.
271            First, it allows scaling of the values to some canonical range, such
272            as [0..1). Second, it describes the significant bits of the values, which
273            may be relevant for further processing.
274          </p>
275<p>
276            The range is a closed interval [min,max] for integers, because the underlying
277            type may not be able to represent the half-open interval [min,max+1).
278            It is a half-open interval [min, max) for non-integers, because this
279            is much more practical for borderline cases of continuous distributions.
280          </p>
281</td></tr>
282</table></div>
283<div class="note"><table border="0" summary="Note">
284<tr>
285<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
286<th align="left">Note</th>
287</tr>
288<tr><td align="left" valign="top">
289<p>
290            The <a class="link" href="reference.html#boost_random.reference.concepts.uniform_random_number_generator" title="Uniform Random Number Generator">UniformRandomNumberGenerator</a>
291            concept does not require <code class="computeroutput"><span class="keyword">operator</span><span class="special">()(</span><span class="keyword">long</span><span class="special">)</span></code> and thus it does not fulfill the <code class="computeroutput"><span class="identifier">RandomNumberGenerator</span></code> (std:25.2.11
292            [lib.alg.random.shuffle]) requirements. Use the <code class="computeroutput"><a class="link" href="../boost/random/random_number_generator.html" title="Class template random_number_generator">random_number_generator</a></code>
293            adapter for that.
294          </p>
295<p>
296            Rationale: <code class="computeroutput"><span class="keyword">operator</span><span class="special">()(</span><span class="keyword">long</span><span class="special">)</span></code>
297            is not provided, because mapping the output of some generator with integer
298            range to a different integer range is not trivial.
299          </p>
300</td></tr>
301</table></div>
302</div>
303<div class="section">
304<div class="titlepage"><div><div><h4 class="title">
305<a name="boost_random.reference.concepts.non_deterministic_uniform_random_number_generator"></a><a class="link" href="reference.html#boost_random.reference.concepts.non_deterministic_uniform_random_number_generator" title="Non-deterministic Uniform Random Number Generator">Non-deterministic
306        Uniform Random Number Generator</a>
307</h4></div></div></div>
308<p>
309          A non-deterministic uniform random number generator is a <a class="link" href="reference.html#boost_random.reference.concepts.uniform_random_number_generator" title="Uniform Random Number Generator">UniformRandomNumberGenerator</a>
310          that is based on some stochastic process. Thus, it provides a sequence
311          of truly-random numbers. Examples for such processes are nuclear decay,
312          noise of a Zehner diode, tunneling of quantum particles, rolling a die,
313          drawing from an urn, and tossing a coin. Depending on the environment,
314          inter-arrival times of network packets or keyboard events may be close
315          approximations of stochastic processes.
316        </p>
317<p>
318          The class <code class="computeroutput"><a class="link" href="../boost/random/random_device.html" title="Class random_device">random_device</a></code>
319          is a model for a non-deterministic random number generator.
320        </p>
321<div class="note"><table border="0" summary="Note">
322<tr>
323<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
324<th align="left">Note</th>
325</tr>
326<tr><td align="left" valign="top"><p>
327            This type of random-number generator is useful for security applications,
328            where it is important to prevent an outside attacker from guessing the
329            numbers and thus obtaining your encryption or authentication key. Thus,
330            models of this concept should be cautious not to leak any information,
331            to the extent possible by the environment. For example, it might be advisable
332            to explicitly clear any temporary storage as soon as it is no longer
333            needed.
334          </p></td></tr>
335</table></div>
336</div>
337<div class="section">
338<div class="titlepage"><div><div><h4 class="title">
339<a name="boost_random.reference.concepts.pseudo_random_number_generator"></a><a class="link" href="reference.html#boost_random.reference.concepts.pseudo_random_number_generator" title="Pseudo-Random Number Generator">Pseudo-Random
340        Number Generator</a>
341</h4></div></div></div>
342<p>
343          A pseudo-random number generator is a <a class="link" href="reference.html#boost_random.reference.concepts.uniform_random_number_generator" title="Uniform Random Number Generator">UniformRandomNumberGenerator</a>
344          which provides a deterministic sequence of pseudo-random numbers, based
345          on some algorithm and internal state. <code class="computeroutput"><a class="link" href="../boost/random/linear_congruential_engine.html" title="Class template linear_congruential_engine">Linear
346          congruential</a></code> and <code class="computeroutput"><a class="link" href="../boost/random/invers_1_3_34_5_6_20_1_1_1.html" title="Class template inversive_congruential_engine">inversive
347          congruential</a></code> generators are examples of such <a class="link" href="reference.html#boost_random.reference.concepts.pseudo_random_number_generator" title="Pseudo-Random Number Generator">pseudo-random
348          number generators</a>. Often, these generators are very sensitive to
349          their parameters. In order to prevent wrong implementations from being
350          used, an external testsuite should check that the generated sequence and
351          the validation value provided do indeed match.
352        </p>
353<p>
354          Donald E. Knuth gives an extensive overview on pseudo-random number generation
355          in his book "The Art of Computer Programming, Vol. 2, 3rd edition,
356          Addison-Wesley, 1997". The descriptions for the specific generators
357          contain additional references.
358        </p>
359<div class="note"><table border="0" summary="Note">
360<tr>
361<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
362<th align="left">Note</th>
363</tr>
364<tr><td align="left" valign="top"><p>
365            Because the state of a pseudo-random number generator is necessarily
366            finite, the sequence of numbers returned by the generator will loop eventually.
367          </p></td></tr>
368</table></div>
369<p>
370          In addition to the <a class="link" href="reference.html#boost_random.reference.concepts.uniform_random_number_generator" title="Uniform Random Number Generator">UniformRandomNumberGenerator</a>
371          requirements, a pseudo-random number generator has some additional requirements.
372          In the following table, <code class="computeroutput"><span class="identifier">X</span></code>
373          denotes a pseudo-random number generator class, <code class="computeroutput"><span class="identifier">u</span></code>
374          is a value of <code class="computeroutput"><span class="identifier">X</span></code>, <code class="computeroutput"><span class="identifier">i</span></code> is a value of integral type, <code class="computeroutput"><span class="identifier">s</span></code> is a value of a type which models
375          <a class="link" href="reference.html#boost_random.reference.concepts.seed_sequence" title="Seed Sequence">SeedSeq</a>,
376          and <code class="computeroutput"><span class="identifier">j</span></code> a value of type
377          <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
378          <span class="keyword">long</span></code>.
379        </p>
380<div class="table">
381<a name="boost_random.reference.concepts.pseudo_random_number_generator.pseudorandomnumbergenerator_requirements"></a><p class="title"><b>Table 33.2. PseudoRandomNumberGenerator requirements</b></p>
382<div class="table-contents"><table class="table" summary="PseudoRandomNumberGenerator requirements">
383<colgroup>
384<col>
385<col>
386<col>
387</colgroup>
388<thead><tr>
389<th>
390                  <p>
391                    expression
392                  </p>
393                </th>
394<th>
395                  <p>
396                    return type
397                  </p>
398                </th>
399<th>
400                  <p>
401                    pre/post-condition
402                  </p>
403                </th>
404</tr></thead>
405<tbody>
406<tr>
407<td>
408                  <p>
409                    <code class="computeroutput"><span class="identifier">X</span><span class="special">()</span></code>
410                  </p>
411                </td>
412<td>
413                  <p>
414                    -
415                  </p>
416                </td>
417<td>
418                  <p>
419                    creates a generator with a default seed.
420                  </p>
421                </td>
422</tr>
423<tr>
424<td>
425                  <p>
426                    <code class="computeroutput"><span class="identifier">X</span><span class="special">(</span><span class="identifier">i</span><span class="special">)</span></code>
427                  </p>
428                </td>
429<td>
430                  <p>
431                    -
432                  </p>
433                </td>
434<td>
435                  <p>
436                    creates a generator seeding it with the integer <code class="computeroutput"><span class="identifier">i</span></code>.
437                  </p>
438                </td>
439</tr>
440<tr>
441<td>
442                  <p>
443                    <code class="computeroutput"><span class="identifier">X</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
444                  </p>
445                </td>
446<td>
447                  <p>
448                    -
449                  </p>
450                </td>
451<td>
452                  <p>
453                    creates a generator setting its initial state from the <a class="link" href="reference.html#boost_random.reference.concepts.seed_sequence" title="Seed Sequence">SeedSeq</a>
454                    <code class="computeroutput"><span class="identifier">s</span></code>.
455                  </p>
456                </td>
457</tr>
458<tr>
459<td>
460                  <p>
461                    <code class="computeroutput"><span class="identifier">u</span><span class="special">.</span><span class="identifier">seed</span><span class="special">(...)</span></code>
462                  </p>
463                </td>
464<td>
465                  <p>
466                    <code class="computeroutput"><span class="keyword">void</span></code>
467                  </p>
468                </td>
469<td>
470                  <p>
471                    sets the current state to be identical to the state that would
472                    be created by the corresponding constructor.
473                  </p>
474                </td>
475</tr>
476<tr>
477<td>
478                  <p>
479                    <code class="computeroutput"><span class="identifier">u</span><span class="special">.</span><span class="identifier">discard</span><span class="special">(</span><span class="identifier">j</span><span class="special">)</span></code>
480                  </p>
481                </td>
482<td>
483                  <p>
484                    <code class="computeroutput"><span class="keyword">void</span></code>
485                  </p>
486                </td>
487<td>
488                  <p>
489                    Advances the generator by <code class="computeroutput"><span class="identifier">j</span></code>
490                    steps as if by <code class="computeroutput"><span class="identifier">j</span></code>
491                    calls to <code class="computeroutput"><span class="identifier">u</span><span class="special">()</span></code>.
492                  </p>
493                </td>
494</tr>
495</tbody>
496</table></div>
497</div>
498<br class="table-break"><p>
499          Classes which model a pseudo-random number generator shall also model
500          <a href="../../../doc/html/EqualityComparable.html" target="_top">EqualityComparable</a>,
501          i.e. implement <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code>.
502          Two pseudo-random number generators are defined to be <span class="emphasis"><em>equivalent</em></span>
503          if they both return an identical sequence of numbers starting from a given
504          state.
505        </p>
506<p>
507          Classes which model a pseudo-random number generator shall also model the
508          Streamable concept, i.e. implement <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> and <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code>. <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> writes all current state of the
509          pseudo-random number generator to the given <code class="computeroutput"><span class="identifier">ostream</span></code>
510          so that <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code>
511          can restore the state at a later time. The state shall be written in a
512          platform-independent manner, but it is assumed that the <code class="computeroutput"><span class="identifier">locales</span></code>
513          used for writing and reading be the same. The pseudo-random number generator
514          with the restored state and the original at the just-written state shall
515          be equivalent.
516        </p>
517<p>
518          Classes which model a pseudo-random number generator should also model
519          the <a href="../../../doc/html/CopyConstructible.html" target="_top">CopyConstructible</a>
520          and <a href="../../../doc/html/Assignable.html" target="_top">Assignable</a> concepts.
521          However, note that the sequences of the original and the copy are strongly
522          correlated (in fact, they are identical), which may make them unsuitable
523          for some problem domains. Thus, copying pseudo-random number generators
524          is discouraged; they should always be passed by (non-const) reference.
525        </p>
526<p>
527          The classes <code class="computeroutput"><a class="link" href="../boost/random/rand48.html" title="Class rand48">rand48</a></code>,
528          <code class="computeroutput"><a class="link" href="../boost/random/minstd_rand.html" title="Type definition minstd_rand">minstd_rand</a></code>, and
529          <code class="computeroutput"><a class="link" href="../boost/random/mt19937.html" title="Type definition mt19937">mt19937</a></code> are models
530          for a pseudo-random number generator.
531        </p>
532<div class="note"><table border="0" summary="Note">
533<tr>
534<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
535<th align="left">Note</th>
536</tr>
537<tr><td align="left" valign="top"><p>
538            This type of random-number generator is useful for numerics, games and
539            testing. The non-zero arguments constructor(s) and the <code class="computeroutput"><span class="identifier">seed</span><span class="special">()</span></code>
540            member function(s) allow for a user-provided state to be installed in
541            the generator. This is useful for debugging Monte-Carlo algorithms and
542            analyzing particular test scenarios. The Streamable concept allows to
543            save/restore the state of the generator, for example to re-run a test
544            suite at a later time.
545          </p></td></tr>
546</table></div>
547</div>
548<div class="section">
549<div class="titlepage"><div><div><h4 class="title">
550<a name="boost_random.reference.concepts.quasi_random_number_generator"></a><a class="link" href="reference.html#boost_random.reference.concepts.quasi_random_number_generator" title="Quasi-Random Number Generator">Quasi-Random
551        Number Generator</a>
552</h4></div></div></div>
553<p>
554          A quasi-random number generator is a <a class="link" href="reference.html#boost_random.reference.concepts.uniform_random_number_generator" title="Uniform Random Number Generator">UniformRandomNumberGenerator</a>
555          which provides a deterministic sequence of quasi-random numbers, based
556          on some algorithm and internal state. <code class="computeroutput"><a class="link" href="../boost/random/niederreiter_base2_engine.html" title="Class template niederreiter_base2_engine">Niederreiter
557          base 2</a></code> generator is an example of such a <a class="link" href="reference.html#boost_random.reference.concepts.quasi_random_number_generator" title="Quasi-Random Number Generator">quasi-random
558          number generator</a>. The "quasi" modifier is used to denote
559          more clearly that the values produced by such a generator are neither random
560          nor pseudo-random, but they form a low discrepancy sequence. The intuitive
561          idea is that a low discrepancy sequence is more evenly distributed than
562          a pseudo random sequence would be. For example, if we generate a low discrepancy
563          sequence of 2D points on a square, this square would be covered more evenly,
564          and the number of points falling to any part of the square would be proportional
565          to the number of points in the whole square. Such sequences share some
566          properties of random variables and in certain applications such as the
567          quasi-Monte Carlo method their lower discrepancy is an important advantage.
568        </p>
569<div class="note"><table border="0" summary="Note">
570<tr>
571<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
572<th align="left">Note</th>
573</tr>
574<tr><td align="left" valign="top"><p>
575            The quasi-Monte Carlo method uses a low-discrepancy sequence such as
576            the Niederreiter base 2 sequence, the Sobol sequence, or the Faure sequence
577            among the others. The advantage of using low-discrepancy sequences is
578            a probabilistically faster rate of convergence. Quasi-Monte Carlo has
579            a rate of convergence O(log(N)<sup>s</sup>/N), whereas the rate of convergence for
580            the Monte Carlo method, which uses a pseudo-random sequence, is O(N<sup>-0.5</sup>).
581          </p></td></tr>
582</table></div>
583<p>
584          Harold Niederreiter gives an extensive overview on random number generation
585          and quasi-Monte Carlo methods in his book "Random number generation
586          and quasi-Monte Carlo methods, Society for Industrial and Applied Mathematics,
587          1992".
588        </p>
589<p>
590          In addition to the <a class="link" href="reference.html#boost_random.reference.concepts.uniform_random_number_generator" title="Uniform Random Number Generator">UniformRandomNumberGenerator</a>
591          requirements, a quasi-random number generator has some additional requirements.
592          In the following table, <code class="computeroutput"><span class="identifier">X</span></code>
593          denotes a quasi-random number generator class, <code class="computeroutput"><span class="identifier">u</span></code>
594          is a value of <code class="computeroutput"><span class="identifier">X</span></code>, <code class="computeroutput"><span class="identifier">v</span></code> is a const value of <code class="computeroutput"><span class="identifier">X</span></code>,
595          and <code class="computeroutput"><span class="identifier">j</span></code> a value of type
596          <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
597          <span class="keyword">long</span></code>.
598        </p>
599<div class="table">
600<a name="boost_random.reference.concepts.quasi_random_number_generator.quasirandomnumbergenerator_requirements"></a><p class="title"><b>Table 33.3. QuasiRandomNumberGenerator requirements</b></p>
601<div class="table-contents"><table class="table" summary="QuasiRandomNumberGenerator requirements">
602<colgroup>
603<col>
604<col>
605<col>
606</colgroup>
607<thead><tr>
608<th>
609                  <p>
610                    expression
611                  </p>
612                </th>
613<th>
614                  <p>
615                    return type
616                  </p>
617                </th>
618<th>
619                  <p>
620                    pre/post-condition
621                  </p>
622                </th>
623</tr></thead>
624<tbody>
625<tr>
626<td>
627                  <p>
628                    <code class="computeroutput"><span class="identifier">X</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
629                  </p>
630                </td>
631<td>
632                  <p>
633                    -
634                  </p>
635                </td>
636<td>
637                  <p>
638                    creates an <code class="computeroutput"><span class="identifier">s</span></code>-dimensional
639                    generator with a default seed. Dimension <code class="computeroutput"><span class="identifier">s</span></code>
640                    is an integer no less than 1.
641                  </p>
642                </td>
643</tr>
644<tr>
645<td>
646                  <p>
647                    <code class="computeroutput"><span class="identifier">v</span><span class="special">.</span><span class="identifier">dimension</span><span class="special">()</span></code>
648                  </p>
649                </td>
650<td>
651                  <p>
652                    std::size_t
653                  </p>
654                </td>
655<td>
656                  <p>
657                    the dimension of quasi-random domain.
658                  </p>
659                </td>
660</tr>
661<tr>
662<td>
663                  <p>
664                    <code class="computeroutput"><span class="identifier">u</span><span class="special">.</span><span class="identifier">seed</span><span class="special">(</span><span class="identifier">i</span><span class="special">)</span></code>
665                  </p>
666                </td>
667<td>
668                  <p>
669                    <code class="computeroutput"><span class="keyword">void</span></code>
670                  </p>
671                </td>
672<td>
673                  <p>
674                    seeds the generator with the integer <code class="computeroutput"><span class="identifier">i</span></code>.
675                  </p>
676                </td>
677</tr>
678<tr>
679<td>
680                  <p>
681                    <code class="computeroutput"><span class="identifier">u</span><span class="special">.</span><span class="identifier">discard</span><span class="special">(</span><span class="identifier">j</span><span class="special">)</span></code>
682                  </p>
683                </td>
684<td>
685                  <p>
686                    <code class="computeroutput"><span class="keyword">void</span></code>
687                  </p>
688                </td>
689<td>
690                  <p>
691                    Advances the generator by <code class="computeroutput"><span class="identifier">j</span></code>
692                    steps as if by <code class="computeroutput"><span class="identifier">j</span></code>
693                    calls to <code class="computeroutput"><span class="identifier">u</span><span class="special">()</span></code>.
694                  </p>
695                </td>
696</tr>
697</tbody>
698</table></div>
699</div>
700<br class="table-break"><div class="note"><table border="0" summary="Note">
701<tr>
702<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
703<th align="left">Note</th>
704</tr>
705<tr><td align="left" valign="top"><p>
706            The <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>
707            returns a successive element of an <code class="computeroutput"><span class="identifier">s</span></code>-dimensional
708            (<code class="computeroutput"><span class="identifier">s</span></code> = <code class="computeroutput"><span class="identifier">v</span><span class="special">.</span><span class="identifier">dimension</span><span class="special">()</span></code>) vector at each invocation. When all
709            elements are exhausted, <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code> begins anew with the starting element
710            of a subsequent <code class="computeroutput"><span class="identifier">s</span></code>-dimensional
711            vector.
712          </p></td></tr>
713</table></div>
714<p>
715          Classes which model a quasi-random number generator shall also model <a href="../../../doc/html/EqualityComparable.html" target="_top">EqualityComparable</a>,
716          i.e. implement <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code>.
717          Two quasi-random number generators are defined to be <span class="emphasis"><em>equivalent</em></span>
718          if they both return an identical sequence of numbers starting from a given
719          state.
720        </p>
721<p>
722          Classes which model a quasi-random number generator shall also model the
723          Streamable concept, i.e. implement <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> and <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code>. <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> writes all current state of the
724          quasi-random number generator to the given <code class="computeroutput"><span class="identifier">ostream</span></code>
725          so that <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code>
726          can restore the state at a later time. The state shall be written in a
727          platform-independent manner, but it is assumed that the <code class="computeroutput"><span class="identifier">locales</span></code>
728          used for writing and reading be the same. The quasi-random number generator
729          with the restored state and the original at the just-written state shall
730          be equivalent.
731        </p>
732<p>
733          Classes which model a quasi-random number generator should also model the
734          <a href="../../../doc/html/CopyConstructible.html" target="_top">CopyConstructible</a>
735          and <a href="../../../doc/html/Assignable.html" target="_top">Assignable</a> concepts.
736          However, note that the sequences of the original and the copy are strongly
737          correlated (in fact, they are identical), which may make them unsuitable
738          for some problem domains. Thus, copying quasi-random number generators
739          is discouraged; they should always be passed by (non-const) reference.
740        </p>
741<p>
742          The classes <code class="computeroutput"><a class="link" href="../boost/random/niederreiter_base2.html" title="Type definition niederreiter_base2">niederreiter_base2</a></code>,
743          <code class="computeroutput"><a class="link" href="../boost/random/sobol.html" title="Type definition sobol">sobol</a></code>, <code class="computeroutput"><a class="link" href="../boost/random/faure.html" title="Type definition faure">faure</a></code>
744          are models for a quasi-random number generator.
745        </p>
746</div>
747<div class="section">
748<div class="titlepage"><div><div><h4 class="title">
749<a name="boost_random.reference.concepts.seed_sequence"></a><a class="link" href="reference.html#boost_random.reference.concepts.seed_sequence" title="Seed Sequence">Seed
750        Sequence</a>
751</h4></div></div></div>
752<p>
753          A SeedSeq represents a sequence of values that can be used to set the initial
754          state of a <a class="link" href="reference.html#boost_random.reference.concepts.pseudo_random_number_generator" title="Pseudo-Random Number Generator">PseudoRandomNumberGenerator</a>.
755          <code class="computeroutput"><span class="identifier">i</span></code> and <code class="computeroutput"><span class="identifier">j</span></code>
756          are RandomAccessIterators whose <code class="computeroutput"><span class="identifier">value_type</span></code>
757          is an unsigned integer type with at least 32 bits.
758        </p>
759<div class="table">
760<a name="boost_random.reference.concepts.seed_sequence.seedseq_requirements"></a><p class="title"><b>Table 33.4. SeedSeq requirements</b></p>
761<div class="table-contents"><table class="table" summary="SeedSeq requirements">
762<colgroup>
763<col>
764<col>
765<col>
766<col>
767</colgroup>
768<thead><tr>
769<th>
770                  <p>
771                    expression
772                  </p>
773                </th>
774<th>
775                  <p>
776                    return type
777                  </p>
778                </th>
779<th>
780                  <p>
781                    pre/post-condition
782                  </p>
783                </th>
784<th>
785                  <p>
786                    complexity
787                  </p>
788                </th>
789</tr></thead>
790<tbody><tr>
791<td>
792                  <p>
793                    <code class="computeroutput"><span class="identifier">s</span><span class="special">.</span><span class="identifier">generate</span><span class="special">(</span><span class="identifier">i</span><span class="special">,</span>
794                    <span class="identifier">j</span><span class="special">)</span></code>
795                  </p>
796                </td>
797<td>
798                  <p>
799                    void
800                  </p>
801                </td>
802<td>
803                  <p>
804                    stores 32-bit values to all the elements in the iterator range
805                    defined by <code class="computeroutput"><span class="identifier">i</span></code>
806                    and <code class="computeroutput"><span class="identifier">j</span></code>
807                  </p>
808                </td>
809<td>
810                  <p>
811                    O(j - i)
812                  </p>
813                </td>
814</tr></tbody>
815</table></div>
816</div>
817<br class="table-break"><p>
818          The class <code class="computeroutput"><a class="link" href="../boost/random/seed_seq.html" title="Class seed_seq">seed_seq</a></code>
819          and every <a class="link" href="reference.html#boost_random.reference.concepts.uniform_random_number_generator" title="Uniform Random Number Generator">UniformRandomNumberGenerator</a>
820          provided by the library are models of <a class="link" href="reference.html#boost_random.reference.concepts.seed_sequence" title="Seed Sequence">SeedSeq</a>.
821        </p>
822</div>
823<div class="section">
824<div class="titlepage"><div><div><h4 class="title">
825<a name="boost_random.reference.concepts.random_distribution"></a><a class="link" href="reference.html#boost_random.reference.concepts.random_distribution" title="Random Distribution">Random
826        Distribution</a>
827</h4></div></div></div>
828<p>
829          A random distribution produces random numbers distributed according to
830          some distribution, given uniformly distributed random values as input.
831          In the following table, <code class="computeroutput"><span class="identifier">X</span></code>
832          denotes a random distribution class returning objects of type <code class="computeroutput"><span class="identifier">T</span></code>, <code class="computeroutput"><span class="identifier">u</span></code>
833          is a value of <code class="computeroutput"><span class="identifier">X</span></code>, <code class="computeroutput"><span class="identifier">x</span></code> and <code class="computeroutput"><span class="identifier">y</span></code>
834          are (possibly const) values of <code class="computeroutput"><span class="identifier">X</span></code>,
835          <code class="computeroutput"><span class="identifier">P</span></code> is the <code class="computeroutput"><span class="identifier">param_type</span></code> of the distribution, <code class="computeroutput"><span class="identifier">p</span></code> is a value of <code class="computeroutput"><span class="identifier">P</span></code>,
836          and <code class="computeroutput"><span class="identifier">e</span></code> is an lvalue of an
837          arbitrary type that meets the requirements of a <a class="link" href="reference.html#boost_random.reference.concepts.uniform_random_number_generator" title="Uniform Random Number Generator">UniformRandomNumberGenerator</a>,
838          returning values of type <code class="computeroutput"><span class="identifier">U</span></code>.
839        </p>
840<div class="table">
841<a name="boost_random.reference.concepts.random_distribution.random_distribution_requirements__in_addition_to_copyconstructible__and_assignable_"></a><p class="title"><b>Table 33.5. Random distribution requirements (in addition to CopyConstructible,
842          and Assignable)</b></p>
843<div class="table-contents"><table class="table" summary="Random distribution requirements (in addition to CopyConstructible,
844          and Assignable)">
845<colgroup>
846<col>
847<col>
848<col>
849<col>
850</colgroup>
851<thead><tr>
852<th>
853                  <p>
854                    expression
855                  </p>
856                </th>
857<th>
858                  <p>
859                    return type
860                  </p>
861                </th>
862<th>
863                  <p>
864                    pre/post-condition
865                  </p>
866                </th>
867<th>
868                  <p>
869                    complexity
870                  </p>
871                </th>
872</tr></thead>
873<tbody>
874<tr>
875<td>
876                  <p>
877                    <code class="computeroutput"><span class="identifier">X</span><span class="special">::</span><span class="identifier">result_type</span></code>
878                  </p>
879                </td>
880<td>
881                  <p>
882                    <code class="computeroutput"><span class="identifier">T</span></code>
883                  </p>
884                </td>
885<td>
886                  <p>
887                    -
888                  </p>
889                </td>
890<td>
891                  <p>
892                    compile-time
893                  </p>
894                </td>
895</tr>
896<tr>
897<td>
898                  <p>
899                    <code class="computeroutput"><span class="identifier">X</span><span class="special">::</span><span class="identifier">param_type</span></code>
900                  </p>
901                </td>
902<td>
903                  <p>
904                    <code class="computeroutput"><span class="identifier">P</span></code>
905                  </p>
906                </td>
907<td>
908                  <p>
909                    A type that stores the parameters of the distribution, but not
910                    any of the state used to generate random variates. <code class="computeroutput"><span class="identifier">param_type</span></code> provides the same
911                    set of constructors and accessors as the distribution.
912                  </p>
913                </td>
914<td>
915                  <p>
916                    compile-time
917                  </p>
918                </td>
919</tr>
920<tr>
921<td>
922                  <p>
923                    <code class="computeroutput"><span class="identifier">X</span><span class="special">(</span><span class="identifier">p</span><span class="special">)</span></code>
924                  </p>
925                </td>
926<td>
927                  <p>
928                    <code class="computeroutput"><span class="identifier">X</span></code>
929                  </p>
930                </td>
931<td>
932                  <p>
933                    Initializes a distribution from its parameters
934                  </p>
935                </td>
936<td>
937                  <p>
938                    O(size of state)
939                  </p>
940                </td>
941</tr>
942<tr>
943<td>
944                  <p>
945                    <code class="computeroutput"><span class="identifier">u</span><span class="special">.</span><span class="identifier">reset</span><span class="special">()</span></code>
946                  </p>
947                </td>
948<td>
949                  <p>
950                    <code class="computeroutput"><span class="keyword">void</span></code>
951                  </p>
952                </td>
953<td>
954                  <p>
955                    subsequent uses of <code class="computeroutput"><span class="identifier">u</span></code>
956                    do not depend on values produced by any engine prior to invoking
957                    <code class="computeroutput"><span class="identifier">reset</span></code>.
958                  </p>
959                </td>
960<td>
961                  <p>
962                    constant
963                  </p>
964                </td>
965</tr>
966<tr>
967<td>
968                  <p>
969                    <code class="computeroutput"><span class="identifier">u</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code>
970                  </p>
971                </td>
972<td>
973                  <p>
974                    <code class="computeroutput"><span class="identifier">T</span></code>
975                  </p>
976                </td>
977<td>
978                  <p>
979                    the sequence of numbers returned by successive invocations with
980                    the same object <code class="computeroutput"><span class="identifier">e</span></code>
981                    is randomly distributed with the probability density function
982                    of the distribution
983                  </p>
984                </td>
985<td>
986                  <p>
987                    amortized constant number of invocations of <code class="computeroutput"><span class="identifier">e</span></code>
988                  </p>
989                </td>
990</tr>
991<tr>
992<td>
993                  <p>
994                    <code class="computeroutput"><span class="identifier">u</span><span class="special">(</span><span class="identifier">e</span><span class="special">,</span>
995                    <span class="identifier">p</span><span class="special">)</span></code>
996                  </p>
997                </td>
998<td>
999                  <p>
1000                    <code class="computeroutput"><span class="identifier">T</span></code>
1001                  </p>
1002                </td>
1003<td>
1004                  <p>
1005                    Equivalent to X(p)(e), but may use a different (and presumably
1006                    more efficient) implementation
1007                  </p>
1008                </td>
1009<td>
1010                  <p>
1011                    amortized constant number of invocations of <code class="computeroutput"><span class="identifier">e</span></code>
1012                    + O(size of state)
1013                  </p>
1014                </td>
1015</tr>
1016<tr>
1017<td>
1018                  <p>
1019                    <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">param</span><span class="special">()</span></code>
1020                  </p>
1021                </td>
1022<td>
1023                  <p>
1024                    <code class="computeroutput"><span class="identifier">P</span></code>
1025                  </p>
1026                </td>
1027<td>
1028                  <p>
1029                    Returns the parameters of the distribution
1030                  </p>
1031                </td>
1032<td>
1033                  <p>
1034                    O(size of state)
1035                  </p>
1036                </td>
1037</tr>
1038<tr>
1039<td>
1040                  <p>
1041                    <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">param</span><span class="special">(</span><span class="identifier">p</span><span class="special">)</span></code>
1042                  </p>
1043                </td>
1044<td>
1045                  <p>
1046                    void
1047                  </p>
1048                </td>
1049<td>
1050                  <p>
1051                    Sets the parameters of the distribution
1052                  </p>
1053                </td>
1054<td>
1055                  <p>
1056                    O(size of state)
1057                  </p>
1058                </td>
1059</tr>
1060<tr>
1061<td>
1062                  <p>
1063                    <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">min</span><span class="special">()</span></code>
1064                  </p>
1065                </td>
1066<td>
1067                  <p>
1068                    <code class="computeroutput"><span class="identifier">T</span></code>
1069                  </p>
1070                </td>
1071<td>
1072                  <p>
1073                    returns the minimum value of the distribution
1074                  </p>
1075                </td>
1076<td>
1077                  <p>
1078                    constant
1079                  </p>
1080                </td>
1081</tr>
1082<tr>
1083<td>
1084                  <p>
1085                    <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">max</span><span class="special">()</span></code>
1086                  </p>
1087                </td>
1088<td>
1089                  <p>
1090                    <code class="computeroutput"><span class="identifier">T</span></code>
1091                  </p>
1092                </td>
1093<td>
1094                  <p>
1095                    returns the maximum value of the distribution
1096                  </p>
1097                </td>
1098<td>
1099                  <p>
1100                    constant
1101                  </p>
1102                </td>
1103</tr>
1104<tr>
1105<td>
1106                  <p>
1107                    <code class="computeroutput"><span class="identifier">x</span> <span class="special">==</span>
1108                    <span class="identifier">y</span></code>
1109                  </p>
1110                </td>
1111<td>
1112                  <p>
1113                    <code class="computeroutput"><span class="keyword">bool</span></code>
1114                  </p>
1115                </td>
1116<td>
1117                  <p>
1118                    Indicates whether the two distributions will produce identical
1119                    sequences of random variates if given equal generators
1120                  </p>
1121                </td>
1122<td>
1123                  <p>
1124                    O(size of state)
1125                  </p>
1126                </td>
1127</tr>
1128<tr>
1129<td>
1130                  <p>
1131                    <code class="computeroutput"><span class="identifier">x</span> <span class="special">!=</span>
1132                    <span class="identifier">y</span></code>
1133                  </p>
1134                </td>
1135<td>
1136                  <p>
1137                    <code class="computeroutput"><span class="keyword">bool</span></code>
1138                  </p>
1139                </td>
1140<td>
1141                  <p>
1142                    <code class="computeroutput"><span class="special">!(</span><span class="identifier">x</span>
1143                    <span class="special">==</span> <span class="identifier">y</span><span class="special">)</span></code>
1144                  </p>
1145                </td>
1146<td>
1147                  <p>
1148                    O(size of state)
1149                  </p>
1150                </td>
1151</tr>
1152<tr>
1153<td>
1154                  <p>
1155                    <code class="computeroutput"><span class="identifier">os</span> <span class="special">&lt;&lt;</span>
1156                    <span class="identifier">x</span></code>
1157                  </p>
1158                </td>
1159<td>
1160                  <p>
1161                    <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&amp;</span></code>
1162                  </p>
1163                </td>
1164<td>
1165                  <p>
1166                    writes a textual representation for the parameters and additional
1167                    internal data of the distribution <code class="computeroutput"><span class="identifier">x</span></code>
1168                    to <code class="computeroutput"><span class="identifier">os</span></code>. post:
1169                    The <code class="computeroutput"><span class="identifier">os</span><span class="special">.</span><span class="identifier">fmtflags</span></code> and fill character
1170                    are unchanged.
1171                  </p>
1172                </td>
1173<td>
1174                  <p>
1175                    O(size of state)
1176                  </p>
1177                </td>
1178</tr>
1179<tr>
1180<td>
1181                  <p>
1182                    <code class="computeroutput"><span class="identifier">is</span> <span class="special">&gt;&gt;</span>
1183                    <span class="identifier">u</span></code>
1184                  </p>
1185                </td>
1186<td>
1187                  <p>
1188                    <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream</span><span class="special">&amp;</span></code>
1189                  </p>
1190                </td>
1191<td>
1192                  <p>
1193                    restores the parameters and additional internal data of the distribution
1194                    <code class="computeroutput"><span class="identifier">u</span></code>. pre: <code class="computeroutput"><span class="identifier">is</span></code> provides a textual representation
1195                    that was previously written by <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> post: The <code class="computeroutput"><span class="identifier">is</span><span class="special">.</span><span class="identifier">fmtflags</span></code> are unchanged.
1196                  </p>
1197                </td>
1198<td>
1199                  <p>
1200                    O(size of state)
1201                  </p>
1202                </td>
1203</tr>
1204</tbody>
1205</table></div>
1206</div>
1207<br class="table-break"><p>
1208          Additional requirements: The sequence of numbers produced by repeated invocations
1209          of <code class="computeroutput"><span class="identifier">x</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code> does
1210          not change whether or not <code class="computeroutput"><span class="identifier">os</span>
1211          <span class="special">&lt;&lt;</span> <span class="identifier">x</span></code>
1212          is invoked between any of the invocations <code class="computeroutput"><span class="identifier">x</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code>.
1213          If a textual representation is written using <code class="computeroutput"><span class="identifier">os</span>
1214          <span class="special">&lt;&lt;</span> <span class="identifier">x</span></code>
1215          and that representation is restored into the same or a different object
1216          <code class="computeroutput"><span class="identifier">y</span></code> of the same type using
1217          <code class="computeroutput"><span class="identifier">is</span> <span class="special">&gt;&gt;</span>
1218          <span class="identifier">y</span></code>, repeated invocations of <code class="computeroutput"><span class="identifier">y</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code> produce the same sequence of random numbers
1219          as would repeated invocations of <code class="computeroutput"><span class="identifier">x</span><span class="special">(</span><span class="identifier">e</span><span class="special">)</span></code>.
1220        </p>
1221</div>
1222</div>
1223<div class="section">
1224<div class="titlepage"><div><div><h3 class="title">
1225<a name="boost_random.reference.generators"></a><a class="link" href="reference.html#boost_random.reference.generators" title="Generators">Generators</a>
1226</h3></div></div></div>
1227<p>
1228        This library provides several <a class="link" href="reference.html#boost_random.reference.concepts.pseudo_random_number_generator" title="Pseudo-Random Number Generator">pseudo-random
1229        number generators</a>. The quality of a <a class="link" href="reference.html#boost_random.reference.concepts.pseudo_random_number_generator" title="Pseudo-Random Number Generator">pseudo
1230        random number generator</a> crucially depends on both the algorithm and
1231        its parameters. This library implements the algorithms as class templates
1232        with template value parameters, hidden in <code class="computeroutput"><span class="keyword">namespace</span>
1233        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">random</span></code>. Any particular choice of parameters
1234        is represented as the appropriately specializing <code class="computeroutput"><span class="keyword">typedef</span></code>
1235        in <code class="computeroutput"><span class="keyword">namespace</span> <span class="identifier">boost</span></code>.
1236      </p>
1237<p>
1238        <a class="link" href="reference.html#boost_random.reference.concepts.pseudo_random_number_generator" title="Pseudo-Random Number Generator">Pseudo-random
1239        number generators</a> should not be constructed (initialized) frequently
1240        during program execution, for two reasons. First, initialization requires
1241        full initialization of the internal state of the generator. Thus, generators
1242        with a lot of internal state (see below) are costly to initialize. Second,
1243        initialization always requires some value used as a "seed" for
1244        the generated sequence. It is usually difficult to obtain several good seed
1245        values. For example, one method to obtain a seed is to determine the current
1246        time at the highest resolution available, e.g. microseconds or nanoseconds.
1247        When the <a class="link" href="reference.html#boost_random.reference.concepts.pseudo_random_number_generator" title="Pseudo-Random Number Generator">pseudo-random
1248        number generator</a> is initialized again with the then-current time as
1249        the seed, it is likely that this is at a near-constant (non-random) distance
1250        from the time given as the seed for first initialization. The distance could
1251        even be zero if the resolution of the clock is low, thus the generator re-iterates
1252        the same sequence of random numbers. For some applications, this is inappropriate.
1253      </p>
1254<p>
1255        Note that all <a class="link" href="reference.html#boost_random.reference.concepts.pseudo_random_number_generator" title="Pseudo-Random Number Generator">pseudo-random
1256        number generators</a> described below are <a href="../../../doc/html/CopyConstructible.html" target="_top">CopyConstructible</a>
1257        and <a href="../../../doc/html/Assignable.html" target="_top">Assignable</a>. Copying
1258        or assigning a generator will copy all its internal state, so the original
1259        and the copy will generate the identical sequence of random numbers. Often,
1260        such behavior is not wanted. In particular, beware of the algorithms from
1261        the standard library such as <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">generate</span></code>.
1262        They take a functor argument by value, thereby invoking the copy constructor
1263        when called.
1264      </p>
1265<p>
1266        The following table gives an overview of some characteristics of the generators.
1267        The cycle length is a rough estimate of the quality of the generator; the
1268        approximate relative speed is a performance measure, higher numbers mean
1269        faster random number generation.
1270      </p>
1271<div class="table">
1272<a name="boost_random.reference.generators.generators"></a><p class="title"><b>Table 33.6. generators</b></p>
1273<div class="table-contents"><table class="table" summary="generators">
1274<colgroup>
1275<col>
1276<col>
1277<col>
1278<col>
1279<col>
1280</colgroup>
1281<thead><tr>
1282<th>
1283                <p>
1284                  generator
1285                </p>
1286              </th>
1287<th>
1288                <p>
1289                  length of cycle
1290                </p>
1291              </th>
1292<th>
1293                <p>
1294                  approx. memory requirements
1295                </p>
1296              </th>
1297<th>
1298                <p>
1299                  approx. speed compared to fastest
1300                </p>
1301              </th>
1302<th>
1303                <p>
1304                  comment
1305                </p>
1306              </th>
1307</tr></thead>
1308<tbody>
1309<tr>
1310<td>
1311                <p>
1312                  <code class="computeroutput"><a class="link" href="../boost/random/minstd_rand0.html" title="Type definition minstd_rand0">minstd_rand0</a></code>
1313                </p>
1314              </td>
1315<td>
1316                <p>
1317                  2<sup>31</sup>-2
1318                </p>
1319              </td>
1320<td>
1321                <p>
1322                  <code class="computeroutput"><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">int32_t</span><span class="special">)</span></code>
1323                </p>
1324              </td>
1325<td>
1326                <p>
1327                  16%
1328                </p>
1329              </td>
1330<td>
1331                <p>
1332                  -
1333                </p>
1334              </td>
1335</tr>
1336<tr>
1337<td>
1338                <p>
1339                  <code class="computeroutput"><a class="link" href="../boost/random/minstd_rand.html" title="Type definition minstd_rand">minstd_rand</a></code>
1340                </p>
1341              </td>
1342<td>
1343                <p>
1344                  2<sup>31</sup>-2
1345                </p>
1346              </td>
1347<td>
1348                <p>
1349                  <code class="computeroutput"><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">int32_t</span><span class="special">)</span></code>
1350                </p>
1351              </td>
1352<td>
1353                <p>
1354                  16%
1355                </p>
1356              </td>
1357<td>
1358                <p>
1359                  -
1360                </p>
1361              </td>
1362</tr>
1363<tr>
1364<td>
1365                <p>
1366                  <code class="computeroutput"><a class="link" href="../boost/random/rand48.html" title="Class rand48">rand48</a></code>
1367                </p>
1368              </td>
1369<td>
1370                <p>
1371                  2<sup>48</sup>-1
1372                </p>
1373              </td>
1374<td>
1375                <p>
1376                  <code class="computeroutput"><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">uint64_t</span><span class="special">)</span></code>
1377                </p>
1378              </td>
1379<td>
1380                <p>
1381                  64%
1382                </p>
1383              </td>
1384<td>
1385                <p>
1386                  -
1387                </p>
1388              </td>
1389</tr>
1390<tr>
1391<td>
1392                <p>
1393                  <code class="computeroutput"><a class="link" href="../boost/random/ecuyer1988.html" title="Type definition ecuyer1988">ecuyer1988</a></code>
1394                </p>
1395              </td>
1396<td>
1397                <p>
1398                  approx. 2<sup>61</sup>
1399                </p>
1400              </td>
1401<td>
1402                <p>
1403                  <code class="computeroutput"><span class="number">2</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">int32_t</span><span class="special">)</span></code>
1404                </p>
1405              </td>
1406<td>
1407                <p>
1408                  7%
1409                </p>
1410              </td>
1411<td>
1412                <p>
1413                  -
1414                </p>
1415              </td>
1416</tr>
1417<tr>
1418<td>
1419                <p>
1420                  <code class="computeroutput"><a class="link" href="../boost/random/knuth_b.html" title="Type definition knuth_b">knuth_b</a></code>
1421                </p>
1422              </td>
1423<td>
1424                <p>
1425                  ?
1426                </p>
1427              </td>
1428<td>
1429                <p>
1430                  <code class="computeroutput"><span class="number">257</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">uint32_t</span><span class="special">)</span></code>
1431                </p>
1432              </td>
1433<td>
1434                <p>
1435                  12%
1436                </p>
1437              </td>
1438<td>
1439                <p>
1440                  -
1441                </p>
1442              </td>
1443</tr>
1444<tr>
1445<td>
1446                <p>
1447                  <code class="computeroutput"><a class="link" href="../boost/random/kreutzer1986.html" title="Type definition kreutzer1986">kreutzer1986</a></code>
1448                </p>
1449              </td>
1450<td>
1451                <p>
1452                  ?
1453                </p>
1454              </td>
1455<td>
1456                <p>
1457                  <code class="computeroutput"><span class="number">98</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">uint32_t</span><span class="special">)</span></code>
1458                </p>
1459              </td>
1460<td>
1461                <p>
1462                  37%
1463                </p>
1464              </td>
1465<td>
1466                <p>
1467                  -
1468                </p>
1469              </td>
1470</tr>
1471<tr>
1472<td>
1473                <p>
1474                  <code class="computeroutput"><a class="link" href="../boost/random/taus88.html" title="Type definition taus88">taus88</a></code>
1475                </p>
1476              </td>
1477<td>
1478                <p>
1479                  ~2<sup>88</sup>
1480                </p>
1481              </td>
1482<td>
1483                <p>
1484                  <code class="computeroutput"><span class="number">3</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">uint32_t</span><span class="special">)</span></code>
1485                </p>
1486              </td>
1487<td>
1488                <p>
1489                  100%
1490                </p>
1491              </td>
1492<td>
1493                <p>
1494                  -
1495                </p>
1496              </td>
1497</tr>
1498<tr>
1499<td>
1500                <p>
1501                  <code class="computeroutput"><a class="link" href="../boost/random/hellekalek1995.html" title="Type definition hellekalek1995">hellekalek1995</a></code>
1502                </p>
1503              </td>
1504<td>
1505                <p>
1506                  2<sup>31</sup>-1
1507                </p>
1508              </td>
1509<td>
1510                <p>
1511                  <code class="computeroutput"><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">int32_t</span><span class="special">)</span></code>
1512                </p>
1513              </td>
1514<td>
1515                <p>
1516                  2%
1517                </p>
1518              </td>
1519<td>
1520                <p>
1521                  good uniform distribution in several dimensions
1522                </p>
1523              </td>
1524</tr>
1525<tr>
1526<td>
1527                <p>
1528                  <code class="computeroutput"><a class="link" href="../boost/random/mt11213b.html" title="Type definition mt11213b">mt11213b</a></code>
1529                </p>
1530              </td>
1531<td>
1532                <p>
1533                  2<sup>11213</sup>-1
1534                </p>
1535              </td>
1536<td>
1537                <p>
1538                  <code class="computeroutput"><span class="number">352</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">uint32_t</span><span class="special">)</span></code>
1539                </p>
1540              </td>
1541<td>
1542                <p>
1543                  100%
1544                </p>
1545              </td>
1546<td>
1547                <p>
1548                  good uniform distribution in up to 350 dimensions
1549                </p>
1550              </td>
1551</tr>
1552<tr>
1553<td>
1554                <p>
1555                  <code class="computeroutput"><a class="link" href="../boost/random/mt19937.html" title="Type definition mt19937">mt19937</a></code>
1556                </p>
1557              </td>
1558<td>
1559                <p>
1560                  2<sup>19937</sup>-1
1561                </p>
1562              </td>
1563<td>
1564                <p>
1565                  <code class="computeroutput"><span class="number">625</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">uint32_t</span><span class="special">)</span></code>
1566                </p>
1567              </td>
1568<td>
1569                <p>
1570                  93%
1571                </p>
1572              </td>
1573<td>
1574                <p>
1575                  good uniform distribution in up to 623 dimensions
1576                </p>
1577              </td>
1578</tr>
1579<tr>
1580<td>
1581                <p>
1582                  <code class="computeroutput"><a class="link" href="reference.html#boost.random.mt19937_64">mt19937_64</a></code>
1583                </p>
1584              </td>
1585<td>
1586                <p>
1587                  2<sup>19937</sup>-1
1588                </p>
1589              </td>
1590<td>
1591                <p>
1592                  <code class="computeroutput"><span class="number">312</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">uint64_t</span><span class="special">)</span></code>
1593                </p>
1594              </td>
1595<td>
1596                <p>
1597                  38%
1598                </p>
1599              </td>
1600<td>
1601                <p>
1602                  good uniform distribution in up to 311 dimensions
1603                </p>
1604              </td>
1605</tr>
1606<tr>
1607<td>
1608                <p>
1609                  <code class="computeroutput"><a class="link" href="../boost/random/lagged_fibonacci607.html" title="Type definition lagged_fibonacci607">lagged_fibonacci607</a></code>
1610                </p>
1611              </td>
1612<td>
1613                <p>
1614                  ~2<sup>32000</sup>
1615                </p>
1616              </td>
1617<td>
1618                <p>
1619                  <code class="computeroutput"><span class="number">607</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">double</span><span class="special">)</span></code>
1620                </p>
1621              </td>
1622<td>
1623                <p>
1624                  59%
1625                </p>
1626              </td>
1627<td>
1628                <p>
1629                  -
1630                </p>
1631              </td>
1632</tr>
1633<tr>
1634<td>
1635                <p>
1636                  <code class="computeroutput"><a class="link" href="../boost/random/lagged_fibonacci1279.html" title="Type definition lagged_fibonacci1279">lagged_fibonacci1279</a></code>
1637                </p>
1638              </td>
1639<td>
1640                <p>
1641                  ~2<sup>67000</sup>
1642                </p>
1643              </td>
1644<td>
1645                <p>
1646                  <code class="computeroutput"><span class="number">1279</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">double</span><span class="special">)</span></code>
1647                </p>
1648              </td>
1649<td>
1650                <p>
1651                  59%
1652                </p>
1653              </td>
1654<td>
1655                <p>
1656                  -
1657                </p>
1658              </td>
1659</tr>
1660<tr>
1661<td>
1662                <p>
1663                  <code class="computeroutput"><a class="link" href="../boost/random/lagged_fibonacci2281.html" title="Type definition lagged_fibonacci2281">lagged_fibonacci2281</a></code>
1664                </p>
1665              </td>
1666<td>
1667                <p>
1668                  ~2<sup>120000</sup>
1669                </p>
1670              </td>
1671<td>
1672                <p>
1673                  <code class="computeroutput"><span class="number">2281</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">double</span><span class="special">)</span></code>
1674                </p>
1675              </td>
1676<td>
1677                <p>
1678                  61%
1679                </p>
1680              </td>
1681<td>
1682                <p>
1683                  -
1684                </p>
1685              </td>
1686</tr>
1687<tr>
1688<td>
1689                <p>
1690                  <code class="computeroutput"><a class="link" href="../boost/random/lagged_fibonacci3217.html" title="Type definition lagged_fibonacci3217">lagged_fibonacci3217</a></code>
1691                </p>
1692              </td>
1693<td>
1694                <p>
1695                  ~2<sup>170000</sup>
1696                </p>
1697              </td>
1698<td>
1699                <p>
1700                  <code class="computeroutput"><span class="number">3217</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">double</span><span class="special">)</span></code>
1701                </p>
1702              </td>
1703<td>
1704                <p>
1705                  62%
1706                </p>
1707              </td>
1708<td>
1709                <p>
1710                  -
1711                </p>
1712              </td>
1713</tr>
1714<tr>
1715<td>
1716                <p>
1717                  <code class="computeroutput"><a class="link" href="../boost/random/lagged_fibonacci4423.html" title="Type definition lagged_fibonacci4423">lagged_fibonacci4423</a></code>
1718                </p>
1719              </td>
1720<td>
1721                <p>
1722                  ~2<sup>230000</sup>
1723                </p>
1724              </td>
1725<td>
1726                <p>
1727                  <code class="computeroutput"><span class="number">4423</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">double</span><span class="special">)</span></code>
1728                </p>
1729              </td>
1730<td>
1731                <p>
1732                  59%
1733                </p>
1734              </td>
1735<td>
1736                <p>
1737                  -
1738                </p>
1739              </td>
1740</tr>
1741<tr>
1742<td>
1743                <p>
1744                  <code class="computeroutput"><a class="link" href="../boost/random/lagged_fibonacci9689.html" title="Type definition lagged_fibonacci9689">lagged_fibonacci9689</a></code>
1745                </p>
1746              </td>
1747<td>
1748                <p>
1749                  ~2<sup>510000</sup>
1750                </p>
1751              </td>
1752<td>
1753                <p>
1754                  <code class="computeroutput"><span class="number">9689</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">double</span><span class="special">)</span></code>
1755                </p>
1756              </td>
1757<td>
1758                <p>
1759                  61%
1760                </p>
1761              </td>
1762<td>
1763                <p>
1764                  -
1765                </p>
1766              </td>
1767</tr>
1768<tr>
1769<td>
1770                <p>
1771                  <code class="computeroutput"><a class="link" href="../boost/random/lagged_fibonacci19937.html" title="Type definition lagged_fibonacci19937">lagged_fibonacci19937</a></code>
1772                </p>
1773              </td>
1774<td>
1775                <p>
1776                  ~2<sup>1050000</sup>
1777                </p>
1778              </td>
1779<td>
1780                <p>
1781                  <code class="computeroutput"><span class="number">19937</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">double</span><span class="special">)</span></code>
1782                </p>
1783              </td>
1784<td>
1785                <p>
1786                  59%
1787                </p>
1788              </td>
1789<td>
1790                <p>
1791                  -
1792                </p>
1793              </td>
1794</tr>
1795<tr>
1796<td>
1797                <p>
1798                  <code class="computeroutput"><a class="link" href="../boost/random/lagged_fibonacci23209.html" title="Type definition lagged_fibonacci23209">lagged_fibonacci23209</a></code>
1799                </p>
1800              </td>
1801<td>
1802                <p>
1803                  ~2<sup>1200000</sup>
1804                </p>
1805              </td>
1806<td>
1807                <p>
1808                  <code class="computeroutput"><span class="number">23209</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">double</span><span class="special">)</span></code>
1809                </p>
1810              </td>
1811<td>
1812                <p>
1813                  61%
1814                </p>
1815              </td>
1816<td>
1817                <p>
1818                  -
1819                </p>
1820              </td>
1821</tr>
1822<tr>
1823<td>
1824                <p>
1825                  <code class="computeroutput"><a class="link" href="../boost/random/lagged_fibonacci44497.html" title="Type definition lagged_fibonacci44497">lagged_fibonacci44497</a></code>
1826                </p>
1827              </td>
1828<td>
1829                <p>
1830                  ~2<sup>2300000</sup>
1831                </p>
1832              </td>
1833<td>
1834                <p>
1835                  <code class="computeroutput"><span class="number">44497</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">double</span><span class="special">)</span></code>
1836                </p>
1837              </td>
1838<td>
1839                <p>
1840                  59%
1841                </p>
1842              </td>
1843<td>
1844                <p>
1845                  -
1846                </p>
1847              </td>
1848</tr>
1849<tr>
1850<td>
1851                <p>
1852                  <code class="computeroutput"><a class="link" href="../boost/random/ranlux3.html" title="Type definition ranlux3">ranlux3</a></code>
1853                </p>
1854              </td>
1855<td>
1856                <p>
1857                  ~10<sup>171</sup>
1858                </p>
1859              </td>
1860<td>
1861                <p>
1862                  <code class="computeroutput"><span class="number">24</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">int</span><span class="special">)</span></code>
1863                </p>
1864              </td>
1865<td>
1866                <p>
1867                  5%
1868                </p>
1869              </td>
1870<td>
1871                <p>
1872                  -
1873                </p>
1874              </td>
1875</tr>
1876<tr>
1877<td>
1878                <p>
1879                  <code class="computeroutput"><a class="link" href="../boost/random/ranlux4.html" title="Type definition ranlux4">ranlux4</a></code>
1880                </p>
1881              </td>
1882<td>
1883                <p>
1884                  ~10<sup>171</sup>
1885                </p>
1886              </td>
1887<td>
1888                <p>
1889                  <code class="computeroutput"><span class="number">24</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">int</span><span class="special">)</span></code>
1890                </p>
1891              </td>
1892<td>
1893                <p>
1894                  3%
1895                </p>
1896              </td>
1897<td>
1898                <p>
1899                  -
1900                </p>
1901              </td>
1902</tr>
1903<tr>
1904<td>
1905                <p>
1906                  <code class="computeroutput"><a class="link" href="../boost/random/ranlux64_3.html" title="Type definition ranlux64_3">ranlux64_3</a></code>
1907                </p>
1908              </td>
1909<td>
1910                <p>
1911                  ~10<sup>171</sup>
1912                </p>
1913              </td>
1914<td>
1915                <p>
1916                  <code class="computeroutput"><span class="number">24</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">int64_t</span><span class="special">)</span></code>
1917                </p>
1918              </td>
1919<td>
1920                <p>
1921                  5%
1922                </p>
1923              </td>
1924<td>
1925                <p>
1926                  -
1927                </p>
1928              </td>
1929</tr>
1930<tr>
1931<td>
1932                <p>
1933                  <code class="computeroutput"><a class="link" href="../boost/random/ranlux64_4.html" title="Type definition ranlux64_4">ranlux64_4</a></code>
1934                </p>
1935              </td>
1936<td>
1937                <p>
1938                  ~10<sup>171</sup>
1939                </p>
1940              </td>
1941<td>
1942                <p>
1943                  <code class="computeroutput"><span class="number">24</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">int64_t</span><span class="special">)</span></code>
1944                </p>
1945              </td>
1946<td>
1947                <p>
1948                  3%
1949                </p>
1950              </td>
1951<td>
1952                <p>
1953                  -
1954                </p>
1955              </td>
1956</tr>
1957<tr>
1958<td>
1959                <p>
1960                  <code class="computeroutput"><a class="link" href="../boost/random/ranlux3_01.html" title="Type definition ranlux3_01">ranlux3_01</a></code>
1961                </p>
1962              </td>
1963<td>
1964                <p>
1965                  ~10<sup>171</sup>
1966                </p>
1967              </td>
1968<td>
1969                <p>
1970                  <code class="computeroutput"><span class="number">24</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">float</span><span class="special">)</span></code>
1971                </p>
1972              </td>
1973<td>
1974                <p>
1975                  5%
1976                </p>
1977              </td>
1978<td>
1979                <p>
1980                  -
1981                </p>
1982              </td>
1983</tr>
1984<tr>
1985<td>
1986                <p>
1987                  <code class="computeroutput"><a class="link" href="../boost/random/ranlux4_01.html" title="Type definition ranlux4_01">ranlux4_01</a></code>
1988                </p>
1989              </td>
1990<td>
1991                <p>
1992                  ~10<sup>171</sup>
1993                </p>
1994              </td>
1995<td>
1996                <p>
1997                  <code class="computeroutput"><span class="number">24</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">float</span><span class="special">)</span></code>
1998                </p>
1999              </td>
2000<td>
2001                <p>
2002                  3%
2003                </p>
2004              </td>
2005<td>
2006                <p>
2007                  -
2008                </p>
2009              </td>
2010</tr>
2011<tr>
2012<td>
2013                <p>
2014                  <code class="computeroutput"><a class="link" href="../boost/random/ranlux64_3_01.html" title="Type definition ranlux64_3_01">ranlux64_3_01</a></code>
2015                </p>
2016              </td>
2017<td>
2018                <p>
2019                  ~10<sup>171</sup>
2020                </p>
2021              </td>
2022<td>
2023                <p>
2024                  <code class="computeroutput"><span class="number">24</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">double</span><span class="special">)</span></code>
2025                </p>
2026              </td>
2027<td>
2028                <p>
2029                  5%
2030                </p>
2031              </td>
2032<td>
2033                <p>
2034                  -
2035                </p>
2036              </td>
2037</tr>
2038<tr>
2039<td>
2040                <p>
2041                  <code class="computeroutput"><a class="link" href="../boost/random/ranlux64_4_01.html" title="Type definition ranlux64_4_01">ranlux64_4_01</a></code>
2042                </p>
2043              </td>
2044<td>
2045                <p>
2046                  ~10<sup>171</sup>
2047                </p>
2048              </td>
2049<td>
2050                <p>
2051                  <code class="computeroutput"><span class="number">24</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="keyword">double</span><span class="special">)</span></code>
2052                </p>
2053              </td>
2054<td>
2055                <p>
2056                  3%
2057                </p>
2058              </td>
2059<td>
2060                <p>
2061                  -
2062                </p>
2063              </td>
2064</tr>
2065<tr>
2066<td>
2067                <p>
2068                  <code class="computeroutput"><a class="link" href="reference.html#boost.random.ranlux24">ranlux24</a></code>
2069                </p>
2070              </td>
2071<td>
2072                <p>
2073                  ~10<sup>171</sup>
2074                </p>
2075              </td>
2076<td>
2077                <p>
2078                  <code class="computeroutput"><span class="number">24</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">uint32_t</span><span class="special">)</span></code>
2079                </p>
2080              </td>
2081<td>
2082                <p>
2083                  5%
2084                </p>
2085              </td>
2086<td>
2087                <p>
2088                  -
2089                </p>
2090              </td>
2091</tr>
2092<tr>
2093<td>
2094                <p>
2095                  <code class="computeroutput"><a class="link" href="reference.html#boost.random.ranlux48">ranlux48</a></code>
2096                </p>
2097              </td>
2098<td>
2099                <p>
2100                  ~10<sup>171</sup>
2101                </p>
2102              </td>
2103<td>
2104                <p>
2105                  <code class="computeroutput"><span class="number">12</span><span class="special">*</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">uint64_t</span><span class="special">)</span></code>
2106                </p>
2107              </td>
2108<td>
2109                <p>
2110                  3%
2111                </p>
2112              </td>
2113<td>
2114                <p>
2115                  -
2116                </p>
2117              </td>
2118</tr>
2119</tbody>
2120</table></div>
2121</div>
2122<br class="table-break"><p>
2123        As observable from the table, there is generally a quality/performance/memory
2124        trade-off to be decided upon when choosing a random-number generator. The
2125        multitude of generators provided in this library allows the application programmer
2126        to optimize the trade-off with regard to his application domain. Additionally,
2127        employing several fundamentally different random number generators for a
2128        given application of Monte Carlo simulation will improve the confidence in
2129        the results.
2130      </p>
2131<p>
2132        If the names of the generators don't ring any bell and you have no idea which
2133        generator to use, it is reasonable to employ <code class="computeroutput"><a class="link" href="../boost/random/mt19937.html" title="Type definition mt19937">mt19937</a></code>
2134        for a start: It is fast and has acceptable quality.
2135      </p>
2136<div class="note"><table border="0" summary="Note">
2137<tr>
2138<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
2139<th align="left">Note</th>
2140</tr>
2141<tr><td align="left" valign="top"><p>
2142          These random number generators are not intended for use in applications
2143          where non-deterministic random numbers are required. See <code class="computeroutput"><a class="link" href="../boost/random/random_device.html" title="Class random_device">random_device</a></code>
2144          for a choice of (hopefully) non-deterministic random number generators.
2145        </p></td></tr>
2146</table></div>
2147</div>
2148<div class="section">
2149<div class="titlepage"><div><div><h3 class="title">
2150<a name="boost_random.reference.distributions"></a><a class="link" href="reference.html#boost_random.reference.distributions" title="Distributions">Distributions</a>
2151</h3></div></div></div>
2152<p>
2153        In addition to the <a class="link" href="reference.html#boost_random.reference.generators" title="Generators">random
2154        number generators</a>, this library provides distribution functions which
2155        map one distribution (often a uniform distribution provided by some generator)
2156        to another.
2157      </p>
2158<p>
2159        Usually, there are several possible implementations of any given mapping.
2160        Often, there is a choice between using more space, more invocations of the
2161        underlying source of random numbers, or more time-consuming arithmetic such
2162        as trigonometric functions. This interface description does not mandate any
2163        specific implementation. However, implementations which cannot reach certain
2164        values of the specified distribution or otherwise do not converge statistically
2165        to it are not acceptable.
2166      </p>
2167<div class="table">
2168<a name="boost_random.reference.distributions.uniform_distributions"></a><p class="title"><b>Table 33.7. Uniform Distributions</b></p>
2169<div class="table-contents"><table class="table" summary="Uniform Distributions">
2170<colgroup>
2171<col>
2172<col>
2173<col>
2174</colgroup>
2175<thead><tr>
2176<th>
2177                <p>
2178                  distribution
2179                </p>
2180              </th>
2181<th>
2182                <p>
2183                  explanation
2184                </p>
2185              </th>
2186<th>
2187                <p>
2188                  example
2189                </p>
2190              </th>
2191</tr></thead>
2192<tbody>
2193<tr>
2194<td>
2195                <p>
2196                  <code class="computeroutput"><a class="link" href="../boost/random/uniform_smallint.html" title="Class template uniform_smallint">uniform_smallint</a></code>
2197                </p>
2198              </td>
2199<td>
2200                <p>
2201                  discrete uniform distribution on a small set of integers (much
2202                  smaller than the range of the underlying generator)
2203                </p>
2204              </td>
2205<td>
2206                <p>
2207                  drawing from an urn
2208                </p>
2209              </td>
2210</tr>
2211<tr>
2212<td>
2213                <p>
2214                  <code class="computeroutput"><a class="link" href="../boost/random/uniform_int_distribution.html" title="Class template uniform_int_distribution">uniform_int_distribution</a></code>
2215                </p>
2216              </td>
2217<td>
2218                <p>
2219                  discrete uniform distribution on a set of integers; the underlying
2220                  generator may be called several times to gather enough randomness
2221                  for the output
2222                </p>
2223              </td>
2224<td>
2225                <p>
2226                  drawing from an urn
2227                </p>
2228              </td>
2229</tr>
2230<tr>
2231<td>
2232                <p>
2233                  <code class="computeroutput"><a class="link" href="../boost/random/uniform_01.html" title="Class template uniform_01">uniform_01</a></code>
2234                </p>
2235              </td>
2236<td>
2237                <p>
2238                  continuous uniform distribution on the range [0,1); important basis
2239                  for other distributions
2240                </p>
2241              </td>
2242<td>
2243                <p>
2244                  -
2245                </p>
2246              </td>
2247</tr>
2248<tr>
2249<td>
2250                <p>
2251                  <code class="computeroutput"><a class="link" href="../boost/random/uniform_real_distribution.html" title="Class template uniform_real_distribution">uniform_real_distribution</a></code>
2252                </p>
2253              </td>
2254<td>
2255                <p>
2256                  continuous uniform distribution on some range [min, max) of real
2257                  numbers
2258                </p>
2259              </td>
2260<td>
2261                <p>
2262                  for the range [0, 2pi): randomly dropping a stick and measuring
2263                  its angle in radians (assuming the angle is uniformly distributed)
2264                </p>
2265              </td>
2266</tr>
2267</tbody>
2268</table></div>
2269</div>
2270<br class="table-break"><div class="table">
2271<a name="boost_random.reference.distributions.bernoulli_distributions"></a><p class="title"><b>Table 33.8. Bernoulli Distributions</b></p>
2272<div class="table-contents"><table class="table" summary="Bernoulli Distributions">
2273<colgroup>
2274<col>
2275<col>
2276<col>
2277</colgroup>
2278<thead><tr>
2279<th>
2280                <p>
2281                  distribution
2282                </p>
2283              </th>
2284<th>
2285                <p>
2286                  explanation
2287                </p>
2288              </th>
2289<th>
2290                <p>
2291                  example
2292                </p>
2293              </th>
2294</tr></thead>
2295<tbody>
2296<tr>
2297<td>
2298                <p>
2299                  <code class="computeroutput"><a class="link" href="../boost/random/bernoulli_distribution.html" title="Class template bernoulli_distribution">bernoulli_distribution</a></code>
2300                </p>
2301              </td>
2302<td>
2303                <p>
2304                  Bernoulli experiment: discrete boolean valued distribution with
2305                  configurable probability
2306                </p>
2307              </td>
2308<td>
2309                <p>
2310                  tossing a coin (p=0.5)
2311                </p>
2312              </td>
2313</tr>
2314<tr>
2315<td>
2316                <p>
2317                  <code class="computeroutput"><a class="link" href="../boost/random/binomial_distribution.html" title="Class template binomial_distribution">binomial_distribution</a></code>
2318                </p>
2319              </td>
2320<td>
2321                <p>
2322                  counts outcomes of repeated Bernoulli experiments
2323                </p>
2324              </td>
2325<td>
2326                <p>
2327                  tossing a coin 20 times and counting how many front sides are shown
2328                </p>
2329              </td>
2330</tr>
2331<tr>
2332<td>
2333                <p>
2334                  <code class="computeroutput"><a class="link" href="../boost/random/geometric_distribution.html" title="Class template geometric_distribution">geometric_distribution</a></code>
2335                </p>
2336              </td>
2337<td>
2338                <p>
2339                  measures distance between outcomes of repeated Bernoulli experiments
2340                </p>
2341              </td>
2342<td>
2343                <p>
2344                  throwing a die several times and counting the number of tries until
2345                  a "6" appears for the first time
2346                </p>
2347              </td>
2348</tr>
2349<tr>
2350<td>
2351                <p>
2352                  <code class="computeroutput"><a class="link" href="../boost/random/negati_1_3_34_5_6_27_1_1_1.html" title="Class template negative_binomial_distribution">negative_binomial_distribution</a></code>
2353                </p>
2354              </td>
2355<td>
2356                <p>
2357                  Counts the number of failures of repeated Bernoulli experiments
2358                  required to get some constant number of successes.
2359                </p>
2360              </td>
2361<td>
2362                <p>
2363                  flipping a coin and counting the number of heads that show up before
2364                  we get 3 tails
2365                </p>
2366              </td>
2367</tr>
2368</tbody>
2369</table></div>
2370</div>
2371<br class="table-break"><div class="table">
2372<a name="boost_random.reference.distributions.poisson_distributions"></a><p class="title"><b>Table 33.9. Poisson Distributions</b></p>
2373<div class="table-contents"><table class="table" summary="Poisson Distributions">
2374<colgroup>
2375<col>
2376<col>
2377<col>
2378</colgroup>
2379<thead><tr>
2380<th>
2381                <p>
2382                  distribution
2383                </p>
2384              </th>
2385<th>
2386                <p>
2387                  explanation
2388                </p>
2389              </th>
2390<th>
2391                <p>
2392                  example
2393                </p>
2394              </th>
2395</tr></thead>
2396<tbody>
2397<tr>
2398<td>
2399                <p>
2400                  <code class="computeroutput"><a class="link" href="../boost/random/poisson_distribution.html" title="Class template poisson_distribution">poisson_distribution</a></code>
2401                </p>
2402              </td>
2403<td>
2404                <p>
2405                  poisson distribution
2406                </p>
2407              </td>
2408<td>
2409                <p>
2410                  counting the number of alpha particles emitted by radioactive matter
2411                  in a fixed period of time
2412                </p>
2413              </td>
2414</tr>
2415<tr>
2416<td>
2417                <p>
2418                  <code class="computeroutput"><a class="link" href="../boost/random/exponential_distribution.html" title="Class template exponential_distribution">exponential_distribution</a></code>
2419                </p>
2420              </td>
2421<td>
2422                <p>
2423                  exponential distribution
2424                </p>
2425              </td>
2426<td>
2427                <p>
2428                  measuring the inter-arrival time of alpha particles emitted by
2429                  radioactive matter
2430                </p>
2431              </td>
2432</tr>
2433<tr>
2434<td>
2435                <p>
2436                  <code class="computeroutput"><a class="link" href="../boost/random/gamma_distribution.html" title="Class template gamma_distribution">gamma_distribution</a></code>
2437                </p>
2438              </td>
2439<td>
2440                <p>
2441                  gamma distribution
2442                </p>
2443              </td>
2444<td>
2445                <p>
2446                  -
2447                </p>
2448              </td>
2449</tr>
2450<tr>
2451<td>
2452                <p>
2453                  <code class="computeroutput"><a class="link" href="../boost/random/hypere_1_3_34_5_6_18_1_1_1.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a></code>
2454                </p>
2455              </td>
2456<td>
2457                <p>
2458                  hyperexponential distribution
2459                </p>
2460              </td>
2461<td>
2462                <p>
2463                  service time of k-parallel servers each with a given service rate
2464                  and probability to be chosen
2465                </p>
2466              </td>
2467</tr>
2468<tr>
2469<td>
2470                <p>
2471                  <code class="computeroutput"><a class="link" href="../boost/random/weibull_distribution.html" title="Class template weibull_distribution">weibull_distribution</a></code>
2472                </p>
2473              </td>
2474<td>
2475                <p>
2476                  weibull distribution
2477                </p>
2478              </td>
2479<td>
2480                <p>
2481                  -
2482                </p>
2483              </td>
2484</tr>
2485<tr>
2486<td>
2487                <p>
2488                  <code class="computeroutput"><a class="link" href="../boost/random/extreme_value_distribution.html" title="Class template extreme_value_distribution">extreme_value_distribution</a></code>
2489                </p>
2490              </td>
2491<td>
2492                <p>
2493                  extreme value distribution
2494                </p>
2495              </td>
2496<td>
2497                <p>
2498                  -
2499                </p>
2500              </td>
2501</tr>
2502<tr>
2503<td>
2504                <p>
2505                  <code class="computeroutput"><a class="link" href="../boost/random/beta_distribution.html" title="Class template beta_distribution">beta_distribution</a></code>
2506                </p>
2507              </td>
2508<td>
2509                <p>
2510                  beta distribution
2511                </p>
2512              </td>
2513<td>
2514                <p>
2515                  -
2516                </p>
2517              </td>
2518</tr>
2519<tr>
2520<td>
2521                <p>
2522                  <code class="computeroutput"><a class="link" href="../boost/random/laplace_distribution.html" title="Class template laplace_distribution">laplace_distribution</a></code>
2523                </p>
2524              </td>
2525<td>
2526                <p>
2527                  laplace distribution
2528                </p>
2529              </td>
2530<td>
2531                <p>
2532                  -
2533                </p>
2534              </td>
2535</tr>
2536</tbody>
2537</table></div>
2538</div>
2539<br class="table-break"><div class="table">
2540<a name="boost_random.reference.distributions.normal_distributions"></a><p class="title"><b>Table 33.10. Normal Distributions</b></p>
2541<div class="table-contents"><table class="table" summary="Normal Distributions">
2542<colgroup>
2543<col>
2544<col>
2545<col>
2546</colgroup>
2547<thead><tr>
2548<th>
2549                <p>
2550                  distribution
2551                </p>
2552              </th>
2553<th>
2554                <p>
2555                  explanation
2556                </p>
2557              </th>
2558<th>
2559                <p>
2560                  example
2561                </p>
2562              </th>
2563</tr></thead>
2564<tbody>
2565<tr>
2566<td>
2567                <p>
2568                  <code class="computeroutput"><a class="link" href="../boost/random/normal_distribution.html" title="Class template normal_distribution">normal_distribution</a></code>
2569                </p>
2570              </td>
2571<td>
2572                <p>
2573                  counts outcomes of (infinitely) repeated Bernoulli experiments
2574                </p>
2575              </td>
2576<td>
2577                <p>
2578                  tossing a coin 10000 times and counting how many front sides are
2579                  shown
2580                </p>
2581              </td>
2582</tr>
2583<tr>
2584<td>
2585                <p>
2586                  <code class="computeroutput"><a class="link" href="../boost/random/lognormal_distribution.html" title="Class template lognormal_distribution">lognormal_distribution</a></code>
2587                </p>
2588              </td>
2589<td>
2590                <p>
2591                  lognormal distribution (sometimes used in simulations)
2592                </p>
2593              </td>
2594<td>
2595                <p>
2596                  measuring the job completion time of an assembly line worker
2597                </p>
2598              </td>
2599</tr>
2600<tr>
2601<td>
2602                <p>
2603                  <code class="computeroutput"><a class="link" href="../boost/random/chi_squared_distribution.html" title="Class template chi_squared_distribution">chi_squared_distribution</a></code>
2604                </p>
2605              </td>
2606<td>
2607                <p>
2608                  chi-squared distribution
2609                </p>
2610              </td>
2611<td>
2612                <p>
2613                  -
2614                </p>
2615              </td>
2616</tr>
2617<tr>
2618<td>
2619                <p>
2620                  <code class="computeroutput"><a class="link" href="../boost/random/non_ce_1_3_34_5_6_29_1_1_1.html" title="Class template non_central_chi_squared_distribution">non_central_chi_squared_distribution</a></code>
2621                </p>
2622              </td>
2623<td>
2624                <p>
2625                  non-central chi-squared distribution
2626                </p>
2627              </td>
2628<td>
2629                <p>
2630                  -
2631                </p>
2632              </td>
2633</tr>
2634<tr>
2635<td>
2636                <p>
2637                  <code class="computeroutput"><a class="link" href="../boost/random/cauchy_distribution.html" title="Class template cauchy_distribution">cauchy_distribution</a></code>
2638                </p>
2639              </td>
2640<td>
2641                <p>
2642                  Cauchy distribution
2643                </p>
2644              </td>
2645<td>
2646                <p>
2647                  -
2648                </p>
2649              </td>
2650</tr>
2651<tr>
2652<td>
2653                <p>
2654                  <code class="computeroutput"><a class="link" href="../boost/random/fisher_f_distribution.html" title="Class template fisher_f_distribution">fisher_f_distribution</a></code>
2655                </p>
2656              </td>
2657<td>
2658                <p>
2659                  Fisher F distribution
2660                </p>
2661              </td>
2662<td>
2663                <p>
2664                  -
2665                </p>
2666              </td>
2667</tr>
2668<tr>
2669<td>
2670                <p>
2671                  <code class="computeroutput"><a class="link" href="../boost/random/student_t_distribution.html" title="Class template student_t_distribution">student_t_distribution</a></code>
2672                </p>
2673              </td>
2674<td>
2675                <p>
2676                  Student t distribution
2677                </p>
2678              </td>
2679<td>
2680                <p>
2681                  -
2682                </p>
2683              </td>
2684</tr>
2685</tbody>
2686</table></div>
2687</div>
2688<br class="table-break"><div class="table">
2689<a name="boost_random.reference.distributions.sampling_distributions"></a><p class="title"><b>Table 33.11. Sampling Distributions</b></p>
2690<div class="table-contents"><table class="table" summary="Sampling Distributions">
2691<colgroup>
2692<col>
2693<col>
2694<col>
2695</colgroup>
2696<thead><tr>
2697<th>
2698                <p>
2699                  distribution
2700                </p>
2701              </th>
2702<th>
2703                <p>
2704                  explanation
2705                </p>
2706              </th>
2707<th>
2708                <p>
2709                  example
2710                </p>
2711              </th>
2712</tr></thead>
2713<tbody>
2714<tr>
2715<td>
2716                <p>
2717                  <code class="computeroutput"><a class="link" href="../boost/random/discrete_distribution.html" title="Class template discrete_distribution">discrete_distribution</a></code>
2718                </p>
2719              </td>
2720<td>
2721                <p>
2722                  discrete distribution with specific probabilities
2723                </p>
2724              </td>
2725<td>
2726                <p>
2727                  rolling an unfair die
2728                </p>
2729              </td>
2730</tr>
2731<tr>
2732<td>
2733                <p>
2734                  <code class="computeroutput"><a class="link" href="../boost/random/piecew_1_3_34_5_6_31_1_1_1.html" title="Class template piecewise_constant_distribution">piecewise_constant_distribution</a></code>
2735                </p>
2736              </td>
2737<td>
2738                <p>
2739                  -
2740                </p>
2741              </td>
2742<td>
2743                <p>
2744                  -
2745                </p>
2746              </td>
2747</tr>
2748<tr>
2749<td>
2750                <p>
2751                  <code class="computeroutput"><a class="link" href="../boost/random/piecew_1_3_34_5_6_32_1_1_1.html" title="Class template piecewise_linear_distribution">piecewise_linear_distribution</a></code>
2752                </p>
2753              </td>
2754<td>
2755                <p>
2756                  -
2757                </p>
2758              </td>
2759<td>
2760                <p>
2761                  -
2762                </p>
2763              </td>
2764</tr>
2765</tbody>
2766</table></div>
2767</div>
2768<br class="table-break"><div class="table">
2769<a name="boost_random.reference.distributions.miscellaneous_distributions"></a><p class="title"><b>Table 33.12. Miscellaneous Distributions</b></p>
2770<div class="table-contents"><table class="table" summary="Miscellaneous Distributions">
2771<colgroup>
2772<col>
2773<col>
2774<col>
2775</colgroup>
2776<thead><tr>
2777<th>
2778                <p>
2779                  distribution
2780                </p>
2781              </th>
2782<th>
2783                <p>
2784                  explanation
2785                </p>
2786              </th>
2787<th>
2788                <p>
2789                  example
2790                </p>
2791              </th>
2792</tr></thead>
2793<tbody>
2794<tr>
2795<td>
2796                <p>
2797                  <code class="computeroutput"><a class="link" href="../boost/random/triangle_distribution.html" title="Class template triangle_distribution">triangle_distribution</a></code>
2798                </p>
2799              </td>
2800<td>
2801                <p>
2802                  triangle distribution
2803                </p>
2804              </td>
2805<td>
2806                <p>
2807                  -
2808                </p>
2809              </td>
2810</tr>
2811<tr>
2812<td>
2813                <p>
2814                  <code class="computeroutput"><a class="link" href="../boost/random/uniform_on_sphere.html" title="Class template uniform_on_sphere">uniform_on_sphere</a></code>
2815                </p>
2816              </td>
2817<td>
2818                <p>
2819                  uniform distribution on a unit sphere of arbitrary dimension
2820                </p>
2821              </td>
2822<td>
2823                <p>
2824                  choosing a random point on Earth (assumed to be a sphere) where
2825                  to spend the next vacations
2826                </p>
2827              </td>
2828</tr>
2829</tbody>
2830</table></div>
2831</div>
2832<br class="table-break">
2833</div>
2834<div class="section">
2835<div class="titlepage"><div><div><h3 class="title">
2836<a name="boost_random.reference.utilities"></a><a class="link" href="reference.html#boost_random.reference.utilities" title="Utilities">Utilities</a>
2837</h3></div></div></div>
2838<div class="table">
2839<a name="boost_random.reference.utilities.utilities"></a><p class="title"><b>Table 33.13. Utilities</b></p>
2840<div class="table-contents"><table class="table" summary="Utilities">
2841<colgroup>
2842<col>
2843<col>
2844</colgroup>
2845<thead><tr>
2846<th>
2847                <p>
2848                  Name
2849                </p>
2850              </th>
2851<th>
2852                <p>
2853                  Description
2854                </p>
2855              </th>
2856</tr></thead>
2857<tbody>
2858<tr>
2859<td>
2860                <p>
2861                  <code class="computeroutput"><a class="link" href="../boost/random/seed_seq.html" title="Class seed_seq">seed_seq</a></code>
2862                </p>
2863              </td>
2864<td>
2865                <p>
2866                  Used to seed <a class="link" href="reference.html#boost_random.reference.concepts.pseudo_random_number_generator" title="Pseudo-Random Number Generator">Random
2867                  Engines</a>
2868                </p>
2869              </td>
2870</tr>
2871<tr>
2872<td>
2873                <p>
2874                  <code class="computeroutput"><a class="link" href="../boost/random/random_number_generator.html" title="Class template random_number_generator">random_number_generator</a></code>
2875                </p>
2876              </td>
2877<td>
2878                <p>
2879                  Adapts a <a class="link" href="reference.html#boost_random.reference.concepts.pseudo_random_number_generator" title="Pseudo-Random Number Generator">PseudoRandomNumberGenerator</a>
2880                  to work with std::random_shuffle
2881                </p>
2882              </td>
2883</tr>
2884<tr>
2885<td>
2886                <p>
2887                  <code class="computeroutput"><a class="link" href="../boost/random/generate_canonical.html" title="Function template generate_canonical">generate_canonical</a></code>
2888                </p>
2889              </td>
2890<td>
2891                <p>
2892                  Produces random floating point values with specific precision.
2893                </p>
2894              </td>
2895</tr>
2896</tbody>
2897</table></div>
2898</div>
2899<br class="table-break">
2900</div>
2901<div class="section">
2902<div class="titlepage"><div><div><h3 class="title">
2903<a name="headers"></a>Headers</h3></div></div></div>
2904<div class="toc"><dl class="toc">
2905<dt><span class="section"><a href="reference.html#header.boost.random.additive_combine_hpp">Header &lt;boost/random/additive_combine.hpp&gt;</a></span></dt>
2906<dt><span class="section"><a href="reference.html#header.boost.random.bernoulli_distribution_hpp">Header &lt;boost/random/bernoulli_distribution.hpp&gt;</a></span></dt>
2907<dt><span class="section"><a href="reference.html#header.boost.random.beta_distribution_hpp">Header &lt;boost/random/beta_distribution.hpp&gt;</a></span></dt>
2908<dt><span class="section"><a href="reference.html#header.boost.random.binomial_distribution_hpp">Header &lt;boost/random/binomial_distribution.hpp&gt;</a></span></dt>
2909<dt><span class="section"><a href="reference.html#header.boost.random.cauchy_distribution_hpp">Header &lt;boost/random/cauchy_distribution.hpp&gt;</a></span></dt>
2910<dt><span class="section"><a href="reference.html#header.boost.random.chi_squared_distribution_hpp">Header &lt;boost/random/chi_squared_distribution.hpp&gt;</a></span></dt>
2911<dt><span class="section"><a href="reference.html#header.boost.random.discard_block_hpp">Header &lt;boost/random/discard_block.hpp&gt;</a></span></dt>
2912<dt><span class="section"><a href="reference.html#header.boost.random.discrete_distribution_hpp">Header &lt;boost/random/discrete_distribution.hpp&gt;</a></span></dt>
2913<dt><span class="section"><a href="reference.html#header.boost.random.exponential_distribution_hpp">Header &lt;boost/random/exponential_distribution.hpp&gt;</a></span></dt>
2914<dt><span class="section"><a href="reference.html#header.boost.random.extreme_value_distribution_hpp">Header &lt;boost/random/extreme_value_distribution.hpp&gt;</a></span></dt>
2915<dt><span class="section"><a href="reference.html#header.boost.random.faure_hpp">Header &lt;boost/random/faure.hpp&gt;</a></span></dt>
2916<dt><span class="section"><a href="reference.html#header.boost.random.fisher_f_distribution_hpp">Header &lt;boost/random/fisher_f_distribution.hpp&gt;</a></span></dt>
2917<dt><span class="section"><a href="reference.html#header.boost.random.gamma_distribution_hpp">Header &lt;boost/random/gamma_distribution.hpp&gt;</a></span></dt>
2918<dt><span class="section"><a href="reference.html#header.boost.random.generate_canonical_hpp">Header &lt;boost/random/generate_canonical.hpp&gt;</a></span></dt>
2919<dt><span class="section"><a href="reference.html#header.boost.random.geometric_distribution_hpp">Header &lt;boost/random/geometric_distribution.hpp&gt;</a></span></dt>
2920<dt><span class="section"><a href="reference.html#header.boost.random.hyperexponential_distribution_hpp">Header &lt;boost/random/hyperexponential_distribution.hpp&gt;</a></span></dt>
2921<dt><span class="section"><a href="reference.html#header.boost.random.independent_bits_hpp">Header &lt;boost/random/independent_bits.hpp&gt;</a></span></dt>
2922<dt><span class="section"><a href="reference.html#header.boost.random.inversive_congruential_hpp">Header &lt;boost/random/inversive_congruential.hpp&gt;</a></span></dt>
2923<dt><span class="section"><a href="reference.html#header.boost.random.lagged_fibonacci_hpp">Header &lt;boost/random/lagged_fibonacci.hpp&gt;</a></span></dt>
2924<dt><span class="section"><a href="reference.html#header.boost.random.laplace_distribution_hpp">Header &lt;boost/random/laplace_distribution.hpp&gt;</a></span></dt>
2925<dt><span class="section"><a href="reference.html#header.boost.random.linear_congruential_hpp">Header &lt;boost/random/linear_congruential.hpp&gt;</a></span></dt>
2926<dt><span class="section"><a href="reference.html#header.boost.random.linear_feedback_shift_hpp">Header &lt;boost/random/linear_feedback_shift.hpp&gt;</a></span></dt>
2927<dt><span class="section"><a href="reference.html#header.boost.random.lognormal_distribution_hpp">Header &lt;boost/random/lognormal_distribution.hpp&gt;</a></span></dt>
2928<dt><span class="section"><a href="reference.html#header.boost.random.mersenne_twister_hpp">Header &lt;boost/random/mersenne_twister.hpp&gt;</a></span></dt>
2929<dt><span class="section"><a href="reference.html#header.boost.random.negative_binomial_distribution_hpp">Header &lt;boost/random/negative_binomial_distribution.hpp&gt;</a></span></dt>
2930<dt><span class="section"><a href="reference.html#header.boost.random.niederreiter_base2_hpp">Header &lt;boost/random/niederreiter_base2.hpp&gt;</a></span></dt>
2931<dt><span class="section"><a href="reference.html#header.boost.random.non_central_chi_squared_distribution_hpp">Header &lt;boost/random/non_central_chi_squared_distribution.hpp&gt;</a></span></dt>
2932<dt><span class="section"><a href="reference.html#header.boost.random.normal_distribution_hpp">Header &lt;boost/random/normal_distribution.hpp&gt;</a></span></dt>
2933<dt><span class="section"><a href="reference.html#header.boost.random.piecewise_constant_distribution_hpp">Header &lt;boost/random/piecewise_constant_distribution.hpp&gt;</a></span></dt>
2934<dt><span class="section"><a href="reference.html#header.boost.random.piecewise_linear_distribution_hpp">Header &lt;boost/random/piecewise_linear_distribution.hpp&gt;</a></span></dt>
2935<dt><span class="section"><a href="reference.html#header.boost.random.poisson_distribution_hpp">Header &lt;boost/random/poisson_distribution.hpp&gt;</a></span></dt>
2936<dt><span class="section"><a href="reference.html#header.boost.random.random_device_hpp">Header &lt;boost/random/random_device.hpp&gt;</a></span></dt>
2937<dt><span class="section"><a href="reference.html#header.boost.random.random_number_generator_hpp">Header &lt;boost/random/random_number_generator.hpp&gt;</a></span></dt>
2938<dt><span class="section"><a href="reference.html#header.boost.random.ranlux_hpp">Header &lt;boost/random/ranlux.hpp&gt;</a></span></dt>
2939<dt><span class="section"><a href="reference.html#header.boost.random.seed_seq_hpp">Header &lt;boost/random/seed_seq.hpp&gt;</a></span></dt>
2940<dt><span class="section"><a href="reference.html#header.boost.random.shuffle_order_hpp">Header &lt;boost/random/shuffle_order.hpp&gt;</a></span></dt>
2941<dt><span class="section"><a href="reference.html#header.boost.random.sobol_hpp">Header &lt;boost/random/sobol.hpp&gt;</a></span></dt>
2942<dt><span class="section"><a href="reference.html#header.boost.random.student_t_distribution_hpp">Header &lt;boost/random/student_t_distribution.hpp&gt;</a></span></dt>
2943<dt><span class="section"><a href="reference.html#header.boost.random.subtract_with_carry_hpp">Header &lt;boost/random/subtract_with_carry.hpp&gt;</a></span></dt>
2944<dt><span class="section"><a href="reference.html#header.boost.random.taus88_hpp">Header &lt;boost/random/taus88.hpp&gt;</a></span></dt>
2945<dt><span class="section"><a href="reference.html#header.boost.random.traits_hpp">Header &lt;boost/random/traits.hpp&gt;</a></span></dt>
2946<dt><span class="section"><a href="reference.html#header.boost.random.triangle_distribution_hpp">Header &lt;boost/random/triangle_distribution.hpp&gt;</a></span></dt>
2947<dt><span class="section"><a href="reference.html#header.boost.random.uniform_01_hpp">Header &lt;boost/random/uniform_01.hpp&gt;</a></span></dt>
2948<dt><span class="section"><a href="reference.html#header.boost.random.uniform_int_distribution_hpp">Header &lt;boost/random/uniform_int_distribution.hpp&gt;</a></span></dt>
2949<dt><span class="section"><a href="reference.html#header.boost.random.uniform_on_sphere_hpp">Header &lt;boost/random/uniform_on_sphere.hpp&gt;</a></span></dt>
2950<dt><span class="section"><a href="reference.html#header.boost.random.uniform_real_distribution_hpp">Header &lt;boost/random/uniform_real_distribution.hpp&gt;</a></span></dt>
2951<dt><span class="section"><a href="reference.html#header.boost.random.uniform_smallint_hpp">Header &lt;boost/random/uniform_smallint.hpp&gt;</a></span></dt>
2952<dt><span class="section"><a href="reference.html#header.boost.random.variate_generator_hpp">Header &lt;boost/random/variate_generator.hpp&gt;</a></span></dt>
2953<dt><span class="section"><a href="reference.html#header.boost.random.weibull_distribution_hpp">Header &lt;boost/random/weibull_distribution.hpp&gt;</a></span></dt>
2954<dt><span class="section"><a href="reference.html#header.boost.random.xor_combine_hpp">Header &lt;boost/random/xor_combine.hpp&gt;</a></span></dt>
2955</dl></div>
2956<div class="section">
2957<div class="titlepage"><div><div><h4 class="title">
2958<a name="header.boost.random.additive_combine_hpp"></a>Header &lt;<a href="../../../boost/random/additive_combine.hpp" target="_top">boost/random/additive_combine.hpp</a>&gt;</h4></div></div></div>
2959<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
2960  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
2961    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> MLCG1<span class="special">,</span> <span class="keyword">typename</span> MLCG2<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/additive_combine_engine.html" title="Class template additive_combine_engine">additive_combine_engine</a><span class="special">;</span>
2962    <span class="keyword">typedef</span> <a class="link" href="../boost/random/additive_combine_engine.html" title="Class template additive_combine_engine">additive_combine_engine</a><span class="special">&lt;</span> <a class="link" href="../boost/random/linear_congruential_engine.html" title="Class template linear_congruential_engine">linear_congruential_engine</a><span class="special">&lt;</span> <span class="identifier">uint32_t</span><span class="special">,</span> <span class="number">40014</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="number">2147483563</span> <span class="special">&gt;</span><span class="special">,</span> <a class="link" href="../boost/random/linear_congruential_engine.html" title="Class template linear_congruential_engine">linear_congruential_engine</a><span class="special">&lt;</span> <span class="identifier">uint32_t</span><span class="special">,</span> <span class="number">40692</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="number">2147483399</span> <span class="special">&gt;&gt;</span> <a class="link" href="../boost/random/ecuyer1988.html" title="Type definition ecuyer1988"><span class="identifier">ecuyer1988</span></a><span class="special">;</span>
2963  <span class="special">}</span>
2964<span class="special">}</span></pre>
2965</div>
2966<div class="section">
2967<div class="titlepage"><div><div><h4 class="title">
2968<a name="header.boost.random.bernoulli_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/bernoulli_distribution.hpp" target="_top">boost/random/bernoulli_distribution.hpp</a>&gt;</h4></div></div></div>
2969<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
2970  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
2971    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/bernoulli_distribution.html" title="Class template bernoulli_distribution">bernoulli_distribution</a><span class="special">;</span>
2972  <span class="special">}</span>
2973<span class="special">}</span></pre>
2974</div>
2975<div class="section">
2976<div class="titlepage"><div><div><h4 class="title">
2977<a name="header.boost.random.beta_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/beta_distribution.hpp" target="_top">boost/random/beta_distribution.hpp</a>&gt;</h4></div></div></div>
2978<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
2979  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
2980    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/beta_distribution.html" title="Class template beta_distribution">beta_distribution</a><span class="special">;</span>
2981  <span class="special">}</span>
2982<span class="special">}</span></pre>
2983</div>
2984<div class="section">
2985<div class="titlepage"><div><div><h4 class="title">
2986<a name="header.boost.random.binomial_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/binomial_distribution.hpp" target="_top">boost/random/binomial_distribution.hpp</a>&gt;</h4></div></div></div>
2987<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
2988  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
2989    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IntType <span class="special">=</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span>
2990      <span class="keyword">class</span> <a class="link" href="../boost/random/binomial_distribution.html" title="Class template binomial_distribution">binomial_distribution</a><span class="special">;</span>
2991  <span class="special">}</span>
2992<span class="special">}</span></pre>
2993</div>
2994<div class="section">
2995<div class="titlepage"><div><div><h4 class="title">
2996<a name="header.boost.random.cauchy_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/cauchy_distribution.hpp" target="_top">boost/random/cauchy_distribution.hpp</a>&gt;</h4></div></div></div>
2997<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
2998  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
2999    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/cauchy_distribution.html" title="Class template cauchy_distribution">cauchy_distribution</a><span class="special">;</span>
3000  <span class="special">}</span>
3001<span class="special">}</span></pre>
3002</div>
3003<div class="section">
3004<div class="titlepage"><div><div><h4 class="title">
3005<a name="header.boost.random.chi_squared_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/chi_squared_distribution.hpp" target="_top">boost/random/chi_squared_distribution.hpp</a>&gt;</h4></div></div></div>
3006<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3007  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3008    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/chi_squared_distribution.html" title="Class template chi_squared_distribution">chi_squared_distribution</a><span class="special">;</span>
3009  <span class="special">}</span>
3010<span class="special">}</span></pre>
3011</div>
3012<div class="section">
3013<div class="titlepage"><div><div><h4 class="title">
3014<a name="header.boost.random.discard_block_hpp"></a>Header &lt;<a href="../../../boost/random/discard_block.hpp" target="_top">boost/random/discard_block.hpp</a>&gt;</h4></div></div></div>
3015<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3016  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3017    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> UniformRandomNumberGenerator<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> p<span class="special">,</span>
3018             <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> r<span class="special">&gt;</span>
3019      <span class="keyword">class</span> <a class="link" href="../boost/random/discard_block_engine.html" title="Class template discard_block_engine">discard_block_engine</a><span class="special">;</span>
3020  <span class="special">}</span>
3021<span class="special">}</span></pre>
3022</div>
3023<div class="section">
3024<div class="titlepage"><div><div><h4 class="title">
3025<a name="header.boost.random.discrete_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/discrete_distribution.hpp" target="_top">boost/random/discrete_distribution.hpp</a>&gt;</h4></div></div></div>
3026<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3027  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3028    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IntType <span class="special">=</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">typename</span> WeightType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span>
3029      <span class="keyword">class</span> <a class="link" href="../boost/random/discrete_distribution.html" title="Class template discrete_distribution">discrete_distribution</a><span class="special">;</span>
3030  <span class="special">}</span>
3031<span class="special">}</span></pre>
3032</div>
3033<div class="section">
3034<div class="titlepage"><div><div><h4 class="title">
3035<a name="header.boost.random.exponential_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/exponential_distribution.hpp" target="_top">boost/random/exponential_distribution.hpp</a>&gt;</h4></div></div></div>
3036<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3037  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3038    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/exponential_distribution.html" title="Class template exponential_distribution">exponential_distribution</a><span class="special">;</span>
3039  <span class="special">}</span>
3040<span class="special">}</span></pre>
3041</div>
3042<div class="section">
3043<div class="titlepage"><div><div><h4 class="title">
3044<a name="header.boost.random.extreme_value_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/extreme_value_distribution.hpp" target="_top">boost/random/extreme_value_distribution.hpp</a>&gt;</h4></div></div></div>
3045<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3046  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3047    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/extreme_value_distribution.html" title="Class template extreme_value_distribution">extreme_value_distribution</a><span class="special">;</span>
3048  <span class="special">}</span>
3049<span class="special">}</span></pre>
3050</div>
3051<div class="section">
3052<div class="titlepage"><div><div><h4 class="title">
3053<a name="header.boost.random.faure_hpp"></a>Header &lt;<a href="../../../boost/random/faure.hpp" target="_top">boost/random/faure.hpp</a>&gt;</h4></div></div></div>
3054<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3055  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3056    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType<span class="special">,</span> <span class="keyword">typename</span> SeqSizeT<span class="special">,</span>
3057             <span class="keyword">typename</span> PrimeTable <span class="special">=</span> <span class="identifier">default_faure_prime_table</span><span class="special">&gt;</span>
3058      <span class="keyword">class</span> <a class="link" href="../boost/random/faure_engine.html" title="Class template faure_engine">faure_engine</a><span class="special">;</span>
3059    <span class="keyword">typedef</span> <a class="link" href="../boost/random/faure_engine.html" title="Class template faure_engine">faure_engine</a><span class="special">&lt;</span> <span class="keyword">double</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span><span class="special">,</span> <span class="identifier">default_faure_prime_table</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/faure.html" title="Type definition faure"><span class="identifier">faure</span></a><span class="special">;</span>
3060  <span class="special">}</span>
3061<span class="special">}</span></pre>
3062</div>
3063<div class="section">
3064<div class="titlepage"><div><div><h4 class="title">
3065<a name="header.boost.random.fisher_f_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/fisher_f_distribution.hpp" target="_top">boost/random/fisher_f_distribution.hpp</a>&gt;</h4></div></div></div>
3066<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3067  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3068    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/fisher_f_distribution.html" title="Class template fisher_f_distribution">fisher_f_distribution</a><span class="special">;</span>
3069  <span class="special">}</span>
3070<span class="special">}</span></pre>
3071</div>
3072<div class="section">
3073<div class="titlepage"><div><div><h4 class="title">
3074<a name="header.boost.random.gamma_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/gamma_distribution.hpp" target="_top">boost/random/gamma_distribution.hpp</a>&gt;</h4></div></div></div>
3075<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3076  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3077    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/gamma_distribution.html" title="Class template gamma_distribution">gamma_distribution</a><span class="special">;</span>
3078  <span class="special">}</span>
3079<span class="special">}</span></pre>
3080</div>
3081<div class="section">
3082<div class="titlepage"><div><div><h4 class="title">
3083<a name="header.boost.random.generate_canonical_hpp"></a>Header &lt;<a href="../../../boost/random/generate_canonical.hpp" target="_top">boost/random/generate_canonical.hpp</a>&gt;</h4></div></div></div>
3084<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3085  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3086    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> bits<span class="special">,</span> <span class="keyword">typename</span> URNG<span class="special">&gt;</span>
3087      <span class="identifier">RealType</span> <a class="link" href="../boost/random/generate_canonical.html" title="Function template generate_canonical"><span class="identifier">generate_canonical</span></a><span class="special">(</span><span class="identifier">URNG</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
3088  <span class="special">}</span>
3089<span class="special">}</span></pre>
3090</div>
3091<div class="section">
3092<div class="titlepage"><div><div><h4 class="title">
3093<a name="header.boost.random.geometric_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/geometric_distribution.hpp" target="_top">boost/random/geometric_distribution.hpp</a>&gt;</h4></div></div></div>
3094<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3095  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3096    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IntType <span class="special">=</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span>
3097      <span class="keyword">class</span> <a class="link" href="../boost/random/geometric_distribution.html" title="Class template geometric_distribution">geometric_distribution</a><span class="special">;</span>
3098  <span class="special">}</span>
3099<span class="special">}</span></pre>
3100</div>
3101<div class="section">
3102<div class="titlepage"><div><div><h4 class="title">
3103<a name="header.boost.random.hyperexponential_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/hyperexponential_distribution.hpp" target="_top">boost/random/hyperexponential_distribution.hpp</a>&gt;</h4></div></div></div>
3104<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3105  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3106    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealT <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/hypere_1_3_34_5_6_18_1_1_1.html" title="Class template hyperexponential_distribution">hyperexponential_distribution</a><span class="special">;</span>
3107  <span class="special">}</span>
3108<span class="special">}</span></pre>
3109</div>
3110<div class="section">
3111<div class="titlepage"><div><div><h4 class="title">
3112<a name="header.boost.random.independent_bits_hpp"></a>Header &lt;<a href="../../../boost/random/independent_bits.hpp" target="_top">boost/random/independent_bits.hpp</a>&gt;</h4></div></div></div>
3113<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3114  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3115    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Engine<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> w<span class="special">,</span> <span class="keyword">typename</span> UIntType<span class="special">&gt;</span>
3116      <span class="keyword">class</span> <a class="link" href="../boost/random/independent_bits_engine.html" title="Class template independent_bits_engine">independent_bits_engine</a><span class="special">;</span>
3117  <span class="special">}</span>
3118<span class="special">}</span></pre>
3119</div>
3120<div class="section">
3121<div class="titlepage"><div><div><h4 class="title">
3122<a name="header.boost.random.inversive_congruential_hpp"></a>Header &lt;<a href="../../../boost/random/inversive_congruential.hpp" target="_top">boost/random/inversive_congruential.hpp</a>&gt;</h4></div></div></div>
3123<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3124  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3125    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IntType<span class="special">,</span> <span class="identifier">IntType</span> a<span class="special">,</span> <span class="identifier">IntType</span> b<span class="special">,</span> <span class="identifier">IntType</span> p<span class="special">&gt;</span>
3126      <span class="keyword">class</span> <a class="link" href="../boost/random/invers_1_3_34_5_6_20_1_1_1.html" title="Class template inversive_congruential_engine">inversive_congruential_engine</a><span class="special">;</span>
3127    <span class="keyword">typedef</span> <a class="link" href="../boost/random/invers_1_3_34_5_6_20_1_1_1.html" title="Class template inversive_congruential_engine">inversive_congruential_engine</a><span class="special">&lt;</span> <span class="identifier">uint32_t</span><span class="special">,</span> <span class="number">9102</span><span class="special">,</span> <span class="number">2147483647</span><span class="special">-</span><span class="number">36884165</span><span class="special">,</span> <span class="number">2147483647</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/hellekalek1995.html" title="Type definition hellekalek1995"><span class="identifier">hellekalek1995</span></a><span class="special">;</span>
3128  <span class="special">}</span>
3129<span class="special">}</span></pre>
3130</div>
3131<div class="section">
3132<div class="titlepage"><div><div><h4 class="title">
3133<a name="header.boost.random.lagged_fibonacci_hpp"></a>Header &lt;<a href="../../../boost/random/lagged_fibonacci.hpp" target="_top">boost/random/lagged_fibonacci.hpp</a>&gt;</h4></div></div></div>
3134<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3135  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3136    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType<span class="special">,</span> <span class="keyword">int</span> w<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> p<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> q<span class="special">&gt;</span>
3137      <span class="keyword">class</span> <a class="link" href="../boost/random/lagged_fibonacci_01_engine.html" title="Class template lagged_fibonacci_01_engine">lagged_fibonacci_01_engine</a><span class="special">;</span>
3138    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> UIntType<span class="special">,</span> <span class="keyword">int</span> w<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> p<span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> q<span class="special">&gt;</span>
3139      <span class="keyword">class</span> <a class="link" href="../boost/random/lagged_fibonacci_engine.html" title="Class template lagged_fibonacci_engine">lagged_fibonacci_engine</a><span class="special">;</span>
3140    <span class="keyword">typedef</span> <a class="link" href="../boost/random/lagged_fibonacci_01_engine.html" title="Class template lagged_fibonacci_01_engine">lagged_fibonacci_01_engine</a><span class="special">&lt;</span> <span class="keyword">double</span><span class="special">,</span> <span class="number">48</span><span class="special">,</span> <span class="number">607</span><span class="special">,</span> <span class="number">273</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/lagged_fibonacci607.html" title="Type definition lagged_fibonacci607"><span class="identifier">lagged_fibonacci607</span></a><span class="special">;</span>
3141    <span class="keyword">typedef</span> <a class="link" href="../boost/random/lagged_fibonacci_01_engine.html" title="Class template lagged_fibonacci_01_engine">lagged_fibonacci_01_engine</a><span class="special">&lt;</span> <span class="keyword">double</span><span class="special">,</span> <span class="number">48</span><span class="special">,</span> <span class="number">1279</span><span class="special">,</span> <span class="number">418</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/lagged_fibonacci1279.html" title="Type definition lagged_fibonacci1279"><span class="identifier">lagged_fibonacci1279</span></a><span class="special">;</span>
3142    <span class="keyword">typedef</span> <a class="link" href="../boost/random/lagged_fibonacci_01_engine.html" title="Class template lagged_fibonacci_01_engine">lagged_fibonacci_01_engine</a><span class="special">&lt;</span> <span class="keyword">double</span><span class="special">,</span> <span class="number">48</span><span class="special">,</span> <span class="number">2281</span><span class="special">,</span> <span class="number">1252</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/lagged_fibonacci2281.html" title="Type definition lagged_fibonacci2281"><span class="identifier">lagged_fibonacci2281</span></a><span class="special">;</span>
3143    <span class="keyword">typedef</span> <a class="link" href="../boost/random/lagged_fibonacci_01_engine.html" title="Class template lagged_fibonacci_01_engine">lagged_fibonacci_01_engine</a><span class="special">&lt;</span> <span class="keyword">double</span><span class="special">,</span> <span class="number">48</span><span class="special">,</span> <span class="number">3217</span><span class="special">,</span> <span class="number">576</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/lagged_fibonacci3217.html" title="Type definition lagged_fibonacci3217"><span class="identifier">lagged_fibonacci3217</span></a><span class="special">;</span>
3144    <span class="keyword">typedef</span> <a class="link" href="../boost/random/lagged_fibonacci_01_engine.html" title="Class template lagged_fibonacci_01_engine">lagged_fibonacci_01_engine</a><span class="special">&lt;</span> <span class="keyword">double</span><span class="special">,</span> <span class="number">48</span><span class="special">,</span> <span class="number">4423</span><span class="special">,</span> <span class="number">2098</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/lagged_fibonacci4423.html" title="Type definition lagged_fibonacci4423"><span class="identifier">lagged_fibonacci4423</span></a><span class="special">;</span>
3145    <span class="keyword">typedef</span> <a class="link" href="../boost/random/lagged_fibonacci_01_engine.html" title="Class template lagged_fibonacci_01_engine">lagged_fibonacci_01_engine</a><span class="special">&lt;</span> <span class="keyword">double</span><span class="special">,</span> <span class="number">48</span><span class="special">,</span> <span class="number">9689</span><span class="special">,</span> <span class="number">5502</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/lagged_fibonacci9689.html" title="Type definition lagged_fibonacci9689"><span class="identifier">lagged_fibonacci9689</span></a><span class="special">;</span>
3146    <span class="keyword">typedef</span> <a class="link" href="../boost/random/lagged_fibonacci_01_engine.html" title="Class template lagged_fibonacci_01_engine">lagged_fibonacci_01_engine</a><span class="special">&lt;</span> <span class="keyword">double</span><span class="special">,</span> <span class="number">48</span><span class="special">,</span> <span class="number">19937</span><span class="special">,</span> <span class="number">9842</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/lagged_fibonacci19937.html" title="Type definition lagged_fibonacci19937"><span class="identifier">lagged_fibonacci19937</span></a><span class="special">;</span>
3147    <span class="keyword">typedef</span> <a class="link" href="../boost/random/lagged_fibonacci_01_engine.html" title="Class template lagged_fibonacci_01_engine">lagged_fibonacci_01_engine</a><span class="special">&lt;</span> <span class="keyword">double</span><span class="special">,</span> <span class="number">48</span><span class="special">,</span> <span class="number">23209</span><span class="special">,</span> <span class="number">13470</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/lagged_fibonacci23209.html" title="Type definition lagged_fibonacci23209"><span class="identifier">lagged_fibonacci23209</span></a><span class="special">;</span>
3148    <span class="keyword">typedef</span> <a class="link" href="../boost/random/lagged_fibonacci_01_engine.html" title="Class template lagged_fibonacci_01_engine">lagged_fibonacci_01_engine</a><span class="special">&lt;</span> <span class="keyword">double</span><span class="special">,</span> <span class="number">48</span><span class="special">,</span> <span class="number">44497</span><span class="special">,</span> <span class="number">21034</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/lagged_fibonacci44497.html" title="Type definition lagged_fibonacci44497"><span class="identifier">lagged_fibonacci44497</span></a><span class="special">;</span>
3149  <span class="special">}</span>
3150<span class="special">}</span></pre>
3151</div>
3152<div class="section">
3153<div class="titlepage"><div><div><h4 class="title">
3154<a name="header.boost.random.laplace_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/laplace_distribution.hpp" target="_top">boost/random/laplace_distribution.hpp</a>&gt;</h4></div></div></div>
3155<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3156  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3157    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/laplace_distribution.html" title="Class template laplace_distribution">laplace_distribution</a><span class="special">;</span>
3158  <span class="special">}</span>
3159<span class="special">}</span></pre>
3160</div>
3161<div class="section">
3162<div class="titlepage"><div><div><h4 class="title">
3163<a name="header.boost.random.linear_congruential_hpp"></a>Header &lt;<a href="../../../boost/random/linear_congruential.hpp" target="_top">boost/random/linear_congruential.hpp</a>&gt;</h4></div></div></div>
3164<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3165  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3166    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IntType<span class="special">,</span> <span class="identifier">IntType</span> a<span class="special">,</span> <span class="identifier">IntType</span> c<span class="special">,</span> <span class="identifier">IntType</span> m<span class="special">&gt;</span>
3167      <span class="keyword">class</span> <a class="link" href="../boost/random/linear_congruential_engine.html" title="Class template linear_congruential_engine">linear_congruential_engine</a><span class="special">;</span>
3168    <span class="keyword">class</span> <a class="link" href="../boost/random/rand48.html" title="Class rand48">rand48</a><span class="special">;</span>
3169    <span class="keyword">typedef</span> <a class="link" href="../boost/random/linear_congruential_engine.html" title="Class template linear_congruential_engine">linear_congruential_engine</a><span class="special">&lt;</span> <span class="identifier">uint32_t</span><span class="special">,</span> <span class="number">16807</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="number">2147483647</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/minstd_rand0.html" title="Type definition minstd_rand0"><span class="identifier">minstd_rand0</span></a><span class="special">;</span>
3170    <span class="keyword">typedef</span> <a class="link" href="../boost/random/linear_congruential_engine.html" title="Class template linear_congruential_engine">linear_congruential_engine</a><span class="special">&lt;</span> <span class="identifier">uint32_t</span><span class="special">,</span> <span class="number">48271</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="number">2147483647</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/minstd_rand.html" title="Type definition minstd_rand"><span class="identifier">minstd_rand</span></a><span class="special">;</span>
3171  <span class="special">}</span>
3172<span class="special">}</span></pre>
3173</div>
3174<div class="section">
3175<div class="titlepage"><div><div><h4 class="title">
3176<a name="header.boost.random.linear_feedback_shift_hpp"></a>Header &lt;<a href="../../../boost/random/linear_feedback_shift.hpp" target="_top">boost/random/linear_feedback_shift.hpp</a>&gt;</h4></div></div></div>
3177<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3178  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3179    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> UIntType<span class="special">,</span> <span class="keyword">int</span> w<span class="special">,</span> <span class="keyword">int</span> k<span class="special">,</span> <span class="keyword">int</span> q<span class="special">,</span> <span class="keyword">int</span> s<span class="special">&gt;</span>
3180      <span class="keyword">class</span> <a class="link" href="../boost/random/linear_1_3_34_5_6_24_1_1_1.html" title="Class template linear_feedback_shift_engine">linear_feedback_shift_engine</a><span class="special">;</span>
3181  <span class="special">}</span>
3182<span class="special">}</span></pre>
3183</div>
3184<div class="section">
3185<div class="titlepage"><div><div><h4 class="title">
3186<a name="header.boost.random.lognormal_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/lognormal_distribution.hpp" target="_top">boost/random/lognormal_distribution.hpp</a>&gt;</h4></div></div></div>
3187<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3188  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3189    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/lognormal_distribution.html" title="Class template lognormal_distribution">lognormal_distribution</a><span class="special">;</span>
3190  <span class="special">}</span>
3191<span class="special">}</span></pre>
3192</div>
3193<div class="section">
3194<div class="titlepage"><div><div><h4 class="title">
3195<a name="header.boost.random.mersenne_twister_hpp"></a>Header &lt;<a href="../../../boost/random/mersenne_twister.hpp" target="_top">boost/random/mersenne_twister.hpp</a>&gt;</h4></div></div></div>
3196<pre class="synopsis">
3197
3198<a class="link" href="../BOOST_RAND_1_3_34_5_6_26_2.html" title="Macro BOOST_RANDOM_MERSENNE_TWISTER_DISCARD_THRESHOLD">BOOST_RANDOM_MERSENNE_TWISTER_DISCARD_THRESHOLD</a></pre>
3199<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3200  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3201    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> UIntType<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> w<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> n<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> m<span class="special">,</span>
3202             <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> r<span class="special">,</span> <span class="identifier">UIntType</span> a<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> u<span class="special">,</span> <span class="identifier">UIntType</span> d<span class="special">,</span>
3203             <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> s<span class="special">,</span> <span class="identifier">UIntType</span> b<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> t<span class="special">,</span> <span class="identifier">UIntType</span> c<span class="special">,</span>
3204             <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> l<span class="special">,</span> <span class="identifier">UIntType</span> f<span class="special">&gt;</span>
3205      <span class="keyword">class</span> <a class="link" href="../boost/random/mersenne_twister_engine.html" title="Class template mersenne_twister_engine">mersenne_twister_engine</a><span class="special">;</span>
3206    <span class="keyword">typedef</span> <a class="link" href="../boost/random/mersenne_twister_engine.html" title="Class template mersenne_twister_engine">mersenne_twister_engine</a><span class="special">&lt;</span> <span class="identifier">uint32_t</span><span class="special">,</span> <span class="number">32</span><span class="special">,</span> <span class="number">351</span><span class="special">,</span> <span class="number">175</span><span class="special">,</span> <span class="number">19</span><span class="special">,</span> <span class="number">0xccab8ee7</span><span class="special">,</span> <span class="number">11</span><span class="special">,</span> <span class="number">0xffffffff</span><span class="special">,</span> <span class="number">7</span><span class="special">,</span> <span class="number">0x31b6ab00</span><span class="special">,</span> <span class="number">15</span><span class="special">,</span> <span class="number">0xffe50000</span><span class="special">,</span> <span class="number">17</span><span class="special">,</span> <span class="number">1812433253</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/mt11213b.html" title="Type definition mt11213b"><span class="identifier">mt11213b</span></a><span class="special">;</span>
3207    <span class="keyword">typedef</span> <a class="link" href="../boost/random/mersenne_twister_engine.html" title="Class template mersenne_twister_engine">mersenne_twister_engine</a><span class="special">&lt;</span> <span class="identifier">uint32_t</span><span class="special">,</span> <span class="number">32</span><span class="special">,</span> <span class="number">624</span><span class="special">,</span> <span class="number">397</span><span class="special">,</span> <span class="number">31</span><span class="special">,</span> <span class="number">0x9908b0df</span><span class="special">,</span> <span class="number">11</span><span class="special">,</span> <span class="number">0xffffffff</span><span class="special">,</span> <span class="number">7</span><span class="special">,</span> <span class="number">0x9d2c5680</span><span class="special">,</span> <span class="number">15</span><span class="special">,</span> <span class="number">0xefc60000</span><span class="special">,</span> <span class="number">18</span><span class="special">,</span> <span class="number">1812433253</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/mt19937.html" title="Type definition mt19937"><span class="identifier">mt19937</span></a><span class="special">;</span>
3208    <span class="keyword">typedef</span> <a class="link" href="../boost/random/mersenne_twister_engine.html" title="Class template mersenne_twister_engine">mersenne_twister_engine</a><span class="special">&lt;</span> <span class="identifier">uint64_t</span><span class="special">,</span> <span class="number">64</span><span class="special">,</span> <span class="number">312</span><span class="special">,</span> <span class="number">156</span><span class="special">,</span> <span class="number">31</span><span class="special">,</span> <span class="number">0xb5026f5aa96619e9ull</span><span class="special">,</span> <span class="number">29</span><span class="special">,</span> <span class="number">0x5555555555555555ull</span><span class="special">,</span> <span class="number">17</span><span class="special">,</span> <span class="number">0x71d67fffeda60000ull</span><span class="special">,</span> <span class="number">37</span><span class="special">,</span> <span class="number">0xfff7eee000000000ull</span><span class="special">,</span> <span class="number">43</span><span class="special">,</span> <span class="number">6364136223846793005ull</span> <span class="special">&gt;</span> <a name="boost.random.mt19937_64"></a><span class="identifier">mt19937_64</span><span class="special">;</span>
3209  <span class="special">}</span>
3210<span class="special">}</span></pre>
3211</div>
3212<div class="section">
3213<div class="titlepage"><div><div><h4 class="title">
3214<a name="header.boost.random.negative_binomial_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/negative_binomial_distribution.hpp" target="_top">boost/random/negative_binomial_distribution.hpp</a>&gt;</h4></div></div></div>
3215<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3216  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3217    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IntType <span class="special">=</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span>
3218      <span class="keyword">class</span> <a class="link" href="../boost/random/negati_1_3_34_5_6_27_1_1_1.html" title="Class template negative_binomial_distribution">negative_binomial_distribution</a><span class="special">;</span>
3219  <span class="special">}</span>
3220<span class="special">}</span></pre>
3221</div>
3222<div class="section">
3223<div class="titlepage"><div><div><h4 class="title">
3224<a name="header.boost.random.niederreiter_base2_hpp"></a>Header &lt;<a href="../../../boost/random/niederreiter_base2.hpp" target="_top">boost/random/niederreiter_base2.hpp</a>&gt;</h4></div></div></div>
3225<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3226  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3227    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> UIntType<span class="special">,</span> <span class="keyword">unsigned</span> w<span class="special">,</span>
3228             <span class="keyword">typename</span> Nb2Table <span class="special">=</span> <span class="identifier">default_niederreiter_base2_table</span><span class="special">&gt;</span>
3229      <span class="keyword">class</span> <a class="link" href="../boost/random/niederreiter_base2_engine.html" title="Class template niederreiter_base2_engine">niederreiter_base2_engine</a><span class="special">;</span>
3230    <span class="keyword">typedef</span> <a class="link" href="../boost/random/niederreiter_base2_engine.html" title="Class template niederreiter_base2_engine">niederreiter_base2_engine</a><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span><span class="special">,</span> <span class="number">64u</span><span class="special">,</span> <span class="identifier">default_niederreiter_base2_table</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/niederreiter_base2.html" title="Type definition niederreiter_base2"><span class="identifier">niederreiter_base2</span></a><span class="special">;</span>
3231  <span class="special">}</span>
3232<span class="special">}</span></pre>
3233</div>
3234<div class="section">
3235<div class="titlepage"><div><div><h4 class="title">
3236<a name="header.boost.random.non_central_chi_squared_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/non_central_chi_squared_distribution.hpp" target="_top">boost/random/non_central_chi_squared_distribution.hpp</a>&gt;</h4></div></div></div>
3237<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3238  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3239    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span>
3240      <span class="keyword">class</span> <a class="link" href="../boost/random/non_ce_1_3_34_5_6_29_1_1_1.html" title="Class template non_central_chi_squared_distribution">non_central_chi_squared_distribution</a><span class="special">;</span>
3241  <span class="special">}</span>
3242<span class="special">}</span></pre>
3243</div>
3244<div class="section">
3245<div class="titlepage"><div><div><h4 class="title">
3246<a name="header.boost.random.normal_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/normal_distribution.hpp" target="_top">boost/random/normal_distribution.hpp</a>&gt;</h4></div></div></div>
3247<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3248  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3249    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/normal_distribution.html" title="Class template normal_distribution">normal_distribution</a><span class="special">;</span>
3250  <span class="special">}</span>
3251<span class="special">}</span></pre>
3252</div>
3253<div class="section">
3254<div class="titlepage"><div><div><h4 class="title">
3255<a name="header.boost.random.piecewise_constant_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/piecewise_constant_distribution.hpp" target="_top">boost/random/piecewise_constant_distribution.hpp</a>&gt;</h4></div></div></div>
3256<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3257  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3258    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">typename</span> WeightType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span>
3259      <span class="keyword">class</span> <a class="link" href="../boost/random/piecew_1_3_34_5_6_31_1_1_1.html" title="Class template piecewise_constant_distribution">piecewise_constant_distribution</a><span class="special">;</span>
3260  <span class="special">}</span>
3261<span class="special">}</span></pre>
3262</div>
3263<div class="section">
3264<div class="titlepage"><div><div><h4 class="title">
3265<a name="header.boost.random.piecewise_linear_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/piecewise_linear_distribution.hpp" target="_top">boost/random/piecewise_linear_distribution.hpp</a>&gt;</h4></div></div></div>
3266<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3267  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3268    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/piecew_1_3_34_5_6_32_1_1_1.html" title="Class template piecewise_linear_distribution">piecewise_linear_distribution</a><span class="special">;</span>
3269  <span class="special">}</span>
3270<span class="special">}</span></pre>
3271</div>
3272<div class="section">
3273<div class="titlepage"><div><div><h4 class="title">
3274<a name="header.boost.random.poisson_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/poisson_distribution.hpp" target="_top">boost/random/poisson_distribution.hpp</a>&gt;</h4></div></div></div>
3275<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3276  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3277    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IntType <span class="special">=</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span>
3278      <span class="keyword">class</span> <a class="link" href="../boost/random/poisson_distribution.html" title="Class template poisson_distribution">poisson_distribution</a><span class="special">;</span>
3279  <span class="special">}</span>
3280<span class="special">}</span></pre>
3281</div>
3282<div class="section">
3283<div class="titlepage"><div><div><h4 class="title">
3284<a name="header.boost.random.random_device_hpp"></a>Header &lt;<a href="../../../boost/random/random_device.hpp" target="_top">boost/random/random_device.hpp</a>&gt;</h4></div></div></div>
3285<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3286  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3287    <span class="keyword">class</span> <a class="link" href="../boost/random/random_device.html" title="Class random_device">random_device</a><span class="special">;</span>
3288  <span class="special">}</span>
3289<span class="special">}</span></pre>
3290</div>
3291<div class="section">
3292<div class="titlepage"><div><div><h4 class="title">
3293<a name="header.boost.random.random_number_generator_hpp"></a>Header &lt;<a href="../../../boost/random/random_number_generator.hpp" target="_top">boost/random/random_number_generator.hpp</a>&gt;</h4></div></div></div>
3294<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3295  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3296    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> URNG<span class="special">,</span> <span class="keyword">typename</span> IntType <span class="special">=</span> <span class="keyword">long</span><span class="special">&gt;</span>
3297      <span class="keyword">class</span> <a class="link" href="../boost/random/random_number_generator.html" title="Class template random_number_generator">random_number_generator</a><span class="special">;</span>
3298  <span class="special">}</span>
3299<span class="special">}</span></pre>
3300</div>
3301<div class="section">
3302<div class="titlepage"><div><div><h4 class="title">
3303<a name="header.boost.random.ranlux_hpp"></a>Header &lt;<a href="../../../boost/random/ranlux.hpp" target="_top">boost/random/ranlux.hpp</a>&gt;</h4></div></div></div>
3304<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3305  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3306    <span class="keyword">typedef</span> <a class="link" href="../boost/random/subtract_with_carry_engine.html" title="Class template subtract_with_carry_engine">subtract_with_carry_engine</a><span class="special">&lt;</span> <span class="identifier">uint32_t</span><span class="special">,</span> <span class="number">24</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">24</span> <span class="special">&gt;</span> <a name="boost.random.ranlux_base"></a><span class="identifier">ranlux_base</span><span class="special">;</span>
3307    <span class="keyword">typedef</span> <a class="link" href="../boost/random/subtra_1_3_34_5_6_41_1_1_1.html" title="Class template subtract_with_carry_01_engine">subtract_with_carry_01_engine</a><span class="special">&lt;</span> <span class="keyword">float</span><span class="special">,</span> <span class="number">24</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">24</span> <span class="special">&gt;</span> <a name="boost.random.ranlux_base_01"></a><span class="identifier">ranlux_base_01</span><span class="special">;</span>
3308    <span class="keyword">typedef</span> <a class="link" href="../boost/random/subtra_1_3_34_5_6_41_1_1_1.html" title="Class template subtract_with_carry_01_engine">subtract_with_carry_01_engine</a><span class="special">&lt;</span> <span class="keyword">double</span><span class="special">,</span> <span class="number">48</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">24</span> <span class="special">&gt;</span> <a name="boost.random.ranlux64_base_01"></a><span class="identifier">ranlux64_base_01</span><span class="special">;</span>
3309    <span class="keyword">typedef</span> <a class="link" href="../boost/random/discard_block_engine.html" title="Class template discard_block_engine">discard_block_engine</a><span class="special">&lt;</span> <a class="link" href="reference.html#boost.random.ranlux_base">ranlux_base</a><span class="special">,</span> <span class="number">223</span><span class="special">,</span> <span class="number">24</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/ranlux3.html" title="Type definition ranlux3"><span class="identifier">ranlux3</span></a><span class="special">;</span>
3310    <span class="keyword">typedef</span> <a class="link" href="../boost/random/discard_block_engine.html" title="Class template discard_block_engine">discard_block_engine</a><span class="special">&lt;</span> <a class="link" href="reference.html#boost.random.ranlux_base">ranlux_base</a><span class="special">,</span> <span class="number">389</span><span class="special">,</span> <span class="number">24</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/ranlux4.html" title="Type definition ranlux4"><span class="identifier">ranlux4</span></a><span class="special">;</span>
3311    <span class="keyword">typedef</span> <a class="link" href="../boost/random/discard_block_engine.html" title="Class template discard_block_engine">discard_block_engine</a><span class="special">&lt;</span> <a class="link" href="reference.html#boost.random.ranlux_base_01">ranlux_base_01</a><span class="special">,</span> <span class="number">223</span><span class="special">,</span> <span class="number">24</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/ranlux3_01.html" title="Type definition ranlux3_01"><span class="identifier">ranlux3_01</span></a><span class="special">;</span>
3312    <span class="keyword">typedef</span> <a class="link" href="../boost/random/discard_block_engine.html" title="Class template discard_block_engine">discard_block_engine</a><span class="special">&lt;</span> <a class="link" href="reference.html#boost.random.ranlux_base_01">ranlux_base_01</a><span class="special">,</span> <span class="number">389</span><span class="special">,</span> <span class="number">24</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/ranlux4_01.html" title="Type definition ranlux4_01"><span class="identifier">ranlux4_01</span></a><span class="special">;</span>
3313    <span class="keyword">typedef</span> <a class="link" href="../boost/random/discard_block_engine.html" title="Class template discard_block_engine">discard_block_engine</a><span class="special">&lt;</span> <a class="link" href="reference.html#boost.random.ranlux64_base_01">ranlux64_base_01</a><span class="special">,</span> <span class="number">223</span><span class="special">,</span> <span class="number">24</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/ranlux64_3_01.html" title="Type definition ranlux64_3_01"><span class="identifier">ranlux64_3_01</span></a><span class="special">;</span>
3314    <span class="keyword">typedef</span> <a class="link" href="../boost/random/discard_block_engine.html" title="Class template discard_block_engine">discard_block_engine</a><span class="special">&lt;</span> <a class="link" href="reference.html#boost.random.ranlux64_base_01">ranlux64_base_01</a><span class="special">,</span> <span class="number">389</span><span class="special">,</span> <span class="number">24</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/ranlux64_4_01.html" title="Type definition ranlux64_4_01"><span class="identifier">ranlux64_4_01</span></a><span class="special">;</span>
3315    <span class="keyword">typedef</span> <a class="link" href="../boost/random/subtract_with_carry_engine.html" title="Class template subtract_with_carry_engine">subtract_with_carry_engine</a><span class="special">&lt;</span> <span class="identifier">uint64_t</span><span class="special">,</span> <span class="number">48</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">24</span> <span class="special">&gt;</span> <a name="boost.random.ranlux64_base"></a><span class="identifier">ranlux64_base</span><span class="special">;</span>
3316    <span class="keyword">typedef</span> <a class="link" href="../boost/random/discard_block_engine.html" title="Class template discard_block_engine">discard_block_engine</a><span class="special">&lt;</span> <a class="link" href="reference.html#boost.random.ranlux64_base">ranlux64_base</a><span class="special">,</span> <span class="number">223</span><span class="special">,</span> <span class="number">24</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/ranlux64_3.html" title="Type definition ranlux64_3"><span class="identifier">ranlux64_3</span></a><span class="special">;</span>
3317    <span class="keyword">typedef</span> <a class="link" href="../boost/random/discard_block_engine.html" title="Class template discard_block_engine">discard_block_engine</a><span class="special">&lt;</span> <a class="link" href="reference.html#boost.random.ranlux64_base">ranlux64_base</a><span class="special">,</span> <span class="number">389</span><span class="special">,</span> <span class="number">24</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/ranlux64_4.html" title="Type definition ranlux64_4"><span class="identifier">ranlux64_4</span></a><span class="special">;</span>
3318    <span class="keyword">typedef</span> <a class="link" href="../boost/random/subtract_with_carry_engine.html" title="Class template subtract_with_carry_engine">subtract_with_carry_engine</a><span class="special">&lt;</span> <span class="identifier">uint32_t</span><span class="special">,</span> <span class="number">24</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">24</span> <span class="special">&gt;</span> <a name="boost.random.ranlux24_base"></a><span class="identifier">ranlux24_base</span><span class="special">;</span>
3319    <span class="keyword">typedef</span> <a class="link" href="../boost/random/subtract_with_carry_engine.html" title="Class template subtract_with_carry_engine">subtract_with_carry_engine</a><span class="special">&lt;</span> <span class="identifier">uint64_t</span><span class="special">,</span> <span class="number">48</span><span class="special">,</span> <span class="number">5</span><span class="special">,</span> <span class="number">12</span> <span class="special">&gt;</span> <a name="boost.random.ranlux48_base"></a><span class="identifier">ranlux48_base</span><span class="special">;</span>
3320    <span class="keyword">typedef</span> <a class="link" href="../boost/random/discard_block_engine.html" title="Class template discard_block_engine">discard_block_engine</a><span class="special">&lt;</span> <a class="link" href="reference.html#boost.random.ranlux24_base">ranlux24_base</a><span class="special">,</span> <span class="number">223</span><span class="special">,</span> <span class="number">23</span> <span class="special">&gt;</span> <a name="boost.random.ranlux24"></a><span class="identifier">ranlux24</span><span class="special">;</span>
3321    <span class="keyword">typedef</span> <a class="link" href="../boost/random/discard_block_engine.html" title="Class template discard_block_engine">discard_block_engine</a><span class="special">&lt;</span> <a class="link" href="reference.html#boost.random.ranlux48_base">ranlux48_base</a><span class="special">,</span> <span class="number">389</span><span class="special">,</span> <span class="number">11</span> <span class="special">&gt;</span> <a name="boost.random.ranlux48"></a><span class="identifier">ranlux48</span><span class="special">;</span>
3322  <span class="special">}</span>
3323<span class="special">}</span></pre>
3324</div>
3325<div class="section">
3326<div class="titlepage"><div><div><h4 class="title">
3327<a name="header.boost.random.seed_seq_hpp"></a>Header &lt;<a href="../../../boost/random/seed_seq.hpp" target="_top">boost/random/seed_seq.hpp</a>&gt;</h4></div></div></div>
3328<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3329  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3330    <span class="keyword">class</span> <a class="link" href="../boost/random/seed_seq.html" title="Class seed_seq">seed_seq</a><span class="special">;</span>
3331  <span class="special">}</span>
3332<span class="special">}</span></pre>
3333</div>
3334<div class="section">
3335<div class="titlepage"><div><div><h4 class="title">
3336<a name="header.boost.random.shuffle_order_hpp"></a>Header &lt;<a href="../../../boost/random/shuffle_order.hpp" target="_top">boost/random/shuffle_order.hpp</a>&gt;</h4></div></div></div>
3337<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3338  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3339    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> UniformRandomNumberGenerator<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> k<span class="special">&gt;</span>
3340      <span class="keyword">class</span> <a class="link" href="../boost/random/shuffle_order_engine.html" title="Class template shuffle_order_engine">shuffle_order_engine</a><span class="special">;</span>
3341    <span class="keyword">typedef</span> <a class="link" href="../boost/random/shuffle_order_engine.html" title="Class template shuffle_order_engine">shuffle_order_engine</a><span class="special">&lt;</span> <a class="link" href="../boost/random/linear_congruential_engine.html" title="Class template linear_congruential_engine">linear_congruential_engine</a><span class="special">&lt;</span> <span class="identifier">uint32_t</span><span class="special">,</span> <span class="number">1366</span><span class="special">,</span> <span class="number">150889</span><span class="special">,</span> <span class="number">714025</span> <span class="special">&gt;</span><span class="special">,</span> <span class="number">97</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/kreutzer1986.html" title="Type definition kreutzer1986"><span class="identifier">kreutzer1986</span></a><span class="special">;</span>
3342    <span class="keyword">typedef</span> <a class="link" href="../boost/random/shuffle_order_engine.html" title="Class template shuffle_order_engine">shuffle_order_engine</a><span class="special">&lt;</span> <a class="link" href="../boost/random/minstd_rand0.html" title="Type definition minstd_rand0">minstd_rand0</a><span class="special">,</span> <span class="number">256</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/knuth_b.html" title="Type definition knuth_b"><span class="identifier">knuth_b</span></a><span class="special">;</span>
3343  <span class="special">}</span>
3344<span class="special">}</span></pre>
3345</div>
3346<div class="section">
3347<div class="titlepage"><div><div><h4 class="title">
3348<a name="header.boost.random.sobol_hpp"></a>Header &lt;<a href="../../../boost/random/sobol.hpp" target="_top">boost/random/sobol.hpp</a>&gt;</h4></div></div></div>
3349<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3350  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3351    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> UIntType<span class="special">,</span> <span class="keyword">unsigned</span> w<span class="special">,</span>
3352             <span class="keyword">typename</span> SobolTables <span class="special">=</span> <span class="identifier">default_sobol_table</span><span class="special">&gt;</span>
3353      <span class="keyword">class</span> <a class="link" href="../boost/random/sobol_engine.html" title="Class template sobol_engine">sobol_engine</a><span class="special">;</span>
3354    <span class="keyword">typedef</span> <a class="link" href="../boost/random/sobol_engine.html" title="Class template sobol_engine">sobol_engine</a><span class="special">&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span><span class="special">,</span> <span class="number">64u</span><span class="special">,</span> <span class="identifier">default_sobol_table</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/sobol.html" title="Type definition sobol"><span class="identifier">sobol</span></a><span class="special">;</span>
3355  <span class="special">}</span>
3356<span class="special">}</span></pre>
3357</div>
3358<div class="section">
3359<div class="titlepage"><div><div><h4 class="title">
3360<a name="header.boost.random.student_t_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/student_t_distribution.hpp" target="_top">boost/random/student_t_distribution.hpp</a>&gt;</h4></div></div></div>
3361<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3362  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3363    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/student_t_distribution.html" title="Class template student_t_distribution">student_t_distribution</a><span class="special">;</span>
3364  <span class="special">}</span>
3365<span class="special">}</span></pre>
3366</div>
3367<div class="section">
3368<div class="titlepage"><div><div><h4 class="title">
3369<a name="header.boost.random.subtract_with_carry_hpp"></a>Header &lt;<a href="../../../boost/random/subtract_with_carry.hpp" target="_top">boost/random/subtract_with_carry.hpp</a>&gt;</h4></div></div></div>
3370<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3371  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3372    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> w<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> s<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> r<span class="special">&gt;</span>
3373      <span class="keyword">class</span> <a class="link" href="../boost/random/subtra_1_3_34_5_6_41_1_1_1.html" title="Class template subtract_with_carry_01_engine">subtract_with_carry_01_engine</a><span class="special">;</span>
3374    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IntType<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> w<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> s<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> r<span class="special">&gt;</span>
3375      <span class="keyword">class</span> <a class="link" href="../boost/random/subtract_with_carry_engine.html" title="Class template subtract_with_carry_engine">subtract_with_carry_engine</a><span class="special">;</span>
3376  <span class="special">}</span>
3377<span class="special">}</span></pre>
3378</div>
3379<div class="section">
3380<div class="titlepage"><div><div><h4 class="title">
3381<a name="header.boost.random.taus88_hpp"></a>Header &lt;<a href="../../../boost/random/taus88.hpp" target="_top">boost/random/taus88.hpp</a>&gt;</h4></div></div></div>
3382<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3383  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3384    <span class="keyword">typedef</span> <a class="link" href="../boost/random/xor_combine_engine.html" title="Class template xor_combine_engine">xor_combine_engine</a><span class="special">&lt;</span> <a class="link" href="../boost/random/xor_combine_engine.html" title="Class template xor_combine_engine">xor_combine_engine</a><span class="special">&lt;</span> <a class="link" href="../boost/random/linear_1_3_34_5_6_24_1_1_1.html" title="Class template linear_feedback_shift_engine">linear_feedback_shift_engine</a><span class="special">&lt;</span> <span class="identifier">uint32_t</span><span class="special">,</span> <span class="number">32</span><span class="special">,</span> <span class="number">31</span><span class="special">,</span> <span class="number">13</span><span class="special">,</span> <span class="number">12</span> <span class="special">&gt;</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <a class="link" href="../boost/random/linear_1_3_34_5_6_24_1_1_1.html" title="Class template linear_feedback_shift_engine">linear_feedback_shift_engine</a><span class="special">&lt;</span> <span class="identifier">uint32_t</span><span class="special">,</span> <span class="number">32</span><span class="special">,</span> <span class="number">29</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="number">4</span> <span class="special">&gt;</span><span class="special">,</span> <span class="number">0</span> <span class="special">&gt;</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <a class="link" href="../boost/random/linear_1_3_34_5_6_24_1_1_1.html" title="Class template linear_feedback_shift_engine">linear_feedback_shift_engine</a><span class="special">&lt;</span> <span class="identifier">uint32_t</span><span class="special">,</span> <span class="number">32</span><span class="special">,</span> <span class="number">28</span><span class="special">,</span> <span class="number">3</span><span class="special">,</span> <span class="number">17</span> <span class="special">&gt;</span><span class="special">,</span> <span class="number">0</span> <span class="special">&gt;</span> <a class="link" href="../boost/random/taus88.html" title="Type definition taus88"><span class="identifier">taus88</span></a><span class="special">;</span>
3385  <span class="special">}</span>
3386<span class="special">}</span></pre>
3387</div>
3388<div class="section">
3389<div class="titlepage"><div><div><h4 class="title">
3390<a name="header.boost.random.traits_hpp"></a>Header &lt;<a href="../../../boost/random/traits.hpp" target="_top">boost/random/traits.hpp</a>&gt;</h4></div></div></div>
3391<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3392  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3393    <span class="keyword">namespace</span> <span class="identifier">traits</span> <span class="special">{</span>
3394      <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/random/traits/is_integral.html" title="Struct template is_integral">is_integral</a><span class="special">;</span>
3395      <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/random/traits/is_signed.html" title="Struct template is_signed">is_signed</a><span class="special">;</span>
3396      <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/random/traits/make_unsigned.html" title="Struct template make_unsigned">make_unsigned</a><span class="special">;</span>
3397      <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> T<span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="../boost/random/traits/make_unsigned_or_unbounded.html" title="Struct template make_unsigned_or_unbounded">make_unsigned_or_unbounded</a><span class="special">;</span>
3398    <span class="special">}</span>
3399  <span class="special">}</span>
3400<span class="special">}</span></pre>
3401</div>
3402<div class="section">
3403<div class="titlepage"><div><div><h4 class="title">
3404<a name="header.boost.random.triangle_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/triangle_distribution.hpp" target="_top">boost/random/triangle_distribution.hpp</a>&gt;</h4></div></div></div>
3405<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3406  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3407    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/triangle_distribution.html" title="Class template triangle_distribution">triangle_distribution</a><span class="special">;</span>
3408  <span class="special">}</span>
3409<span class="special">}</span></pre>
3410</div>
3411<div class="section">
3412<div class="titlepage"><div><div><h4 class="title">
3413<a name="header.boost.random.uniform_01_hpp"></a>Header &lt;<a href="../../../boost/random/uniform_01.hpp" target="_top">boost/random/uniform_01.hpp</a>&gt;</h4></div></div></div>
3414<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3415  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3416    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/uniform_01.html" title="Class template uniform_01">uniform_01</a><span class="special">;</span>
3417  <span class="special">}</span>
3418<span class="special">}</span></pre>
3419</div>
3420<div class="section">
3421<div class="titlepage"><div><div><h4 class="title">
3422<a name="header.boost.random.uniform_int_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/uniform_int_distribution.hpp" target="_top">boost/random/uniform_int_distribution.hpp</a>&gt;</h4></div></div></div>
3423<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3424  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3425    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IntType <span class="special">=</span> <span class="keyword">int</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/uniform_int_distribution.html" title="Class template uniform_int_distribution">uniform_int_distribution</a><span class="special">;</span>
3426  <span class="special">}</span>
3427<span class="special">}</span></pre>
3428</div>
3429<div class="section">
3430<div class="titlepage"><div><div><h4 class="title">
3431<a name="header.boost.random.uniform_on_sphere_hpp"></a>Header &lt;<a href="../../../boost/random/uniform_on_sphere.hpp" target="_top">boost/random/uniform_on_sphere.hpp</a>&gt;</h4></div></div></div>
3432<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3433  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3434    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
3435             <span class="keyword">typename</span> Cont <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;</span> <span class="special">&gt;</span>
3436      <span class="keyword">class</span> <a class="link" href="../boost/random/uniform_on_sphere.html" title="Class template uniform_on_sphere">uniform_on_sphere</a><span class="special">;</span>
3437  <span class="special">}</span>
3438<span class="special">}</span></pre>
3439</div>
3440<div class="section">
3441<div class="titlepage"><div><div><h4 class="title">
3442<a name="header.boost.random.uniform_real_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/uniform_real_distribution.hpp" target="_top">boost/random/uniform_real_distribution.hpp</a>&gt;</h4></div></div></div>
3443<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3444  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3445    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/uniform_real_distribution.html" title="Class template uniform_real_distribution">uniform_real_distribution</a><span class="special">;</span>
3446  <span class="special">}</span>
3447<span class="special">}</span></pre>
3448</div>
3449<div class="section">
3450<div class="titlepage"><div><div><h4 class="title">
3451<a name="header.boost.random.uniform_smallint_hpp"></a>Header &lt;<a href="../../../boost/random/uniform_smallint.hpp" target="_top">boost/random/uniform_smallint.hpp</a>&gt;</h4></div></div></div>
3452<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3453  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3454    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> IntType <span class="special">=</span> <span class="keyword">int</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/uniform_smallint.html" title="Class template uniform_smallint">uniform_smallint</a><span class="special">;</span>
3455  <span class="special">}</span>
3456<span class="special">}</span></pre>
3457</div>
3458<div class="section">
3459<div class="titlepage"><div><div><h4 class="title">
3460<a name="header.boost.random.variate_generator_hpp"></a>Header &lt;<a href="../../../boost/random/variate_generator.hpp" target="_top">boost/random/variate_generator.hpp</a>&gt;</h4></div></div></div>
3461<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3462  <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Engine<span class="special">,</span> <span class="keyword">typename</span> Distribution<span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/variate_generator.html" title="Class template variate_generator">variate_generator</a><span class="special">;</span>
3463<span class="special">}</span></pre>
3464</div>
3465<div class="section">
3466<div class="titlepage"><div><div><h4 class="title">
3467<a name="header.boost.random.weibull_distribution_hpp"></a>Header &lt;<a href="../../../boost/random/weibull_distribution.hpp" target="_top">boost/random/weibull_distribution.hpp</a>&gt;</h4></div></div></div>
3468<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3469  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3470    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> RealType <span class="special">=</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">class</span> <a class="link" href="../boost/random/weibull_distribution.html" title="Class template weibull_distribution">weibull_distribution</a><span class="special">;</span>
3471  <span class="special">}</span>
3472<span class="special">}</span></pre>
3473</div>
3474<div class="section">
3475<div class="titlepage"><div><div><h4 class="title">
3476<a name="header.boost.random.xor_combine_hpp"></a>Header &lt;<a href="../../../boost/random/xor_combine.hpp" target="_top">boost/random/xor_combine.hpp</a>&gt;</h4></div></div></div>
3477<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
3478  <span class="keyword">namespace</span> <span class="identifier">random</span> <span class="special">{</span>
3479    <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> URNG1<span class="special">,</span> <span class="keyword">int</span> s1<span class="special">,</span> <span class="keyword">typename</span> URNG2<span class="special">,</span> <span class="keyword">int</span> s2<span class="special">&gt;</span>
3480      <span class="keyword">class</span> <a class="link" href="../boost/random/xor_combine_engine.html" title="Class template xor_combine_engine">xor_combine_engine</a><span class="special">;</span>
3481  <span class="special">}</span>
3482<span class="special">}</span></pre>
3483</div>
3484</div>
3485</div>
3486<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
3487<td align="left"></td>
3488<td align="right"><div class="copyright-footer">Copyright © 2000-2005 Jens Maurer<br>Copyright © 2009, 2010 Steven Watanabe<p>
3489        Distributed under the Boost Software License, Version 1.0. (See accompanying
3490        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
3491      </p>
3492</div></td>
3493</tr></table>
3494<hr>
3495<div class="spirit-nav">
3496<a accesskey="p" href="tutorial.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../boost_random.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../boost/random/additive_combine_engine.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
3497</div>
3498</body>
3499</html>
3500