diff options
Diffstat (limited to 'SFMT/html/_s_f_m_t_8c.html')
-rw-r--r-- | SFMT/html/_s_f_m_t_8c.html | 607 |
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 +  <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 Page</span></a></li> + <li><a href="annotated.html"><span>Data 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 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> | +<a href="#func-members">Functions</a> | +<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 <string.h></code><br/> +<code>#include <assert.h></code><br/> +<code>#include "<a class="el" href="_s_f_m_t_8h_source.html">SFMT.h</a>"</code><br/> +<code>#include "SFMT-params.h"</code><br/> +<code>#include "SFMT-common.h"</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 </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8c.html#a4048bf3892868ded8a28f8cbdd339c09">UNUSED_VARIABLE</a>(x)   (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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 * </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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 </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"> </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> </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"> </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"> </td> + <td class="paramname">x</td><td>)</td> + <td>   (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 </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 </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> * </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> * </td> + <td class="paramname"><em>array</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int </td> + <td class="paramname"><em>size</em> </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 </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> * </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> * </td> + <td class="paramname"><em>sfmt</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t * </td> + <td class="paramname"><em>array</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int </td> + <td class="paramname"><em>size</em> </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> * </td> + <td class="paramname"><em>sfmt</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint64_t * </td> + <td class="paramname"><em>array</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int </td> + <td class="paramname"><em>size</em> </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> * </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> * </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> * </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> * </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> * </td> + <td class="paramname"><em>sfmt</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t * </td> + <td class="paramname"><em>init_key</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int </td> + <td class="paramname"><em>key_length</em> </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> * </td> + <td class="paramname"><em>sfmt</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>seed</em> </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  <a href="http://www.doxygen.org/index.html"> +<img class="footer" src="doxygen.png" alt="doxygen"/> +</a> 1.8.0 +</small></address> + +</body> +</html> |