Initial commit
[platform/upstream/glib2.0.git] / docs / reference / glib / html / glib-Random-Numbers.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>Random Numbers</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
7 <link rel="home" href="index.html" title="GLib Reference Manual">
8 <link rel="up" href="glib-utilities.html" title="GLib Utilities">
9 <link rel="prev" href="glib-Date-and-Time-Functions.html" title="Date and Time Functions">
10 <link rel="next" href="glib-Hook-Functions.html" title="Hook Functions">
11 <meta name="generator" content="GTK-Doc V1.13 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 <link rel="chapter" href="glib.html" title="GLib Overview">
14 <link rel="chapter" href="glib-fundamentals.html" title="GLib Fundamentals">
15 <link rel="chapter" href="glib-core.html" title="GLib Core Application Support">
16 <link rel="chapter" href="glib-utilities.html" title="GLib Utilities">
17 <link rel="chapter" href="glib-data-types.html" title="GLib Data Types">
18 <link rel="chapter" href="tools.html" title="GLib Tools">
19 <link rel="index" href="api-index-full.html" title="Index">
20 <link rel="index" href="api-index-deprecated.html" title="Index of deprecated symbols">
21 <link rel="index" href="api-index-2-2.html" title="Index of new symbols in 2.2">
22 <link rel="index" href="api-index-2-4.html" title="Index of new symbols in 2.4">
23 <link rel="index" href="api-index-2-6.html" title="Index of new symbols in 2.6">
24 <link rel="index" href="api-index-2-8.html" title="Index of new symbols in 2.8">
25 <link rel="index" href="api-index-2-10.html" title="Index of new symbols in 2.10">
26 <link rel="index" href="api-index-2-12.html" title="Index of new symbols in 2.12">
27 <link rel="index" href="api-index-2-14.html" title="Index of new symbols in 2.14">
28 <link rel="index" href="api-index-2-16.html" title="Index of new symbols in 2.16">
29 <link rel="index" href="api-index-2-18.html" title="Index of new symbols in 2.18">
30 <link rel="index" href="api-index-2-20.html" title="Index of new symbols in 2.20">
31 <link rel="index" href="api-index-2-22.html" title="Index of new symbols in 2.22">
32 <link rel="index" href="api-index-2-24.html" title="Index of new symbols in 2.24">
33 </head>
34 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
35 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
36 <tr valign="middle">
37 <td><a accesskey="p" href="glib-Date-and-Time-Functions.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
38 <td><a accesskey="u" href="glib-utilities.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
39 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
40 <th width="100%" align="center">GLib Reference Manual</th>
41 <td><a accesskey="n" href="glib-Hook-Functions.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
42 </tr>
43 <tr><td colspan="5" class="shortcuts">
44 <a href="#glib-Random-Numbers.synopsis" class="shortcut">Top</a>
45                    | 
46                   <a href="#glib-Random-Numbers.description" class="shortcut">Description</a>
47 </td></tr>
48 </table>
49 <div class="refentry" title="Random Numbers">
50 <a name="glib-Random-Numbers"></a><div class="titlepage"></div>
51 <div class="refnamediv"><table width="100%"><tr>
52 <td valign="top">
53 <h2><span class="refentrytitle"><a name="glib-Random-Numbers.top_of_page"></a>Random Numbers</span></h2>
54 <p>Random Numbers — pseudo-random number generator</p>
55 </td>
56 <td valign="top" align="right"></td>
57 </tr></table></div>
58 <div class="refsynopsisdiv" title="Synopsis">
59 <a name="glib-Random-Numbers.synopsis"></a><h2>Synopsis</h2>
60 <pre class="synopsis">
61 #include &lt;glib.h&gt;
62
63                     <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand">GRand</a>;
64 <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a>*              <a class="link" href="glib-Random-Numbers.html#g-rand-new-with-seed" title="g_rand_new_with_seed ()">g_rand_new_with_seed</a>                (<a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a> seed);
65 <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a>*              <a class="link" href="glib-Random-Numbers.html#g-rand-new-with-seed-array" title="g_rand_new_with_seed_array ()">g_rand_new_with_seed_array</a>          (const <a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a> *seed,
66                                                          <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> seed_length);
67 <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a>*              <a class="link" href="glib-Random-Numbers.html#g-rand-new" title="g_rand_new ()">g_rand_new</a>                          (void);
68 <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a>*              <a class="link" href="glib-Random-Numbers.html#g-rand-copy" title="g_rand_copy ()">g_rand_copy</a>                         (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_);
69 <span class="returnvalue">void</span>                <a class="link" href="glib-Random-Numbers.html#g-rand-free" title="g_rand_free ()">g_rand_free</a>                         (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_);
70 <span class="returnvalue">void</span>                <a class="link" href="glib-Random-Numbers.html#g-rand-set-seed" title="g_rand_set_seed ()">g_rand_set_seed</a>                     (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_,
71                                                          <a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a> seed);
72 <span class="returnvalue">void</span>                <a class="link" href="glib-Random-Numbers.html#g-rand-set-seed-array" title="g_rand_set_seed_array ()">g_rand_set_seed_array</a>               (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_,
73                                                          const <a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a> *seed,
74                                                          <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> seed_length);
75 #define             <a class="link" href="glib-Random-Numbers.html#g-rand-boolean" title="g_rand_boolean()">g_rand_boolean</a>                      (rand_)
76 <a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="glib-Random-Numbers.html#g-rand-int" title="g_rand_int ()">g_rand_int</a>                          (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_);
77 <a class="link" href="glib-Basic-Types.html#gint32" title="gint32"><span class="returnvalue">gint32</span></a>              <a class="link" href="glib-Random-Numbers.html#g-rand-int-range" title="g_rand_int_range ()">g_rand_int_range</a>                    (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_,
78                                                          <a class="link" href="glib-Basic-Types.html#gint32" title="gint32"><span class="returnvalue">gint32</span></a> begin,
79                                                          <a class="link" href="glib-Basic-Types.html#gint32" title="gint32"><span class="returnvalue">gint32</span></a> end);
80 <a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a>             <a class="link" href="glib-Random-Numbers.html#g-rand-double" title="g_rand_double ()">g_rand_double</a>                       (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_);
81 <a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a>             <a class="link" href="glib-Random-Numbers.html#g-rand-double-range" title="g_rand_double_range ()">g_rand_double_range</a>                 (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_,
82                                                          <a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a> begin,
83                                                          <a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a> end);
84 <span class="returnvalue">void</span>                <a class="link" href="glib-Random-Numbers.html#g-random-set-seed" title="g_random_set_seed ()">g_random_set_seed</a>                   (<a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a> seed);
85 #define             <a class="link" href="glib-Random-Numbers.html#g-random-boolean" title="g_random_boolean()">g_random_boolean</a>                    ()
86 <a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="glib-Random-Numbers.html#g-random-int" title="g_random_int ()">g_random_int</a>                        (void);
87 <a class="link" href="glib-Basic-Types.html#gint32" title="gint32"><span class="returnvalue">gint32</span></a>              <a class="link" href="glib-Random-Numbers.html#g-random-int-range" title="g_random_int_range ()">g_random_int_range</a>                  (<a class="link" href="glib-Basic-Types.html#gint32" title="gint32"><span class="returnvalue">gint32</span></a> begin,
88                                                          <a class="link" href="glib-Basic-Types.html#gint32" title="gint32"><span class="returnvalue">gint32</span></a> end);
89 <a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a>             <a class="link" href="glib-Random-Numbers.html#g-random-double" title="g_random_double ()">g_random_double</a>                     (void);
90 <a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a>             <a class="link" href="glib-Random-Numbers.html#g-random-double-range" title="g_random_double_range ()">g_random_double_range</a>               (<a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a> begin,
91                                                          <a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a> end);
92 </pre>
93 </div>
94 <div class="refsect1" title="Description">
95 <a name="glib-Random-Numbers.description"></a><h2>Description</h2>
96 <p>
97 The following functions allow you to use a portable, fast and good
98 pseudo-random number generator (PRNG). It uses the Mersenne Twister
99 PRNG, which was originally developed by Makoto Matsumoto and Takuji
100 Nishimura. Further information can be found at
101 <a class="ulink" href="http://www.math.keio.ac.jp/~matumoto/emt.html" target="_top">
102 www.math.keio.ac.jp/~matumoto/emt.html</a>.
103 </p>
104 <p>
105 If you just need a random number, you simply call the
106 <code class="function">g_random_*</code> functions, which will create a
107 globally used <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a> and use the according
108 <code class="function">g_rand_*</code> functions internally. Whenever you
109 need a stream of reproducible random numbers, you better create a
110 <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a> yourself and use the <code class="function">g_rand_*</code> functions
111 directly, which will also be slightly faster. Initializing a <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a>
112 with a certain seed will produce exactly the same series of random
113 numbers on all platforms. This can thus be used as a seed for e.g.
114 games.
115 </p>
116 <p>
117 The <code class="function">g_rand*_range</code> functions will return high
118 quality equally distributed random numbers, whereas for example the
119 <code class="literal">(<a class="link" href="glib-Random-Numbers.html#g-random-int" title="g_random_int ()"><code class="function">g_random_int()</code></a>%max)</code> approach often
120 doesn't yield equally distributed numbers.
121 </p>
122 <p>
123 GLib changed the seeding algorithm for the pseudo-random number
124 generator Mersenne Twister, as used by
125 <span class="structname">GRand</span> and <span class="structname">GRandom</span>.
126 This was necessary, because some seeds would yield very bad
127 pseudo-random streams.  Also the pseudo-random integers generated by
128 <code class="function">g_rand*_int_range()</code> will have a slightly better
129 equal distribution with the new version of GLib.
130 </p>
131 <p>
132 The original seeding and generation algorithms, as found in GLib
133 2.0.x, can be used instead of the new ones by setting the
134 environment variable <code class="envar">G_RANDOM_VERSION</code> to the value of
135 '2.0'. Use the GLib-2.0 algorithms only if you have sequences of
136 numbers generated with Glib-2.0 that you need to reproduce exactly.</p>
137 </div>
138 <div class="refsect1" title="Details">
139 <a name="glib-Random-Numbers.details"></a><h2>Details</h2>
140 <div class="refsect2" title="GRand">
141 <a name="GRand"></a><h3>GRand</h3>
142 <pre class="programlisting">typedef struct _GRand GRand;</pre>
143 <p>
144 The <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a> struct is an opaque data structure. It should only be
145 accessed through the <code class="function">g_rand_*</code> functions.</p>
146 </div>
147 <hr>
148 <div class="refsect2" title="g_rand_new_with_seed ()">
149 <a name="g-rand-new-with-seed"></a><h3>g_rand_new_with_seed ()</h3>
150 <pre class="programlisting"><a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a>*              g_rand_new_with_seed                (<a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a> seed);</pre>
151 <p>
152 Creates a new random number generator initialized with <em class="parameter"><code>seed</code></em>.</p>
153 <div class="variablelist"><table border="0">
154 <col align="left" valign="top">
155 <tbody>
156 <tr>
157 <td><p><span class="term"><em class="parameter"><code>seed</code></em> :</span></p></td>
158 <td> a value to initialize the random number generator.
159 </td>
160 </tr>
161 <tr>
162 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
163 <td> the new <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a>.
164 </td>
165 </tr>
166 </tbody>
167 </table></div>
168 </div>
169 <hr>
170 <div class="refsect2" title="g_rand_new_with_seed_array ()">
171 <a name="g-rand-new-with-seed-array"></a><h3>g_rand_new_with_seed_array ()</h3>
172 <pre class="programlisting"><a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a>*              g_rand_new_with_seed_array          (const <a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a> *seed,
173                                                          <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> seed_length);</pre>
174 <p>
175 Creates a new random number generator initialized with <em class="parameter"><code>seed</code></em>.</p>
176 <div class="variablelist"><table border="0">
177 <col align="left" valign="top">
178 <tbody>
179 <tr>
180 <td><p><span class="term"><em class="parameter"><code>seed</code></em> :</span></p></td>
181 <td> an array of seeds to initialize the random number generator.
182 </td>
183 </tr>
184 <tr>
185 <td><p><span class="term"><em class="parameter"><code>seed_length</code></em> :</span></p></td>
186 <td> an array of seeds to initialize the random number generator.
187 </td>
188 </tr>
189 <tr>
190 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
191 <td> the new <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a>.
192
193 </td>
194 </tr>
195 </tbody>
196 </table></div>
197 <p class="since">Since 2.4</p>
198 </div>
199 <hr>
200 <div class="refsect2" title="g_rand_new ()">
201 <a name="g-rand-new"></a><h3>g_rand_new ()</h3>
202 <pre class="programlisting"><a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a>*              g_rand_new                          (void);</pre>
203 <p>
204 Creates a new random number generator initialized with a seed taken
205 either from <code class="filename">/dev/urandom</code> (if existing) or from 
206 the current time (as a fallback).</p>
207 <div class="variablelist"><table border="0">
208 <col align="left" valign="top">
209 <tbody><tr>
210 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
211 <td> the new <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a>.
212 </td>
213 </tr></tbody>
214 </table></div>
215 </div>
216 <hr>
217 <div class="refsect2" title="g_rand_copy ()">
218 <a name="g-rand-copy"></a><h3>g_rand_copy ()</h3>
219 <pre class="programlisting"><a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a>*              g_rand_copy                         (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_);</pre>
220 <p>
221 Copies a <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a> into a new one with the same exact state as before.
222 This way you can take a snapshot of the random number generator for
223 replaying later.</p>
224 <div class="variablelist"><table border="0">
225 <col align="left" valign="top">
226 <tbody>
227 <tr>
228 <td><p><span class="term"><em class="parameter"><code>rand_</code></em> :</span></p></td>
229 <td> a <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a>.
230 </td>
231 </tr>
232 <tr>
233 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
234 <td> the new <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a>.
235
236 </td>
237 </tr>
238 </tbody>
239 </table></div>
240 <p class="since">Since 2.4</p>
241 </div>
242 <hr>
243 <div class="refsect2" title="g_rand_free ()">
244 <a name="g-rand-free"></a><h3>g_rand_free ()</h3>
245 <pre class="programlisting"><span class="returnvalue">void</span>                g_rand_free                         (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_);</pre>
246 <p>
247 Frees the memory allocated for the <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a>.</p>
248 <div class="variablelist"><table border="0">
249 <col align="left" valign="top">
250 <tbody><tr>
251 <td><p><span class="term"><em class="parameter"><code>rand_</code></em> :</span></p></td>
252 <td> a <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a>.
253 </td>
254 </tr></tbody>
255 </table></div>
256 </div>
257 <hr>
258 <div class="refsect2" title="g_rand_set_seed ()">
259 <a name="g-rand-set-seed"></a><h3>g_rand_set_seed ()</h3>
260 <pre class="programlisting"><span class="returnvalue">void</span>                g_rand_set_seed                     (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_,
261                                                          <a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a> seed);</pre>
262 <p>
263 Sets the seed for the random number generator <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a> to <em class="parameter"><code>seed</code></em>.</p>
264 <div class="variablelist"><table border="0">
265 <col align="left" valign="top">
266 <tbody>
267 <tr>
268 <td><p><span class="term"><em class="parameter"><code>rand_</code></em> :</span></p></td>
269 <td> a <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a>.
270 </td>
271 </tr>
272 <tr>
273 <td><p><span class="term"><em class="parameter"><code>seed</code></em> :</span></p></td>
274 <td> a value to reinitialize the random number generator.
275 </td>
276 </tr>
277 </tbody>
278 </table></div>
279 </div>
280 <hr>
281 <div class="refsect2" title="g_rand_set_seed_array ()">
282 <a name="g-rand-set-seed-array"></a><h3>g_rand_set_seed_array ()</h3>
283 <pre class="programlisting"><span class="returnvalue">void</span>                g_rand_set_seed_array               (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_,
284                                                          const <a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a> *seed,
285                                                          <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> seed_length);</pre>
286 <p>
287 Initializes the random number generator by an array of
288 longs.  Array can be of arbitrary size, though only the
289 first 624 values are taken.  This function is useful
290 if you have many low entropy seeds, or if you require more then
291 32bits of actual entropy for your application.</p>
292 <div class="variablelist"><table border="0">
293 <col align="left" valign="top">
294 <tbody>
295 <tr>
296 <td><p><span class="term"><em class="parameter"><code>rand_</code></em> :</span></p></td>
297 <td> a <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a>.
298 </td>
299 </tr>
300 <tr>
301 <td><p><span class="term"><em class="parameter"><code>seed</code></em> :</span></p></td>
302 <td> array to initialize with
303 </td>
304 </tr>
305 <tr>
306 <td><p><span class="term"><em class="parameter"><code>seed_length</code></em> :</span></p></td>
307 <td> length of array
308 </td>
309 </tr>
310 </tbody>
311 </table></div>
312 <p class="since">Since 2.4</p>
313 </div>
314 <hr>
315 <div class="refsect2" title="g_rand_boolean()">
316 <a name="g-rand-boolean"></a><h3>g_rand_boolean()</h3>
317 <pre class="programlisting">#define             g_rand_boolean(rand_)</pre>
318 <p>
319 Returns a random <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> from <em class="parameter"><code>rand_</code></em>. This corresponds to a
320 unbiased coin toss.</p>
321 <div class="variablelist"><table border="0">
322 <col align="left" valign="top">
323 <tbody>
324 <tr>
325 <td><p><span class="term"><em class="parameter"><code>rand_</code></em> :</span></p></td>
326 <td> a <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a>.
327 </td>
328 </tr>
329 <tr>
330 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
331 <td> a random <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a>.
332 </td>
333 </tr>
334 </tbody>
335 </table></div>
336 </div>
337 <hr>
338 <div class="refsect2" title="g_rand_int ()">
339 <a name="g-rand-int"></a><h3>g_rand_int ()</h3>
340 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a>             g_rand_int                          (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_);</pre>
341 <p>
342 Returns the next random <a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="type">guint32</span></a> from <em class="parameter"><code>rand_</code></em> equally distributed over
343 the range [0..2^32-1].</p>
344 <div class="variablelist"><table border="0">
345 <col align="left" valign="top">
346 <tbody>
347 <tr>
348 <td><p><span class="term"><em class="parameter"><code>rand_</code></em> :</span></p></td>
349 <td> a <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a>.
350 </td>
351 </tr>
352 <tr>
353 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
354 <td> A random number.
355 </td>
356 </tr>
357 </tbody>
358 </table></div>
359 </div>
360 <hr>
361 <div class="refsect2" title="g_rand_int_range ()">
362 <a name="g-rand-int-range"></a><h3>g_rand_int_range ()</h3>
363 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint32" title="gint32"><span class="returnvalue">gint32</span></a>              g_rand_int_range                    (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_,
364                                                          <a class="link" href="glib-Basic-Types.html#gint32" title="gint32"><span class="returnvalue">gint32</span></a> begin,
365                                                          <a class="link" href="glib-Basic-Types.html#gint32" title="gint32"><span class="returnvalue">gint32</span></a> end);</pre>
366 <p>
367 Returns the next random <a class="link" href="glib-Basic-Types.html#gint32" title="gint32"><span class="type">gint32</span></a> from <em class="parameter"><code>rand_</code></em> equally distributed over
368 the range [<em class="parameter"><code>begin</code></em>..<em class="parameter"><code>end</code></em>-1].</p>
369 <div class="variablelist"><table border="0">
370 <col align="left" valign="top">
371 <tbody>
372 <tr>
373 <td><p><span class="term"><em class="parameter"><code>rand_</code></em> :</span></p></td>
374 <td> a <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a>.
375 </td>
376 </tr>
377 <tr>
378 <td><p><span class="term"><em class="parameter"><code>begin</code></em> :</span></p></td>
379 <td> lower closed bound of the interval.
380 </td>
381 </tr>
382 <tr>
383 <td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
384 <td> upper open bound of the interval.
385 </td>
386 </tr>
387 <tr>
388 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
389 <td> A random number.
390 </td>
391 </tr>
392 </tbody>
393 </table></div>
394 </div>
395 <hr>
396 <div class="refsect2" title="g_rand_double ()">
397 <a name="g-rand-double"></a><h3>g_rand_double ()</h3>
398 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a>             g_rand_double                       (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_);</pre>
399 <p>
400 Returns the next random <a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="type">gdouble</span></a> from <em class="parameter"><code>rand_</code></em> equally distributed over
401 the range [0..1).</p>
402 <div class="variablelist"><table border="0">
403 <col align="left" valign="top">
404 <tbody>
405 <tr>
406 <td><p><span class="term"><em class="parameter"><code>rand_</code></em> :</span></p></td>
407 <td> a <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a>.
408 </td>
409 </tr>
410 <tr>
411 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
412 <td> A random number.
413 </td>
414 </tr>
415 </tbody>
416 </table></div>
417 </div>
418 <hr>
419 <div class="refsect2" title="g_rand_double_range ()">
420 <a name="g-rand-double-range"></a><h3>g_rand_double_range ()</h3>
421 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a>             g_rand_double_range                 (<a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="returnvalue">GRand</span></a> *rand_,
422                                                          <a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a> begin,
423                                                          <a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a> end);</pre>
424 <p>
425 Returns the next random <a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="type">gdouble</span></a> from <em class="parameter"><code>rand_</code></em> equally distributed over
426 the range [<em class="parameter"><code>begin</code></em>..<em class="parameter"><code>end</code></em>).</p>
427 <div class="variablelist"><table border="0">
428 <col align="left" valign="top">
429 <tbody>
430 <tr>
431 <td><p><span class="term"><em class="parameter"><code>rand_</code></em> :</span></p></td>
432 <td> a <a class="link" href="glib-Random-Numbers.html#GRand" title="GRand"><span class="type">GRand</span></a>.
433 </td>
434 </tr>
435 <tr>
436 <td><p><span class="term"><em class="parameter"><code>begin</code></em> :</span></p></td>
437 <td> lower closed bound of the interval.
438 </td>
439 </tr>
440 <tr>
441 <td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
442 <td> upper open bound of the interval.
443 </td>
444 </tr>
445 <tr>
446 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
447 <td> A random number.
448 </td>
449 </tr>
450 </tbody>
451 </table></div>
452 </div>
453 <hr>
454 <div class="refsect2" title="g_random_set_seed ()">
455 <a name="g-random-set-seed"></a><h3>g_random_set_seed ()</h3>
456 <pre class="programlisting"><span class="returnvalue">void</span>                g_random_set_seed                   (<a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a> seed);</pre>
457 <p>
458 Sets the seed for the global random number generator, which is used
459 by the <code class="function">g_random_*</code> functions, to <em class="parameter"><code>seed</code></em>.</p>
460 <div class="variablelist"><table border="0">
461 <col align="left" valign="top">
462 <tbody><tr>
463 <td><p><span class="term"><em class="parameter"><code>seed</code></em> :</span></p></td>
464 <td> a value to reinitialize the global random number generator.
465 </td>
466 </tr></tbody>
467 </table></div>
468 </div>
469 <hr>
470 <div class="refsect2" title="g_random_boolean()">
471 <a name="g-random-boolean"></a><h3>g_random_boolean()</h3>
472 <pre class="programlisting">#define             g_random_boolean()</pre>
473 <p>
474 Returns a random <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a>. This corresponds to a unbiased coin toss.</p>
475 <div class="variablelist"><table border="0">
476 <col align="left" valign="top">
477 <tbody><tr>
478 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
479 <td> a random <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a>.
480 </td>
481 </tr></tbody>
482 </table></div>
483 </div>
484 <hr>
485 <div class="refsect2" title="g_random_int ()">
486 <a name="g-random-int"></a><h3>g_random_int ()</h3>
487 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a>             g_random_int                        (void);</pre>
488 <p>
489 Return a random <a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="type">guint32</span></a> equally distributed over the range
490 [0..2^32-1].</p>
491 <div class="variablelist"><table border="0">
492 <col align="left" valign="top">
493 <tbody><tr>
494 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
495 <td> A random number.
496 </td>
497 </tr></tbody>
498 </table></div>
499 </div>
500 <hr>
501 <div class="refsect2" title="g_random_int_range ()">
502 <a name="g-random-int-range"></a><h3>g_random_int_range ()</h3>
503 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint32" title="gint32"><span class="returnvalue">gint32</span></a>              g_random_int_range                  (<a class="link" href="glib-Basic-Types.html#gint32" title="gint32"><span class="returnvalue">gint32</span></a> begin,
504                                                          <a class="link" href="glib-Basic-Types.html#gint32" title="gint32"><span class="returnvalue">gint32</span></a> end);</pre>
505 <p>
506 Returns a random <a class="link" href="glib-Basic-Types.html#gint32" title="gint32"><span class="type">gint32</span></a> equally distributed over the range
507 [<em class="parameter"><code>begin</code></em>..<em class="parameter"><code>end</code></em>-1].</p>
508 <div class="variablelist"><table border="0">
509 <col align="left" valign="top">
510 <tbody>
511 <tr>
512 <td><p><span class="term"><em class="parameter"><code>begin</code></em> :</span></p></td>
513 <td> lower closed bound of the interval.
514 </td>
515 </tr>
516 <tr>
517 <td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
518 <td> upper open bound of the interval.
519 </td>
520 </tr>
521 <tr>
522 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
523 <td> A random number.
524 </td>
525 </tr>
526 </tbody>
527 </table></div>
528 </div>
529 <hr>
530 <div class="refsect2" title="g_random_double ()">
531 <a name="g-random-double"></a><h3>g_random_double ()</h3>
532 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a>             g_random_double                     (void);</pre>
533 <p>
534 Returns a random <a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="type">gdouble</span></a> equally distributed over the range [0..1).</p>
535 <div class="variablelist"><table border="0">
536 <col align="left" valign="top">
537 <tbody><tr>
538 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
539 <td> A random number.
540 </td>
541 </tr></tbody>
542 </table></div>
543 </div>
544 <hr>
545 <div class="refsect2" title="g_random_double_range ()">
546 <a name="g-random-double-range"></a><h3>g_random_double_range ()</h3>
547 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a>             g_random_double_range               (<a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a> begin,
548                                                          <a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="returnvalue">gdouble</span></a> end);</pre>
549 <p>
550 Returns a random <a class="link" href="glib-Basic-Types.html#gdouble" title="gdouble"><span class="type">gdouble</span></a> equally distributed over the range [<em class="parameter"><code>begin</code></em>..<em class="parameter"><code>end</code></em>).</p>
551 <div class="variablelist"><table border="0">
552 <col align="left" valign="top">
553 <tbody>
554 <tr>
555 <td><p><span class="term"><em class="parameter"><code>begin</code></em> :</span></p></td>
556 <td> lower closed bound of the interval.
557 </td>
558 </tr>
559 <tr>
560 <td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
561 <td> upper open bound of the interval.
562 </td>
563 </tr>
564 <tr>
565 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
566 <td> A random number.
567 </td>
568 </tr>
569 </tbody>
570 </table></div>
571 </div>
572 </div>
573 </div>
574 <div class="footer">
575 <hr>
576           Generated by GTK-Doc V1.13</div>
577 </body>
578 </html>