1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
  
     | 
    
      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 The GSL Team.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Free Software
Needs Free Documentation", the Front-Cover text being "A GNU Manual",
and with the Back-Cover Text being (a) (see below). A copy of the
license is included in the section entitled "GNU Free Documentation
License".
(a) The Back-Cover Text is: "You have the freedom to copy and modify this
GNU Manual." -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Scientific Library – Reference Manual: Random number generator initialization</title>
<meta name="description" content="GNU Scientific Library – Reference Manual: Random number generator initialization">
<meta name="keywords" content="GNU Scientific Library – Reference Manual: Random number generator initialization">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Function-Index.html#Function-Index" rel="index" title="Function Index">
<link href="Random-Number-Generation.html#Random-Number-Generation" rel="up" title="Random Number Generation">
<link href="Sampling-from-a-random-number-generator.html#Sampling-from-a-random-number-generator" rel="next" title="Sampling from a random number generator">
<link href="The-Random-Number-Generator-Interface.html#The-Random-Number-Generator-Interface" rel="previous" title="The Random Number Generator Interface">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Random-number-generator-initialization"></a>
<div class="header">
<p>
Next: <a href="Sampling-from-a-random-number-generator.html#Sampling-from-a-random-number-generator" accesskey="n" rel="next">Sampling from a random number generator</a>, Previous: <a href="The-Random-Number-Generator-Interface.html#The-Random-Number-Generator-Interface" accesskey="p" rel="previous">The Random Number Generator Interface</a>, Up: <a href="Random-Number-Generation.html#Random-Number-Generation" accesskey="u" rel="up">Random Number Generation</a>   [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Random-number-generator-initialization-1"></a>
<h3 class="section">18.3 Random number generator initialization</h3>
<dl>
<dt><a name="index-gsl_005frng_005falloc"></a>Function: <em>gsl_rng *</em> <strong>gsl_rng_alloc</strong> <em>(const gsl_rng_type * <var>T</var>)</em></dt>
<dd><a name="index-gsl_005frng"></a>
<p>This function returns a pointer to a newly-created
instance of a random number generator of type <var>T</var>.
For example, the following code creates an instance of the Tausworthe
generator,
</p>
<div class="example">
<pre class="example">gsl_rng * r = gsl_rng_alloc (gsl_rng_taus);
</pre></div>
<p>If there is insufficient memory to create the generator then the
function returns a null pointer and the error handler is invoked with an
error code of <code>GSL_ENOMEM</code>.
</p>
<a name="index-gsl_005frng_005fdefault_005fseed"></a>
<a name="index-GSL_005fRNG_005fSEED-1"></a>
<a name="index-GSL_005fRNG_005fSEED"></a>
<p>The generator is automatically initialized with the default seed,
<code>gsl_rng_default_seed</code>.  This is zero by default but can be changed
either directly or by using the environment variable <code>GSL_RNG_SEED</code>
(see <a href="Random-number-environment-variables.html#Random-number-environment-variables">Random number environment variables</a>).
</p>
<p>The details of the available generator types are
described later in this chapter.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005frng_005fset"></a>Function: <em>void</em> <strong>gsl_rng_set</strong> <em>(const gsl_rng * <var>r</var>, unsigned long int <var>s</var>)</em></dt>
<dd><p>This function initializes (or ‘seeds’) the random number generator.  If
the generator is seeded with the same value of <var>s</var> on two different
runs, the same stream of random numbers will be generated by successive
calls to the routines below.  If different values of <em><var>s</var> >= 1</em> are supplied, then the generated streams of random
numbers should be completely different.  If the seed <var>s</var> is zero
then the standard seed from the original implementation is used
instead.  For example, the original Fortran source code for the
<code>ranlux</code> generator used a seed of 314159265, and so choosing
<var>s</var> equal to zero reproduces this when using
<code>gsl_rng_ranlux</code>.  
</p>
<p>When using multiple seeds with the same generator, choose seed values
greater than zero to avoid collisions with the default setting.  
</p>
<p>Note that the most generators only accept 32-bit seeds, with higher
values being reduced modulo <em>2^32</em>.  For generators
with smaller ranges the maximum seed value will typically be lower.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005frng_005ffree"></a>Function: <em>void</em> <strong>gsl_rng_free</strong> <em>(gsl_rng * <var>r</var>)</em></dt>
<dd><p>This function frees all the memory associated with the generator
<var>r</var>.
</p></dd></dl>
<hr>
<div class="header">
<p>
Next: <a href="Sampling-from-a-random-number-generator.html#Sampling-from-a-random-number-generator" accesskey="n" rel="next">Sampling from a random number generator</a>, Previous: <a href="The-Random-Number-Generator-Interface.html#The-Random-Number-Generator-Interface" accesskey="p" rel="previous">The Random Number Generator Interface</a>, Up: <a href="Random-Number-Generation.html#Random-Number-Generation" accesskey="u" rel="up">Random Number Generation</a>   [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
 
     |