~ubuntu-branches/ubuntu/utopic/blitz++/utopic

« back to all changes in this revision

Viewing changes to doc/blitz_9.html

  • Committer: Package Import Robot
  • Author(s): Christophe Trophime
  • Date: 2012-07-06 09:15:30 UTC
  • mfrom: (11.1.5 sid)
  • Revision ID: package-import@ubuntu.com-20120706091530-vzrb8zf0vpbf8tp9
Tags: 1:0.10-1
* New upstream release
  Closes: #679407
* debian/rules:
  - update for new release
  - add override_dh_auto_test target
  - regenerate configure and Makefile.am
* debian/control:
  - add libtool, automake to BuildDepends
* debian/libblitz-doc.install
  - modify path for html files
* remove uneeded patches
* add examples.patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<HTML>
2
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3
 
<!-- Created on October, 14  2005 by texi2html 1.64 -->
4
 
<!-- 
5
 
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
6
 
            Karl Berry  <karl@freefriends.org>
7
 
            Olaf Bachmann <obachman@mathematik.uni-kl.de>
8
 
            and many others.
9
 
Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
10
 
Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
11
 
 
12
 
-->
13
 
<HEAD>
14
 
<TITLE>Blitz++: Random Number Generators</TITLE>
15
 
 
16
 
<META NAME="description" CONTENT="Blitz++: Random Number Generators">
17
 
<META NAME="keywords" CONTENT="Blitz++: Random Number Generators">
18
 
<META NAME="resource-type" CONTENT="document">
19
 
<META NAME="distribution" CONTENT="global">
20
 
<META NAME="Generator" CONTENT="texi2html 1.64">
21
 
 
22
 
</HEAD>
23
 
 
24
 
<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
25
 
 
26
 
<A NAME="SEC142"></A>
27
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
28
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_8.html#SEC141"> &lt; </A>]</TD>
29
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC143"> &gt; </A>]</TD>
30
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
31
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top"> Up </A>]</TD>
32
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
33
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
34
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
35
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
36
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
37
 
</TR></TABLE>
38
 
<H1> 9. Random Number Generators </H1>
39
 
<!--docid::SEC142::-->
40
 
<P>
41
 
 
42
 
<HR SIZE="6">
43
 
<A NAME="SEC143"></A>
44
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
45
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC142"> &lt; </A>]</TD>
46
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC144"> &gt; </A>]</TD>
47
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
48
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC142"> Up </A>]</TD>
49
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
50
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
51
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
52
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
53
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
54
 
</TR></TABLE>
55
 
<H2> 9.1 Overview </H2>
56
 
<!--docid::SEC143::-->
57
 
<P>
58
 
 
59
 
These are the basic random number generators (RNGs):
60
 
</P><P>
61
 
 
62
 
<A NAME="IDX339"></A>
63
 
<A NAME="IDX340"></A>
64
 
<A NAME="IDX341"></A>
65
 
</P><P>
66
 
 
67
 
<DL COMPACT>
68
 
<DT><CODE>Uniform</CODE>
69
 
<DD>Uniform reals on [0,1)
70
 
<P>
71
 
 
72
 
<DT><CODE>Normal</CODE>
73
 
<DD>Normal with specified mean and variance
74
 
<P>
75
 
 
76
 
<DT><CODE>Exponential</CODE>
77
 
<DD>Exponential with specified mean
78
 
<P>
79
 
 
80
 
<DT><CODE>DiscreteUniform</CODE>
81
 
<DD>Integers uniformly distributed over a specified range.
82
 
<P>
83
 
 
84
 
<DT><CODE>Beta</CODE>
85
 
<DD>Beta distribution
86
 
<P>
87
 
 
88
 
<DT><CODE>Gamma</CODE>
89
 
<DD>Gamma distribution
90
 
<P>
91
 
 
92
 
<DT><CODE>F</CODE>
93
 
<DD>F distribution
94
 
</DL>
95
 
<P>
96
 
 
97
 
To use these generators, you need to include some subset of these headers:
98
 
</P><P>
99
 
 
100
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>#include &#60;random/uniform.h&#62;
101
 
#include &#60;random/normal.h&#62;
102
 
#include &#60;random/exponential.h&#62;
103
 
#include &#60;random/discrete-uniform.h&#62;
104
 
#include &#60;random/beta.h&#62;
105
 
#include &#60;random/gamma.h&#62;
106
 
#include &#60;random/chisquare.h&#62;
107
 
#include &#60;random/F.h&#62;
108
 
 
109
 
using namespace ranlib;
110
 
</pre></td></tr></table></P><P>
111
 
 
112
 
All the generators are inside the namespace <STRONG>ranlib</STRONG>, 
113
 
<A NAME="IDX342"></A>
114
 
so a <STRONG>using namespace ranlib</STRONG> directive is required (alternately, you
115
 
can write e.g. <CODE>ranlib::Uniform&#60;&#62;</CODE>).
116
 
</P><P>
117
 
 
118
 
These generators are all class templates.  The first template parameter is
119
 
the number type you want to generate: float, double or long double for
120
 
continuous distributions, and integer for discrete distributions.  This
121
 
parameter defaults to <CODE>float</CODE> for continuous distributions,
122
 
and <CODE>unsigned int</CODE> for discrete distributions.
123
 
</P><P>
124
 
 
125
 
The constructors are:
126
 
</P><P>
127
 
 
128
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>Uniform();
129
 
Normal(T mean, T standardDeviation);
130
 
Exponential(T mean);
131
 
DiscreteUniform(T n);   // range is 0 .. n-1
132
 
Beta(T a, T b);
133
 
Gamma(T mean);
134
 
ChiSquare(T df);
135
 
F(T dfn, T dfd);
136
 
</pre></td></tr></table></P><P>
137
 
 
138
 
where <CODE>T</CODE> is the first template parameter (<CODE>float</CODE>, <CODE>double</CODE>,
139
 
or <CODE>long double</CODE>).  To obtain a random number, use the method
140
 
<CODE>random()</CODE>.  Here is an example of constructing and using a
141
 
<CODE>Normal</CODE> generator:
142
 
</P><P>
143
 
 
144
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>#include &#60;random/normal.h&#62;
145
 
 
146
 
using namespace ranlib;
147
 
 
148
 
void foo()
149
 
{
150
 
    Normal&#60;double&#62; normalGen;
151
 
    double x = normalGen.random();    // x is a normal random number
152
 
}
153
 
</pre></td></tr></table></P><P>
154
 
 
155
 
<HR SIZE="6">
156
 
<A NAME="SEC144"></A>
157
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
158
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC143"> &lt; </A>]</TD>
159
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC145"> &gt; </A>]</TD>
160
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC145"> &lt;&lt; </A>]</TD>
161
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC142"> Up </A>]</TD>
162
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
163
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
164
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
165
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
166
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
167
 
</TR></TABLE>
168
 
<H2> 9.2 Note: Parallel random number generators </H2>
169
 
<!--docid::SEC144::-->
170
 
<P>
171
 
 
172
 
The generators which Blitz++ provides are not suitable for parallel
173
 
programs.  If you need parallel RNGs, you may find
174
 
<A HREF="http://www.ncsa.uiuc.edu/Apps/SPRNG">http://www.ncsa.uiuc.edu/Apps/SPRNG</A> useful.
175
 
</P><P>
176
 
 
177
 
<HR SIZE="6">
178
 
<A NAME="SEC145"></A>
179
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
180
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC144"> &lt; </A>]</TD>
181
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC146"> &gt; </A>]</TD>
182
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC146"> &lt;&lt; </A>]</TD>
183
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC142"> Up </A>]</TD>
184
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
185
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
186
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
187
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
188
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
189
 
</TR></TABLE>
190
 
<H2> 9.3 Seeding a random number generator </H2>
191
 
<!--docid::SEC145::-->
192
 
<P>
193
 
 
194
 
<A NAME="IDX343"></A>
195
 
</P><P>
196
 
 
197
 
You may seed a random number generator using the member function
198
 
<CODE>seed(unsigned int)</CODE>.  
199
 
<A NAME="IDX344"></A>
200
 
By default, all random
201
 
number generators share the same underlying integer random number generator.
202
 
So seeding one generator will seed them all.  (Note: you can create
203
 
generators with their own internal state; see the sections below).  You
204
 
should generally only seed a random number generator once, at the beginning
205
 
of a program run.  
206
 
</P><P>
207
 
 
208
 
Here is an example of seeding with the system clock:
209
 
</P><P>
210
 
 
211
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>#include &#60;random/uniform.h&#62;
212
 
#include &#60;time.h&#62;
213
 
 
214
 
using namespace ranlib;
215
 
 
216
 
int main()
217
 
{
218
 
    // At start of program, seed with the system time so we get
219
 
    // a different stream of random numbers each run.
220
 
    Uniform&#60;float&#62; x;
221
 
    x.seed((unsigned int)time(0));
222
 
 
223
 
    // Rest of program
224
 
    ...
225
 
}
226
 
</pre></td></tr></table></P><P>
227
 
 
228
 
Note: you may be tempted to seed the random number generator from a static
229
 
initializer.  <STRONG>Don't do it!</STRONG>  Due to an oddity of C++, there is no
230
 
guarantee on the order of static initialization when templates are involved.
231
 
Hence, you may seed the RNG before its constructor is invoked, in which case
232
 
your program will crash.  If you don't know what a static initializer is,
233
 
don't worry -- you're safe!
234
 
</P><P>
235
 
 
236
 
<HR SIZE="6">
237
 
<A NAME="SEC146"></A>
238
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
239
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC145"> &lt; </A>]</TD>
240
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC147"> &gt; </A>]</TD>
241
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC147"> &lt;&lt; </A>]</TD>
242
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC142"> Up </A>]</TD>
243
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
244
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
245
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
246
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
247
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
248
 
</TR></TABLE>
249
 
<H2> 9.4 Detailed description of RNGs </H2>
250
 
<!--docid::SEC146::-->
251
 
<P>
252
 
 
253
 
<A NAME="IDX345"></A>
254
 
</P><P>
255
 
 
256
 
There are really two types of RNGs:
257
 
</P><P>
258
 
 
259
 
<DL COMPACT>
260
 
<DT><CODE>Integer</CODE>
261
 
<DD>RNGs provide uniformly distributed, unsigned 32 bit integers.
262
 
<A NAME="IDX346"></A>
263
 
<A NAME="IDX347"></A>
264
 
<P>
265
 
 
266
 
<DT><CODE>RNGs</CODE>
267
 
<DD>use Integer RNGs to provide other kinds of random numbers. 
268
 
</DL>
269
 
<P>
270
 
 
271
 
By default, the Integer RNG used is a faithful adaptation of the Mersenne
272
 
Twister <CODE>MT19937</CODE> @cindex MersenneTwister due to Matsumoto and
273
 
Nishimura (see <CITE>ACM Transactions on Modeling and Computer Simulation,
274
 
Vol. 8, No. 1, January 1998, pp 3-30</CITE>,
275
 
<A HREF="http://www.math.keio.ac.jp/~matumoto/emt.html">http://www.math.keio.ac.jp/~matumoto/emt.html</A>,
276
 
<A HREF="http://www.acm.org/pubs/citations/journals/tomacs/1998-8-1/p3-matsumoto/">http://www.acm.org/pubs/citations/journals/tomacs/1998-8-1/p3-matsumoto/</A>).
277
 
This generator has a period of 
278
 
<EM>2^{19937</EM>-1}
279
 
2^(19937)-1
280
 
, passed several stringent
281
 
statistical tests (including the
282
 
<A HREF="http://stat.fsu.edu/~geo/diehard.html">http://stat.fsu.edu/~geo/diehard.html</A> tests), and has speed
283
 
comparable to other modern generators.
284
 
</P><P>
285
 
 
286
 
<HR SIZE="6">
287
 
<A NAME="SEC147"></A>
288
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
289
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC146"> &lt; </A>]</TD>
290
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC148"> &gt; </A>]</TD>
291
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC148"> &lt;&lt; </A>]</TD>
292
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC142"> Up </A>]</TD>
293
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
294
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
295
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
296
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
297
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
298
 
</TR></TABLE>
299
 
<H2> 9.5 Template parameters </H2>
300
 
<!--docid::SEC147::-->
301
 
<P>
302
 
 
303
 
RNGs take three template parameters, all of which have default values.
304
 
Using the <CODE>Uniform</CODE> RNG as an example, the template parameters of
305
 
<CODE>Uniform&#60;T, IRNG, stateTag&#62;</CODE> are:
306
 
</P><P>
307
 
 
308
 
<DL COMPACT>
309
 
<DT><CODE>T</CODE>
310
 
<DD>is the type of random number to generate (one of <CODE>float</CODE>,
311
 
<CODE>double</CODE>, or <CODE>long double</CODE> for continuous distributions; an
312
 
integer type for discrete distributions).  Note that generating double and
313
 
long double RNGs takes longer, because filling the entire mantissa with
314
 
random bits requires several random integers.  The default parameter for
315
 
most generators is <CODE>float</CODE>.
316
 
<P>
317
 
 
318
 
<DT><CODE>IRNG</CODE>
319
 
<DD>is the underlying Integer RNG to use.  The default is MersenneTwister.
320
 
<P>
321
 
 
322
 
<DT><CODE>stateTag</CODE>
323
 
<DD><A NAME="IDX348"></A>
324
 
is either <CODE>sharedState</CODE> or <CODE>independentState</CODE>.  If
325
 
<CODE>sharedState</CODE>, the IRNG is shared with other generators.  If
326
 
<CODE>independentState</CODE>, the RNG contains its own IRNG.  The default is
327
 
sharedState.  
328
 
</DL>
329
 
<P>
330
 
 
331
 
<HR SIZE="6">
332
 
<A NAME="SEC148"></A>
333
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
334
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC147"> &lt; </A>]</TD>
335
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC149"> &gt; </A>]</TD>
336
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC149"> &lt;&lt; </A>]</TD>
337
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC142"> Up </A>]</TD>
338
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
339
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
340
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
341
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
342
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
343
 
</TR></TABLE>
344
 
<H2> 9.6 Member functions </H2>
345
 
<!--docid::SEC148::-->
346
 
<P>
347
 
 
348
 
<A NAME="IDX349"></A>
349
 
</P><P>
350
 
 
351
 
RNGs have these methods:
352
 
</P><P>
353
 
 
354
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>T random();
355
 
</pre></td></tr></table><A NAME="IDX350"></A>
356
 
Returns a random number.
357
 
</P><P>
358
 
 
359
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>void seed(unsigned int);
360
 
</pre></td></tr></table><A NAME="IDX351"></A>
361
 
Seeds the underlying IRNG.  See above for an example of seeding
362
 
with the system timer.
363
 
</P><P>
364
 
 
365
 
<HR SIZE="6">
366
 
<A NAME="SEC149"></A>
367
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
368
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC148"> &lt; </A>]</TD>
369
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC150"> &gt; </A>]</TD>
370
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
371
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC142"> Up </A>]</TD>
372
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
373
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
374
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
375
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
376
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
377
 
</TR></TABLE>
378
 
<H2> 9.7 Detailed listing of RNGs </H2>
379
 
<!--docid::SEC149::-->
380
 
<P>
381
 
 
382
 
To save space in the below list, template parameters have been omitted and
383
 
only constructors are listed.  The notation [a,b] means an interval which
384
 
includes the endpoints a and b; (a,b) is an interval which does not include
385
 
the endpoints.
386
 
</P><P>
387
 
 
388
 
<HR SIZE="6">
389
 
<A NAME="SEC150"></A>
390
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
391
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC149"> &lt; </A>]</TD>
392
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC151"> &gt; </A>]</TD>
393
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
394
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC149"> Up </A>]</TD>
395
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
396
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
397
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
398
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
399
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
400
 
</TR></TABLE>
401
 
<H3> 9.7.1 <TT>`random/uniform.h'</TT> </H3>
402
 
<!--docid::SEC150::-->
403
 
<P>
404
 
 
405
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>Uniform&#60;&#62;()
406
 
</pre></td></tr></table><A NAME="IDX352"></A>
407
 
Continuous uniform distribution on [0,1). 
408
 
</P><P>
409
 
 
410
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>UniformClosedOpen&#60;&#62;()
411
 
</pre></td></tr></table><A NAME="IDX353"></A>
412
 
Continuous uniform distribution on [0,1).  Same as <CODE>Uniform&#60;&#62;</CODE>.
413
 
</P><P>
414
 
 
415
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>UniformClosed&#60;&#62;()
416
 
</pre></td></tr></table><A NAME="IDX354"></A>
417
 
Continuous uniform distribution on [0,1].
418
 
</P><P>
419
 
 
420
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>UniformOpen&#60;&#62;()
421
 
</pre></td></tr></table><A NAME="IDX355"></A>
422
 
Continuous uniform distribution on (0,1).
423
 
</P><P>
424
 
 
425
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>UniformOpenClosed&#60;&#62;()
426
 
</pre></td></tr></table><A NAME="IDX356"></A>
427
 
Continuous uniform distribution on (0,1].
428
 
</P><P>
429
 
 
430
 
<HR SIZE="6">
431
 
<A NAME="SEC151"></A>
432
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
433
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC150"> &lt; </A>]</TD>
434
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC152"> &gt; </A>]</TD>
435
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC152"> &lt;&lt; </A>]</TD>
436
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC149"> Up </A>]</TD>
437
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
438
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
439
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
440
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
441
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
442
 
</TR></TABLE>
443
 
<H3> 9.7.2 <TT>`random/normal.h'</TT> </H3>
444
 
<!--docid::SEC151::-->
445
 
<P>
446
 
 
447
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>NormalUnit&#60;&#62;()
448
 
</pre></td></tr></table><A NAME="IDX357"></A>
449
 
Continuous normal distribution with mean 0 and variance 1.
450
 
</P><P>
451
 
 
452
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>Normal&#60;&#62;(T mean, T standardDeviation)
453
 
</pre></td></tr></table><A NAME="IDX358"></A>
454
 
Continuous normal distribution with specified mean and standard 
455
 
deviation.  
456
 
</P><P>
457
 
 
458
 
<HR SIZE="6">
459
 
<A NAME="SEC152"></A>
460
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
461
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC151"> &lt; </A>]</TD>
462
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC153"> &gt; </A>]</TD>
463
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC153"> &lt;&lt; </A>]</TD>
464
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC149"> Up </A>]</TD>
465
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
466
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
467
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
468
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
469
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
470
 
</TR></TABLE>
471
 
<H3> 9.7.3 <TT>`random/exponential.h'</TT> </H3>
472
 
<!--docid::SEC152::-->
473
 
<P>
474
 
 
475
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>ExponentialUnit&#60;&#62;()
476
 
</pre></td></tr></table><A NAME="IDX359"></A>
477
 
Continuous exponential distribution with mean 1.
478
 
</P><P>
479
 
 
480
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>Exponential&#60;&#62;(T mean)
481
 
</pre></td></tr></table><A NAME="IDX360"></A>
482
 
Continuous exponential distribution with specified mean.
483
 
</P><P>
484
 
 
485
 
<HR SIZE="6">
486
 
<A NAME="SEC153"></A>
487
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
488
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC152"> &lt; </A>]</TD>
489
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC154"> &gt; </A>]</TD>
490
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC154"> &lt;&lt; </A>]</TD>
491
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC149"> Up </A>]</TD>
492
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
493
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
494
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
495
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
496
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
497
 
</TR></TABLE>
498
 
<H3> 9.7.4 <TT>`random/beta.h'</TT> </H3>
499
 
<!--docid::SEC153::-->
500
 
<P>
501
 
 
502
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>Beta&#60;&#62;(T a, T b)
503
 
</pre></td></tr></table><A NAME="IDX361"></A>
504
 
Beta distribution with parameters a and b.  The mean of the distribution is
505
 
<EM>a/(a+b)</EM> and its variance is <EM>ab/((a+b)^2(a+b+1))</EM>.  Use the
506
 
method <CODE>setParameters(T a, T b)</CODE> to change the parameters.
507
 
</P><P>
508
 
 
509
 
<HR SIZE="6">
510
 
<A NAME="SEC154"></A>
511
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
512
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC153"> &lt; </A>]</TD>
513
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC155"> &gt; </A>]</TD>
514
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC155"> &lt;&lt; </A>]</TD>
515
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC149"> Up </A>]</TD>
516
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
517
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
518
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
519
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
520
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
521
 
</TR></TABLE>
522
 
<H3> 9.7.5 <TT>`random/chisquare.h'</TT> </H3>
523
 
<!--docid::SEC154::-->
524
 
<P>
525
 
 
526
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>ChiSquare&#60;&#62;(T df)
527
 
</pre></td></tr></table><A NAME="IDX362"></A>
528
 
<EM>\chi^2</EM> distribution with <CODE>df</CODE> degrees of freedom.  The parameter
529
 
df must be positive.  Use the method <CODE>setDF(T df)</CODE> to change the
530
 
degrees of freedom.
531
 
</P><P>
532
 
 
533
 
<HR SIZE="6">
534
 
<A NAME="SEC155"></A>
535
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
536
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC154"> &lt; </A>]</TD>
537
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC156"> &gt; </A>]</TD>
538
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC156"> &lt;&lt; </A>]</TD>
539
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC149"> Up </A>]</TD>
540
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
541
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
542
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
543
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
544
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
545
 
</TR></TABLE>
546
 
<H3> 9.7.6 <TT>`random/gamma.h'</TT> </H3>
547
 
<!--docid::SEC155::-->
548
 
<P>
549
 
 
550
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>Gamma&#60;&#62;(T mean)
551
 
</pre></td></tr></table><A NAME="IDX363"></A>
552
 
Gamma distribution with specified mean.  The mean must
553
 
be positive.  Use the method <CODE>setMean(T mean)</CODE> to
554
 
change the mean.
555
 
</P><P>
556
 
 
557
 
<HR SIZE="6">
558
 
<A NAME="SEC156"></A>
559
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
560
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC155"> &lt; </A>]</TD>
561
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC157"> &gt; </A>]</TD>
562
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC157"> &lt;&lt; </A>]</TD>
563
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC149"> Up </A>]</TD>
564
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
565
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
566
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
567
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
568
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
569
 
</TR></TABLE>
570
 
<H3> 9.7.7 <TT>`random/F.h'</TT> </H3>
571
 
<!--docid::SEC156::-->
572
 
<P>
573
 
 
574
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>F&#60;&#62;(T numeratorDF, T denominatorDF)
575
 
</pre></td></tr></table><A NAME="IDX364"></A>
576
 
F distribution with numerator and denominator degrees
577
 
of freedom specified.  Both these parameters must be
578
 
positive.  Use <CODE>setDF(T dfn, T dfd)</CODE> to change the
579
 
degrees of freedom. 
580
 
</P><P>
581
 
 
582
 
<HR SIZE="6">
583
 
<A NAME="SEC157"></A>
584
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
585
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC156"> &lt; </A>]</TD>
586
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt; </A>]</TD>
587
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
588
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_9.html#SEC149"> Up </A>]</TD>
589
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
590
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
591
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
592
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
593
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
594
 
</TR></TABLE>
595
 
<H3> 9.7.8 <TT>`random/discrete-uniform.h'</TT> </H3>
596
 
<!--docid::SEC157::-->
597
 
<P>
598
 
 
599
 
<TABLE><tr><td>&nbsp;</td><td class=example><pre>DiscreteUniform&#60;&#62;(T n)
600
 
</pre></td></tr></table><A NAME="IDX365"></A>
601
 
Discrete uniform distribution over <EM>0, 1, \ldots, n-1</EM>.
602
 
</P><P>
603
 
 
604
 
<A NAME="Numeric properties"></A>
605
 
<HR SIZE="6">
606
 
<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
607
 
<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
608
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_10.html#SEC158"> &gt;&gt; </A>]</TD>
609
 
<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD>
610
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD>
611
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
612
 
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD>
613
 
</TR></TABLE>
614
 
<BR>  
615
 
<FONT SIZE="-1">
616
 
This document was generated
617
 
by <I>Julian Cummings</I> on <I>October, 14  2005</I>
618
 
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
619
 
"><I>texi2html</I></A>
620
 
 
621
 
</BODY>
622
 
</HTML>