summaryrefslogtreecommitdiff
path: root/SFMT/html/_s_f_m_t_8c.html
diff options
context:
space:
mode:
Diffstat (limited to 'SFMT/html/_s_f_m_t_8c.html')
-rw-r--r--SFMT/html/_s_f_m_t_8c.html607
1 files changed, 607 insertions, 0 deletions
diff --git a/SFMT/html/_s_f_m_t_8c.html b/SFMT/html/_s_f_m_t_8c.html
new file mode 100644
index 0000000..1e1dd68
--- /dev/null
+++ b/SFMT/html/_s_f_m_t_8c.html
@@ -0,0 +1,607 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>SFMT: SFMT.c File Reference</title>
+
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+
+
+
+</head>
+<body>
+<div id="top"><!-- do not remove this div! -->
+
+
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+
+
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">SFMT
+ &#160;<span id="projectnumber">1.4</span>
+ </div>
+
+ </td>
+
+
+
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<!-- Generated by Doxygen 1.8.0 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Defines</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">SFMT.c File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>SIMD oriented Fast Mersenne Twister(SFMT)
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;string.h&gt;</code><br/>
+<code>#include &lt;assert.h&gt;</code><br/>
+<code>#include &quot;<a class="el" href="_s_f_m_t_8h_source.html">SFMT.h</a>&quot;</code><br/>
+<code>#include &quot;SFMT-params.h&quot;</code><br/>
+<code>#include &quot;SFMT-common.h&quot;</code><br/>
+</div><table class="memberdecls">
+<tr><td colspan="2"><h2><a name="define-members"></a>
+Defines</h2></td></tr>
+<tr class="memitem:a4048bf3892868ded8a28f8cbdd339c09"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#a4048bf3892868ded8a28f8cbdd339c09">UNUSED_VARIABLE</a>(x)&#160;&#160;&#160;(void)(x)</td></tr>
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a6ceeab85133c3fd7ec95aa85523ff544"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#a6ceeab85133c3fd7ec95aa85523ff544">idxof</a> (int i)</td></tr>
+<tr class="memdesc:a6ceeab85133c3fd7ec95aa85523ff544"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function simulate a 64-bit index of LITTLE ENDIAN in BIG ENDIAN machine. <a href="#a6ceeab85133c3fd7ec95aa85523ff544"></a><br/></td></tr>
+<tr class="memitem:a6bc561a0aa50307534d7e6dd93311d4f"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#a6bc561a0aa50307534d7e6dd93311d4f">gen_rand_array</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt, <a class="el" href="_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *array, int size)</td></tr>
+<tr class="memdesc:a6bc561a0aa50307534d7e6dd93311d4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function fills the user-specified array with pseudorandom integers. <a href="#a6bc561a0aa50307534d7e6dd93311d4f"></a><br/></td></tr>
+<tr class="memitem:a4c995d884c911ea326dd7b5dac69df52"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#a4c995d884c911ea326dd7b5dac69df52">func1</a> (uint32_t x)</td></tr>
+<tr class="memdesc:a4c995d884c911ea326dd7b5dac69df52"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function represents a function used in the initialization by init_by_array. <a href="#a4c995d884c911ea326dd7b5dac69df52"></a><br/></td></tr>
+<tr class="memitem:abbf9b5910c59f1aebf5739f26d87f6a3"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#abbf9b5910c59f1aebf5739f26d87f6a3">func2</a> (uint32_t x)</td></tr>
+<tr class="memdesc:abbf9b5910c59f1aebf5739f26d87f6a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function represents a function used in the initialization by init_by_array. <a href="#abbf9b5910c59f1aebf5739f26d87f6a3"></a><br/></td></tr>
+<tr class="memitem:a1fb62e08a8633bd2e7d7f1e4374b6815"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#a1fb62e08a8633bd2e7d7f1e4374b6815">period_certification</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
+<tr class="memdesc:a1fb62e08a8633bd2e7d7f1e4374b6815"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function certificate the period of 2^{MEXP}. <a href="#a1fb62e08a8633bd2e7d7f1e4374b6815"></a><br/></td></tr>
+<tr class="memitem:a6454ae6ac89dbaa2fd5db79be99dd408"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#a6454ae6ac89dbaa2fd5db79be99dd408">sfmt_get_idstring</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
+<tr class="memdesc:a6454ae6ac89dbaa2fd5db79be99dd408"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns the identification string. <a href="#a6454ae6ac89dbaa2fd5db79be99dd408"></a><br/></td></tr>
+<tr class="memitem:a4a0698581c5ce4fdb269f814fd438a5f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#a4a0698581c5ce4fdb269f814fd438a5f">sfmt_get_min_array_size32</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
+<tr class="memdesc:a4a0698581c5ce4fdb269f814fd438a5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns the minimum size of array used for <b>fill_array32()</b> function. <a href="#a4a0698581c5ce4fdb269f814fd438a5f"></a><br/></td></tr>
+<tr class="memitem:a22ebb5ab2cf7e28d2bcf21ffffcc7e39"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#a22ebb5ab2cf7e28d2bcf21ffffcc7e39">sfmt_get_min_array_size64</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
+<tr class="memdesc:a22ebb5ab2cf7e28d2bcf21ffffcc7e39"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns the minimum size of array used for <b>fill_array64()</b> function. <a href="#a22ebb5ab2cf7e28d2bcf21ffffcc7e39"></a><br/></td></tr>
+<tr class="memitem:a2224d63688cbf9b1f50c01d5d9bb7f29"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#a2224d63688cbf9b1f50c01d5d9bb7f29">sfmt_gen_rand_all</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr>
+<tr class="memdesc:a2224d63688cbf9b1f50c01d5d9bb7f29"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function fills the internal state array with pseudorandom integers. <a href="#a2224d63688cbf9b1f50c01d5d9bb7f29"></a><br/></td></tr>
+<tr class="memitem:a04f57c1e9a6b5c0c52ac774a50da6c7e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#a04f57c1e9a6b5c0c52ac774a50da6c7e">sfmt_fill_array32</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt, uint32_t *array, int size)</td></tr>
+<tr class="memdesc:a04f57c1e9a6b5c0c52ac774a50da6c7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function generates pseudorandom 32-bit integers in the specified array[] by one call. <a href="#a04f57c1e9a6b5c0c52ac774a50da6c7e"></a><br/></td></tr>
+<tr class="memitem:ab9d6542bb167426bd35591afd32136af"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#ab9d6542bb167426bd35591afd32136af">sfmt_fill_array64</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt, uint64_t *array, int size)</td></tr>
+<tr class="memdesc:ab9d6542bb167426bd35591afd32136af"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function generates pseudorandom 64-bit integers in the specified array[] by one call. <a href="#ab9d6542bb167426bd35591afd32136af"></a><br/></td></tr>
+<tr class="memitem:a674d820db863265836ef9cb203aa4130"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#a674d820db863265836ef9cb203aa4130">sfmt_init_gen_rand</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt, uint32_t seed)</td></tr>
+<tr class="memdesc:a674d820db863265836ef9cb203aa4130"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes the internal state array with a 32-bit integer seed. <a href="#a674d820db863265836ef9cb203aa4130"></a><br/></td></tr>
+<tr class="memitem:a28f357a6d2a9cd74cec3c9d458e58475"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#a28f357a6d2a9cd74cec3c9d458e58475">sfmt_init_by_array</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt, uint32_t *init_key, int key_length)</td></tr>
+<tr class="memdesc:a28f357a6d2a9cd74cec3c9d458e58475"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes the internal state array, with an array of 32-bit integers used as the seeds. <a href="#a28f357a6d2a9cd74cec3c9d458e58475"></a><br/></td></tr>
+<tr><td colspan="2"><h2><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a37c6c31e28f6abce2614edb5f7124eec"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#a37c6c31e28f6abce2614edb5f7124eec">sse2_param_mask</a></td></tr>
+<tr class="memdesc:a37c6c31e28f6abce2614edb5f7124eec"><td class="mdescLeft">&#160;</td><td class="mdescRight">parameters used by sse2. <a href="#a37c6c31e28f6abce2614edb5f7124eec"></a><br/></td></tr>
+</table>
+<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
+<div class="textblock"><p>SIMD oriented Fast Mersenne Twister(SFMT) </p>
+<dl class="section author"><dt>Author:</dt><dd>Mutsuo Saito (Hiroshima University) </dd>
+<dd>
+Makoto Matsumoto (Hiroshima University)</dd></dl>
+<p>Copyright (C) 2006, 2007 Mutsuo Saito, Makoto Matsumoto and Hiroshima University. Copyright (C) 2012 Mutsuo Saito, Makoto Matsumoto, Hiroshima University and The University of Tokyo. All rights reserved.</p>
+<p>The 3-clause BSD License is applied to this software, see LICENSE.txt </p>
+</div><hr/><h2>Define Documentation</h2>
+<a class="anchor" id="a4048bf3892868ded8a28f8cbdd339c09"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define <a class="el" href="_s_f_m_t_8c.html#a4048bf3892868ded8a28f8cbdd339c09">UNUSED_VARIABLE</a></td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">x</td><td>)</td>
+ <td>&#160;&#160;&#160;(void)(x)</td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Referenced by <a class="el" href="_s_f_m_t_8c.html#a6454ae6ac89dbaa2fd5db79be99dd408">sfmt_get_idstring()</a>, <a class="el" href="_s_f_m_t_8c.html#a4a0698581c5ce4fdb269f814fd438a5f">sfmt_get_min_array_size32()</a>, and <a class="el" href="_s_f_m_t_8c.html#a22ebb5ab2cf7e28d2bcf21ffffcc7e39">sfmt_get_min_array_size64()</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="a4c995d884c911ea326dd7b5dac69df52"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">static uint32_t <a class="el" href="_s_f_m_t_8c.html#a4c995d884c911ea326dd7b5dac69df52">func1</a> </td>
+ <td>(</td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td><code> [inline, static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This function represents a function used in the initialization by init_by_array. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">x</td><td>32-bit integer </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns:</dt><dd>32-bit integer </dd></dl>
+
+<p>Referenced by <a class="el" href="_s_f_m_t_8c.html#a28f357a6d2a9cd74cec3c9d458e58475">sfmt_init_by_array()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="abbf9b5910c59f1aebf5739f26d87f6a3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">static uint32_t <a class="el" href="_s_f_m_t_8c.html#abbf9b5910c59f1aebf5739f26d87f6a3">func2</a> </td>
+ <td>(</td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>x</em></td><td>)</td>
+ <td><code> [inline, static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This function represents a function used in the initialization by init_by_array. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">x</td><td>32-bit integer </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns:</dt><dd>32-bit integer </dd></dl>
+
+<p>Referenced by <a class="el" href="_s_f_m_t_8c.html#a28f357a6d2a9cd74cec3c9d458e58475">sfmt_init_by_array()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6bc561a0aa50307534d7e6dd93311d4f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">static void <a class="el" href="_s_f_m_t_8c.html#a6bc561a0aa50307534d7e6dd93311d4f">gen_rand_array</a> </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
+ <td class="paramname"><em>sfmt</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> *&#160;</td>
+ <td class="paramname"><em>array</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td><code> [inline, static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This function fills the user-specified array with pseudorandom integers. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
+ <tr><td class="paramname">array</td><td>an 128-bit array to be filled by pseudorandom numbers. </td></tr>
+ <tr><td class="paramname">size</td><td>number of 128-bit pseudorandom numbers to be generated. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>References <a class="el" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">SFMT_T::state</a>.</p>
+
+<p>Referenced by <a class="el" href="_s_f_m_t_8c.html#a04f57c1e9a6b5c0c52ac774a50da6c7e">sfmt_fill_array32()</a>, and <a class="el" href="_s_f_m_t_8c.html#ab9d6542bb167426bd35591afd32136af">sfmt_fill_array64()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6ceeab85133c3fd7ec95aa85523ff544"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">static int <a class="el" href="_s_f_m_t_8c.html#a6ceeab85133c3fd7ec95aa85523ff544">idxof</a> </td>
+ <td>(</td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>i</em></td><td>)</td>
+ <td><code> [inline, static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This function simulate a 64-bit index of LITTLE ENDIAN in BIG ENDIAN machine. </p>
+
+<p>Referenced by <a class="el" href="_s_f_m_t_8c.html#a1fb62e08a8633bd2e7d7f1e4374b6815">period_certification()</a>, <a class="el" href="_s_f_m_t_8c.html#a28f357a6d2a9cd74cec3c9d458e58475">sfmt_init_by_array()</a>, and <a class="el" href="_s_f_m_t_8c.html#a674d820db863265836ef9cb203aa4130">sfmt_init_gen_rand()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a1fb62e08a8633bd2e7d7f1e4374b6815"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">static void <a class="el" href="_s_f_m_t_8c.html#a1fb62e08a8633bd2e7d7f1e4374b6815">period_certification</a> </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
+ <td class="paramname"><em>sfmt</em></td><td>)</td>
+ <td><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This function certificate the period of 2^{MEXP}. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>References <a class="el" href="_s_f_m_t_8c.html#a6ceeab85133c3fd7ec95aa85523ff544">idxof()</a>, <a class="el" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">SFMT_T::state</a>, and <a class="el" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">W128_T::u</a>.</p>
+
+<p>Referenced by <a class="el" href="_s_f_m_t_8c.html#a28f357a6d2a9cd74cec3c9d458e58475">sfmt_init_by_array()</a>, and <a class="el" href="_s_f_m_t_8c.html#a674d820db863265836ef9cb203aa4130">sfmt_init_gen_rand()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a04f57c1e9a6b5c0c52ac774a50da6c7e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="_s_f_m_t_8c.html#a04f57c1e9a6b5c0c52ac774a50da6c7e">sfmt_fill_array32</a> </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
+ <td class="paramname"><em>sfmt</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t *&#160;</td>
+ <td class="paramname"><em>array</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This function generates pseudorandom 32-bit integers in the specified array[] by one call. </p>
+<p>The number of pseudorandom integers is specified by the argument size, which must be at least 624 and a multiple of four. The generation by this function is much faster than the following gen_rand function.</p>
+<p>For initialization, init_gen_rand or init_by_array must be called before the first call of this function. This function can not be used after calling gen_rand function, without initialization.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
+ <tr><td class="paramname">array</td><td>an array where pseudorandom 32-bit integers are filled by this function. The pointer to the array must be <b>"aligned"</b> (namely, must be a multiple of 16) in the SIMD version, since it refers to the address of a 128-bit integer. In the standard C version, the pointer is arbitrary.</td></tr>
+ <tr><td class="paramname">size</td><td>the number of 32-bit pseudorandom integers to be generated. size must be a multiple of 4, and greater than or equal to (MEXP / 128 + 1) * 4.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note:</dt><dd><b>memalign</b> or <b>posix_memalign</b> is available to get aligned memory. Mac OSX doesn't have these functions, but <b>malloc</b> of OSX returns the pointer to the aligned memory block. </dd></dl>
+
+<p>References <a class="el" href="_s_f_m_t_8c.html#a6bc561a0aa50307534d7e6dd93311d4f">gen_rand_array()</a>, and <a class="el" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24">SFMT_T::idx</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ab9d6542bb167426bd35591afd32136af"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="_s_f_m_t_8c.html#ab9d6542bb167426bd35591afd32136af">sfmt_fill_array64</a> </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
+ <td class="paramname"><em>sfmt</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t *&#160;</td>
+ <td class="paramname"><em>array</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This function generates pseudorandom 64-bit integers in the specified array[] by one call. </p>
+<p>The number of pseudorandom integers is specified by the argument size, which must be at least 312 and a multiple of two. The generation by this function is much faster than the following gen_rand function.</p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">sfmt</td><td>SFMT internal state For initialization, init_gen_rand or init_by_array must be called before the first call of this function. This function can not be used after calling gen_rand function, without initialization.</td></tr>
+ <tr><td class="paramname">array</td><td>an array where pseudorandom 64-bit integers are filled by this function. The pointer to the array must be "aligned" (namely, must be a multiple of 16) in the SIMD version, since it refers to the address of a 128-bit integer. In the standard C version, the pointer is arbitrary.</td></tr>
+ <tr><td class="paramname">size</td><td>the number of 64-bit pseudorandom integers to be generated. size must be a multiple of 2, and greater than or equal to (MEXP / 128 + 1) * 2</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note:</dt><dd><b>memalign</b> or <b>posix_memalign</b> is available to get aligned memory. Mac OSX doesn't have these functions, but <b>malloc</b> of OSX returns the pointer to the aligned memory block. </dd></dl>
+
+<p>References <a class="el" href="_s_f_m_t_8c.html#a6bc561a0aa50307534d7e6dd93311d4f">gen_rand_array()</a>, and <a class="el" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24">SFMT_T::idx</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a2224d63688cbf9b1f50c01d5d9bb7f29"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="_s_f_m_t_8c.html#a2224d63688cbf9b1f50c01d5d9bb7f29">sfmt_gen_rand_all</a> </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
+ <td class="paramname"><em>sfmt</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This function fills the internal state array with pseudorandom integers. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>References <a class="el" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">SFMT_T::state</a>.</p>
+
+<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110">sfmt_genrand_uint32()</a>, and <a class="el" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717">sfmt_genrand_uint64()</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a6454ae6ac89dbaa2fd5db79be99dd408"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const char* <a class="el" href="_s_f_m_t_8c.html#a6454ae6ac89dbaa2fd5db79be99dd408">sfmt_get_idstring</a> </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
+ <td class="paramname"><em>sfmt</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This function returns the identification string. </p>
+<p>The string shows the word size, the Mersenne exponent, and all parameters of this generator. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>References <a class="el" href="_s_f_m_t_8c.html#a4048bf3892868ded8a28f8cbdd339c09">UNUSED_VARIABLE</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a4a0698581c5ce4fdb269f814fd438a5f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="_s_f_m_t_8c.html#a4a0698581c5ce4fdb269f814fd438a5f">sfmt_get_min_array_size32</a> </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
+ <td class="paramname"><em>sfmt</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This function returns the minimum size of array used for <b>fill_array32()</b> function. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns:</dt><dd>minimum size of array used for fill_array32() function. </dd></dl>
+
+<p>References <a class="el" href="_s_f_m_t_8c.html#a4048bf3892868ded8a28f8cbdd339c09">UNUSED_VARIABLE</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a22ebb5ab2cf7e28d2bcf21ffffcc7e39"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int <a class="el" href="_s_f_m_t_8c.html#a22ebb5ab2cf7e28d2bcf21ffffcc7e39">sfmt_get_min_array_size64</a> </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
+ <td class="paramname"><em>sfmt</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This function returns the minimum size of array used for <b>fill_array64()</b> function. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns:</dt><dd>minimum size of array used for fill_array64() function. </dd></dl>
+
+<p>References <a class="el" href="_s_f_m_t_8c.html#a4048bf3892868ded8a28f8cbdd339c09">UNUSED_VARIABLE</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a28f357a6d2a9cd74cec3c9d458e58475"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="_s_f_m_t_8c.html#a28f357a6d2a9cd74cec3c9d458e58475">sfmt_init_by_array</a> </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
+ <td class="paramname"><em>sfmt</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t *&#160;</td>
+ <td class="paramname"><em>init_key</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>key_length</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This function initializes the internal state array, with an array of 32-bit integers used as the seeds. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
+ <tr><td class="paramname">init_key</td><td>the array of 32-bit integers, used as a seed. </td></tr>
+ <tr><td class="paramname">key_length</td><td>the length of init_key. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>References <a class="el" href="_s_f_m_t_8c.html#a4c995d884c911ea326dd7b5dac69df52">func1()</a>, <a class="el" href="_s_f_m_t_8c.html#abbf9b5910c59f1aebf5739f26d87f6a3">func2()</a>, <a class="el" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24">SFMT_T::idx</a>, <a class="el" href="_s_f_m_t_8c.html#a6ceeab85133c3fd7ec95aa85523ff544">idxof()</a>, <a class="el" href="_s_f_m_t_8c.html#a1fb62e08a8633bd2e7d7f1e4374b6815">period_certification()</a>, <a class="el" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">SFMT_T::state</a>, and <a class="el" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">W128_T::u</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a674d820db863265836ef9cb203aa4130"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="_s_f_m_t_8c.html#a674d820db863265836ef9cb203aa4130">sfmt_init_gen_rand</a> </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *&#160;</td>
+ <td class="paramname"><em>sfmt</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>seed</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>This function initializes the internal state array with a 32-bit integer seed. </p>
+<dl class="params"><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">sfmt</td><td>SFMT internal state </td></tr>
+ <tr><td class="paramname">seed</td><td>a 32-bit integer used as the seed. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>References <a class="el" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24">SFMT_T::idx</a>, <a class="el" href="_s_f_m_t_8c.html#a6ceeab85133c3fd7ec95aa85523ff544">idxof()</a>, <a class="el" href="_s_f_m_t_8c.html#a1fb62e08a8633bd2e7d7f1e4374b6815">period_certification()</a>, <a class="el" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">SFMT_T::state</a>, and <a class="el" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">W128_T::u</a>.</p>
+
+</div>
+</div>
+<hr/><h2>Variable Documentation</h2>
+<a class="anchor" id="a37c6c31e28f6abce2614edb5f7124eec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> <a class="el" href="_s_f_m_t_8c.html#a37c6c31e28f6abce2614edb5f7124eec">sse2_param_mask</a><code> [static]</code></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+<b>Initial value:</b><div class="fragment"><pre class="fragment"> {{SFMT_MSK1, SFMT_MSK2,
+ SFMT_MSK3, SFMT_MSK4}}
+</pre></div>
+<p>parameters used by sse2. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+
+
+<hr class="footer"/><address class="footer"><small>
+Generated on Thu Jun 28 2012 10:34:10 for SFMT by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.0
+</small></address>
+
+</body>
+</html>