diff options
author | Kevin Chabowski <kevin@kch42.de> | 2013-08-01 22:53:27 +0200 |
---|---|---|
committer | Kevin Chabowski <kevin@kch42.de> | 2013-08-01 22:53:27 +0200 |
commit | a2fd89f963a7374b29f7831e67b443c3d42c6e3c (patch) | |
tree | 46028797665093856745df1b94875b0dfa071ef3 /SFMT/html | |
parent | 8e6850107adb5ca37ed0e9a4500282b2e8743294 (diff) | |
download | nebula2-a2fd89f963a7374b29f7831e67b443c3d42c6e3c.tar.gz nebula2-a2fd89f963a7374b29f7831e67b443c3d42c6e3c.tar.bz2 nebula2-a2fd89f963a7374b29f7831e67b443c3d42c6e3c.zip |
Added SFMT prng.
Diffstat (limited to 'SFMT/html')
32 files changed, 4806 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> diff --git a/SFMT/html/_s_f_m_t_8h.html b/SFMT/html/_s_f_m_t_8h.html new file mode 100644 index 0000000..86e5740 --- /dev/null +++ b/SFMT/html/_s_f_m_t_8h.html @@ -0,0 +1,848 @@ +<!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.h 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="#nested-classes">Data Structures</a> | +<a href="#define-members">Defines</a> | +<a href="#typedef-members">Typedefs</a> | +<a href="#func-members">Functions</a> </div> + <div class="headertitle"> +<div class="title">SFMT.h File Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>SIMD oriented Fast Mersenne Twister(SFMT) pseudorandom number generator using C structure. +<a href="#details">More...</a></p> +<div class="textblock"><code>#include <stdio.h></code><br/> +<code>#include <assert.h></code><br/> +<code>#include <inttypes.h></code><br/> +<code>#include "SFMT-params.h"</code><br/> +</div> +<p><a href="_s_f_m_t_8h_source.html">Go to the source code of this file.</a></p> +<table class="memberdecls"> +<tr><td colspan="2"><h2><a name="nested-classes"></a> +Data Structures</h2></td></tr> +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union  </td><td class="memItemRight" valign="bottom"><a class="el" href="union_w128___t.html">W128_T</a></td></tr> +<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">128-bit data structure <a href="union_w128___t.html#details">More...</a><br/></td></tr> +<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_s_f_m_t___t.html">SFMT_T</a></td></tr> +<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">SFMT internal state. <a href="struct_s_f_m_t___t.html#details">More...</a><br/></td></tr> +<tr><td colspan="2"><h2><a name="define-members"></a> +Defines</h2></td></tr> +<tr class="memitem:ac582131d7a7c8ee57e73180d1714f9d5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#ac582131d7a7c8ee57e73180d1714f9d5">PRIu64</a>   "llu"</td></tr> +<tr class="memitem:aba38357387a474f439428dee1984fc5a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#aba38357387a474f439428dee1984fc5a">PRIx64</a>   "llx"</td></tr> +<tr><td colspan="2"><h2><a name="typedef-members"></a> +Typedefs</h2></td></tr> +<tr class="memitem:ab1ee414cba9ca0f33a3716e7a92c2b79"><td class="memItemLeft" align="right" valign="top">typedef union <a class="el" href="union_w128___t.html">W128_T</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a></td></tr> +<tr class="memdesc:ab1ee414cba9ca0f33a3716e7a92c2b79"><td class="mdescLeft"> </td><td class="mdescRight">128-bit data type <a href="#ab1ee414cba9ca0f33a3716e7a92c2b79"></a><br/></td></tr> +<tr class="memitem:a786e4a6ba82d3cb2f62241d6351d973f"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_s_f_m_t___t.html">SFMT_T</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a></td></tr> +<tr><td colspan="2"><h2><a name="func-members"></a> +Functions</h2></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_8h.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_8h.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_8h.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_8h.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 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_8h.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_8h.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_8h.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_8h.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:a320ad3d4b201c8b5525871b5d4c9d110"><td class="memItemLeft" align="right" valign="top">static uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110">sfmt_genrand_uint32</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr> +<tr class="memdesc:a320ad3d4b201c8b5525871b5d4c9d110"><td class="mdescLeft"> </td><td class="mdescRight">This function generates and returns 32-bit pseudorandom number. <a href="#a320ad3d4b201c8b5525871b5d4c9d110"></a><br/></td></tr> +<tr class="memitem:ae99df9ac1b48be1370492d448504b717"><td class="memItemLeft" align="right" valign="top">static uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717">sfmt_genrand_uint64</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr> +<tr class="memdesc:ae99df9ac1b48be1370492d448504b717"><td class="mdescLeft"> </td><td class="mdescRight">This function generates and returns 64-bit pseudorandom number. <a href="#ae99df9ac1b48be1370492d448504b717"></a><br/></td></tr> +<tr class="memitem:a29ed9f4537b9e617737dc32585636000"><td class="memItemLeft" align="right" valign="top">static double </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a29ed9f4537b9e617737dc32585636000">sfmt_to_real1</a> (uint32_t v)</td></tr> +<tr class="memdesc:a29ed9f4537b9e617737dc32585636000"><td class="mdescLeft"> </td><td class="mdescRight">converts an unsigned 32-bit number to a double on [0,1]-real-interval. <a href="#a29ed9f4537b9e617737dc32585636000"></a><br/></td></tr> +<tr class="memitem:ac8f1ec46b29372bbd2dd311ce2887ebf"><td class="memItemLeft" align="right" valign="top">static double </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#ac8f1ec46b29372bbd2dd311ce2887ebf">sfmt_genrand_real1</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr> +<tr class="memdesc:ac8f1ec46b29372bbd2dd311ce2887ebf"><td class="mdescLeft"> </td><td class="mdescRight">generates a random number on [0,1]-real-interval <a href="#ac8f1ec46b29372bbd2dd311ce2887ebf"></a><br/></td></tr> +<tr class="memitem:a4caa47d7e18ec69f30a56f9390fda3e7"><td class="memItemLeft" align="right" valign="top">static double </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a4caa47d7e18ec69f30a56f9390fda3e7">sfmt_to_real2</a> (uint32_t v)</td></tr> +<tr class="memdesc:a4caa47d7e18ec69f30a56f9390fda3e7"><td class="mdescLeft"> </td><td class="mdescRight">converts an unsigned 32-bit integer to a double on [0,1)-real-interval. <a href="#a4caa47d7e18ec69f30a56f9390fda3e7"></a><br/></td></tr> +<tr class="memitem:a3e68d5e08ce1841614dbd93cc4cfa251"><td class="memItemLeft" align="right" valign="top">static double </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a3e68d5e08ce1841614dbd93cc4cfa251">sfmt_genrand_real2</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr> +<tr class="memdesc:a3e68d5e08ce1841614dbd93cc4cfa251"><td class="mdescLeft"> </td><td class="mdescRight">generates a random number on [0,1)-real-interval <a href="#a3e68d5e08ce1841614dbd93cc4cfa251"></a><br/></td></tr> +<tr class="memitem:a48d93f237f52b2a149ab0d683527aa9c"><td class="memItemLeft" align="right" valign="top">static double </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a48d93f237f52b2a149ab0d683527aa9c">sfmt_to_real3</a> (uint32_t v)</td></tr> +<tr class="memdesc:a48d93f237f52b2a149ab0d683527aa9c"><td class="mdescLeft"> </td><td class="mdescRight">converts an unsigned 32-bit integer to a double on (0,1)-real-interval. <a href="#a48d93f237f52b2a149ab0d683527aa9c"></a><br/></td></tr> +<tr class="memitem:a89e02c7333287e1ca650c38983ab6dae"><td class="memItemLeft" align="right" valign="top">static double </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a89e02c7333287e1ca650c38983ab6dae">sfmt_genrand_real3</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr> +<tr class="memdesc:a89e02c7333287e1ca650c38983ab6dae"><td class="mdescLeft"> </td><td class="mdescRight">generates a random number on (0,1)-real-interval <a href="#a89e02c7333287e1ca650c38983ab6dae"></a><br/></td></tr> +<tr class="memitem:abd5780d6ef5e9836a63e555e9f7da940"><td class="memItemLeft" align="right" valign="top">static double </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#abd5780d6ef5e9836a63e555e9f7da940">sfmt_to_res53</a> (uint64_t v)</td></tr> +<tr class="memdesc:abd5780d6ef5e9836a63e555e9f7da940"><td class="mdescLeft"> </td><td class="mdescRight">converts an unsigned 32-bit integer to double on [0,1) with 53-bit resolution. <a href="#abd5780d6ef5e9836a63e555e9f7da940"></a><br/></td></tr> +<tr class="memitem:aa5b6472af111363e237ae022f6a9ef48"><td class="memItemLeft" align="right" valign="top">static double </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#aa5b6472af111363e237ae022f6a9ef48">sfmt_genrand_res53</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr> +<tr class="memdesc:aa5b6472af111363e237ae022f6a9ef48"><td class="mdescLeft"> </td><td class="mdescRight">generates a random number on [0,1) with 53-bit resolution <a href="#aa5b6472af111363e237ae022f6a9ef48"></a><br/></td></tr> +<tr class="memitem:a686d9c9d19ba29e0890abd2127f46339"><td class="memItemLeft" align="right" valign="top">static double </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a686d9c9d19ba29e0890abd2127f46339">sfmt_to_res53_mix</a> (uint32_t x, uint32_t y)</td></tr> +<tr class="memdesc:a686d9c9d19ba29e0890abd2127f46339"><td class="mdescLeft"> </td><td class="mdescRight">generates a random number on [0,1) with 53-bit resolution from two 32 bit integers <a href="#a686d9c9d19ba29e0890abd2127f46339"></a><br/></td></tr> +<tr class="memitem:a6b92b2435f0182f5fa19f94bb7986d74"><td class="memItemLeft" align="right" valign="top">static double </td><td class="memItemRight" valign="bottom"><a class="el" href="_s_f_m_t_8h.html#a6b92b2435f0182f5fa19f94bb7986d74">sfmt_genrand_res53_mix</a> (<a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a> *sfmt)</td></tr> +<tr class="memdesc:a6b92b2435f0182f5fa19f94bb7986d74"><td class="mdescLeft"> </td><td class="mdescRight">generates a random number on [0,1) with 53-bit resolution using two 32bit integers. <a href="#a6b92b2435f0182f5fa19f94bb7986d74"></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) pseudorandom number generator using C structure. </p> +<dl class="section author"><dt>Author:</dt><dd>Mutsuo Saito (Hiroshima University) </dd> +<dd> +Makoto Matsumoto (The University of Tokyo)</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> +<dl class="section note"><dt>Note:</dt><dd>We assume that your system has inttypes.h. If your system doesn't have inttypes.h, you have to typedef uint32_t and uint64_t, and you have to define PRIu64 and PRIx64 in this file as follows: <div class="fragment"><pre class="fragment"> typedef unsigned int uint32_t + typedef unsigned long long uint64_t + #define PRIu64 "llu" + #define PRIx64 "llx" +</pre></div> uint32_t must be exactly 32-bit unsigned integer type (no more, no less), and uint64_t must be exactly 64-bit unsigned integer type. PRIu64 and PRIx64 are used for printf function to print 64-bit unsigned int and 64-bit unsigned int in hexadecimal format. </dd></dl> +</div><hr/><h2>Define Documentation</h2> +<a class="anchor" id="ac582131d7a7c8ee57e73180d1714f9d5"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define <a class="el" href="_s_f_m_t_8h.html#ac582131d7a7c8ee57e73180d1714f9d5">PRIu64</a>   "llu"</td> + </tr> + </table> +</div> +<div class="memdoc"> + +</div> +</div> +<a class="anchor" id="aba38357387a474f439428dee1984fc5a"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">#define <a class="el" href="_s_f_m_t_8h.html#aba38357387a474f439428dee1984fc5a">PRIx64</a>   "llx"</td> + </tr> + </table> +</div> +<div class="memdoc"> + +</div> +</div> +<hr/><h2>Typedef Documentation</h2> +<a class="anchor" id="a786e4a6ba82d3cb2f62241d6351d973f"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">typedef struct <a class="el" href="struct_s_f_m_t___t.html">SFMT_T</a> <a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">sfmt_t</a></td> + </tr> + </table> +</div> +<div class="memdoc"> + +</div> +</div> +<a class="anchor" id="ab1ee414cba9ca0f33a3716e7a92c2b79"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">typedef union <a class="el" href="union_w128___t.html">W128_T</a> <a class="el" href="_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>128-bit data type </p> + +</div> +</div> +<hr/><h2>Function Documentation</h2> +<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="ac8f1ec46b29372bbd2dd311ce2887ebf"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#ac8f1ec46b29372bbd2dd311ce2887ebf">sfmt_genrand_real1</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> [inline, static]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>generates a random number on [0,1]-real-interval </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>double on [0,1]-real-interval </dd></dl> + +<p>References <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#a29ed9f4537b9e617737dc32585636000">sfmt_to_real1()</a>.</p> + +</div> +</div> +<a class="anchor" id="a3e68d5e08ce1841614dbd93cc4cfa251"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#a3e68d5e08ce1841614dbd93cc4cfa251">sfmt_genrand_real2</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> [inline, static]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>generates a random number on [0,1)-real-interval </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>double on [0,1)-real-interval </dd></dl> + +<p>References <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#a4caa47d7e18ec69f30a56f9390fda3e7">sfmt_to_real2()</a>.</p> + +</div> +</div> +<a class="anchor" id="a89e02c7333287e1ca650c38983ab6dae"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#a89e02c7333287e1ca650c38983ab6dae">sfmt_genrand_real3</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> [inline, static]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>generates a random number on (0,1)-real-interval </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>double on (0,1)-real-interval </dd></dl> + +<p>References <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#a48d93f237f52b2a149ab0d683527aa9c">sfmt_to_real3()</a>.</p> + +</div> +</div> +<a class="anchor" id="aa5b6472af111363e237ae022f6a9ef48"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#aa5b6472af111363e237ae022f6a9ef48">sfmt_genrand_res53</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> [inline, static]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>generates a random number on [0,1) with 53-bit resolution </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>double on [0,1) with 53-bit resolution </dd></dl> + +<p>References <a class="el" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717">sfmt_genrand_uint64()</a>, and <a class="el" href="_s_f_m_t_8h.html#abd5780d6ef5e9836a63e555e9f7da940">sfmt_to_res53()</a>.</p> + +</div> +</div> +<a class="anchor" id="a6b92b2435f0182f5fa19f94bb7986d74"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#a6b92b2435f0182f5fa19f94bb7986d74">sfmt_genrand_res53_mix</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> [inline, static]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>generates a random number on [0,1) with 53-bit resolution using two 32bit 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> +<dl class="section return"><dt>Returns:</dt><dd>double on [0,1) with 53-bit resolution </dd></dl> + +<p>References <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#a686d9c9d19ba29e0890abd2127f46339">sfmt_to_res53_mix()</a>.</p> + +</div> +</div> +<a class="anchor" id="a320ad3d4b201c8b5525871b5d4c9d110"></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_8h.html#a320ad3d4b201c8b5525871b5d4c9d110">sfmt_genrand_uint32</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> [inline, static]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>This function generates and returns 32-bit pseudorandom number. </p> +<p>init_gen_rand or init_by_array must be called before this 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>32-bit pseudorandom number </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_8h.html#a2224d63688cbf9b1f50c01d5d9bb7f29">sfmt_gen_rand_all()</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_8h.html#ac8f1ec46b29372bbd2dd311ce2887ebf">sfmt_genrand_real1()</a>, <a class="el" href="_s_f_m_t_8h.html#a3e68d5e08ce1841614dbd93cc4cfa251">sfmt_genrand_real2()</a>, <a class="el" href="_s_f_m_t_8h.html#a89e02c7333287e1ca650c38983ab6dae">sfmt_genrand_real3()</a>, and <a class="el" href="_s_f_m_t_8h.html#a6b92b2435f0182f5fa19f94bb7986d74">sfmt_genrand_res53_mix()</a>.</p> + +</div> +</div> +<a class="anchor" id="ae99df9ac1b48be1370492d448504b717"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">static uint64_t <a class="el" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717">sfmt_genrand_uint64</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> [inline, static]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>This function generates and returns 64-bit pseudorandom number. </p> +<p>init_gen_rand or init_by_array must be called before this function. The function gen_rand64 should not be called after gen_rand32, unless an initialization is again executed. </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>64-bit pseudorandom number </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_8h.html#a2224d63688cbf9b1f50c01d5d9bb7f29">sfmt_gen_rand_all()</a>, <a class="el" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">SFMT_T::state</a>, <a class="el" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">W128_T::u</a>, and <a class="el" href="union_w128___t.html#ae222444071b31f65e53d6bbc3c3dd39e">W128_T::u64</a>.</p> + +<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#aa5b6472af111363e237ae022f6a9ef48">sfmt_genrand_res53()</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> +<a class="anchor" id="a29ed9f4537b9e617737dc32585636000"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#a29ed9f4537b9e617737dc32585636000">sfmt_to_real1</a> </td> + <td>(</td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>v</em></td><td>)</td> + <td><code> [inline, static]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>converts an unsigned 32-bit number to a double on [0,1]-real-interval. </p> +<dl class="params"><dt><b>Parameters:</b></dt><dd> + <table class="params"> + <tr><td class="paramname">v</td><td>32-bit unsigned integer </td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns:</dt><dd>double on [0,1]-real-interval </dd></dl> + +<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#ac8f1ec46b29372bbd2dd311ce2887ebf">sfmt_genrand_real1()</a>.</p> + +</div> +</div> +<a class="anchor" id="a4caa47d7e18ec69f30a56f9390fda3e7"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#a4caa47d7e18ec69f30a56f9390fda3e7">sfmt_to_real2</a> </td> + <td>(</td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>v</em></td><td>)</td> + <td><code> [inline, static]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>converts an unsigned 32-bit integer to a double on [0,1)-real-interval. </p> +<dl class="params"><dt><b>Parameters:</b></dt><dd> + <table class="params"> + <tr><td class="paramname">v</td><td>32-bit unsigned integer </td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns:</dt><dd>double on [0,1)-real-interval </dd></dl> + +<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#a3e68d5e08ce1841614dbd93cc4cfa251">sfmt_genrand_real2()</a>.</p> + +</div> +</div> +<a class="anchor" id="a48d93f237f52b2a149ab0d683527aa9c"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#a48d93f237f52b2a149ab0d683527aa9c">sfmt_to_real3</a> </td> + <td>(</td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>v</em></td><td>)</td> + <td><code> [inline, static]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>converts an unsigned 32-bit integer to a double on (0,1)-real-interval. </p> +<dl class="params"><dt><b>Parameters:</b></dt><dd> + <table class="params"> + <tr><td class="paramname">v</td><td>32-bit unsigned integer </td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns:</dt><dd>double on (0,1)-real-interval </dd></dl> + +<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#a89e02c7333287e1ca650c38983ab6dae">sfmt_genrand_real3()</a>.</p> + +</div> +</div> +<a class="anchor" id="abd5780d6ef5e9836a63e555e9f7da940"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#abd5780d6ef5e9836a63e555e9f7da940">sfmt_to_res53</a> </td> + <td>(</td> + <td class="paramtype">uint64_t </td> + <td class="paramname"><em>v</em></td><td>)</td> + <td><code> [inline, static]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>converts an unsigned 32-bit integer to double on [0,1) with 53-bit resolution. </p> +<dl class="params"><dt><b>Parameters:</b></dt><dd> + <table class="params"> + <tr><td class="paramname">v</td><td>32-bit unsigned integer </td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns:</dt><dd>double on [0,1)-real-interval with 53-bit resolution. </dd></dl> + +<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#aa5b6472af111363e237ae022f6a9ef48">sfmt_genrand_res53()</a>, and <a class="el" href="_s_f_m_t_8h.html#a686d9c9d19ba29e0890abd2127f46339">sfmt_to_res53_mix()</a>.</p> + +</div> +</div> +<a class="anchor" id="a686d9c9d19ba29e0890abd2127f46339"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">static double <a class="el" href="_s_f_m_t_8h.html#a686d9c9d19ba29e0890abd2127f46339">sfmt_to_res53_mix</a> </td> + <td>(</td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>x</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"><em>y</em> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td><code> [inline, static]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>generates a random number on [0,1) with 53-bit resolution from two 32 bit integers </p> + +<p>References <a class="el" href="_s_f_m_t_8h.html#abd5780d6ef5e9836a63e555e9f7da940">sfmt_to_res53()</a>.</p> + +<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#a6b92b2435f0182f5fa19f94bb7986d74">sfmt_genrand_res53_mix()</a>.</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> diff --git a/SFMT/html/_s_f_m_t_8h_source.html b/SFMT/html/_s_f_m_t_8h_source.html new file mode 100644 index 0000000..9e02e31 --- /dev/null +++ b/SFMT/html/_s_f_m_t_8h_source.html @@ -0,0 +1,261 @@ +<!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.h Source File</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="headertitle"> +<div class="title">SFMT.h</div> </div> +</div><!--header--> +<div class="contents"> +<a href="_s_f_m_t_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#pragma once</span> +<a name="l00002"></a>00002 <span class="preprocessor"></span> +<a name="l00035"></a>00035 <span class="preprocessor">#ifndef SFMTST_H</span> +<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#define SFMTST_H</span> +<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#if defined(__cplusplus)</span> +<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> { +<a name="l00039"></a>00039 <span class="preprocessor">#endif</span> +<a name="l00040"></a>00040 <span class="preprocessor"></span> +<a name="l00041"></a>00041 <span class="preprocessor">#include <stdio.h></span> +<a name="l00042"></a>00042 <span class="preprocessor">#include <assert.h></span> +<a name="l00043"></a>00043 +<a name="l00044"></a>00044 <span class="preprocessor">#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)</span> +<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor"> #include <inttypes.h></span> +<a name="l00046"></a>00046 <span class="preprocessor">#elif defined(_MSC_VER) || defined(__BORLANDC__)</span> +<a name="l00047"></a>00047 <span class="preprocessor"></span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint32_t; +<a name="l00048"></a>00048 <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int64 uint64_t; +<a name="l00049"></a>00049 <span class="preprocessor"> #define inline __inline</span> +<a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">#else</span> +<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor"> #include <inttypes.h></span> +<a name="l00052"></a>00052 <span class="preprocessor"> #if defined(__GNUC__)</span> +<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor"> #define inline __inline__</span> +<a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor"> #endif</span> +<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">#endif</span> +<a name="l00056"></a>00056 <span class="preprocessor"></span> +<a name="l00057"></a>00057 <span class="preprocessor">#ifndef PRIu64</span> +<a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor"> #if defined(_MSC_VER) || defined(__BORLANDC__)</span> +<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor"> #define PRIu64 "I64u"</span> +<a name="l00060"></a>00060 <span class="preprocessor"></span><span class="preprocessor"> #define PRIx64 "I64x"</span> +<a name="l00061"></a>00061 <span class="preprocessor"></span><span class="preprocessor"> #else</span> +<a name="l00062"></a><a class="code" href="_s_f_m_t_8h.html#ac582131d7a7c8ee57e73180d1714f9d5">00062</a> <span class="preprocessor"></span><span class="preprocessor"> #define PRIu64 "llu"</span> +<a name="l00063"></a><a class="code" href="_s_f_m_t_8h.html#aba38357387a474f439428dee1984fc5a">00063</a> <span class="preprocessor"></span><span class="preprocessor"> #define PRIx64 "llx"</span> +<a name="l00064"></a>00064 <span class="preprocessor"></span><span class="preprocessor"> #endif</span> +<a name="l00065"></a>00065 <span class="preprocessor"></span><span class="preprocessor">#endif</span> +<a name="l00066"></a>00066 <span class="preprocessor"></span> +<a name="l00067"></a>00067 <span class="preprocessor">#include "SFMT-params.h"</span> +<a name="l00068"></a>00068 +<a name="l00069"></a>00069 <span class="comment">/*------------------------------------------</span> +<a name="l00070"></a>00070 <span class="comment"> 128-bit SIMD like data type for standard C</span> +<a name="l00071"></a>00071 <span class="comment"> ------------------------------------------*/</span> +<a name="l00072"></a>00072 <span class="preprocessor">#if defined(HAVE_ALTIVEC)</span> +<a name="l00073"></a>00073 <span class="preprocessor"></span><span class="preprocessor"> #if !defined(__APPLE__)</span> +<a name="l00074"></a>00074 <span class="preprocessor"></span><span class="preprocessor"> #include <altivec.h></span> +<a name="l00075"></a>00075 <span class="preprocessor"> #endif</span> +<a name="l00076"></a>00076 <span class="preprocessor"></span> +<a name="l00077"></a>00077 <span class="keyword">union </span><a class="code" href="union_w128___t.html" title="128-bit data structure">W128_T</a> { +<a name="l00078"></a>00078 vector <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> s; +<a name="l00079"></a>00079 uint32_t <a class="code" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">u</a>[4]; +<a name="l00080"></a>00080 uint64_t <a class="code" href="union_w128___t.html#ae222444071b31f65e53d6bbc3c3dd39e">u64</a>[2]; +<a name="l00081"></a>00081 }; +<a name="l00082"></a>00082 <span class="preprocessor">#elif defined(HAVE_SSE2)</span> +<a name="l00083"></a>00083 <span class="preprocessor"></span><span class="preprocessor"> #include <emmintrin.h></span> +<a name="l00084"></a>00084 +<a name="l00086"></a>00086 <span class="keyword">union </span><a class="code" href="union_w128___t.html" title="128-bit data structure">W128_T</a> { +<a name="l00087"></a>00087 uint32_t <a class="code" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">u</a>[4]; +<a name="l00088"></a>00088 uint64_t <a class="code" href="union_w128___t.html#ae222444071b31f65e53d6bbc3c3dd39e">u64</a>[2]; +<a name="l00089"></a>00089 __m128i si; +<a name="l00090"></a>00090 }; +<a name="l00091"></a>00091 <span class="preprocessor">#else</span> +<a name="l00092"></a>00092 <span class="preprocessor"></span> +<a name="l00093"></a><a class="code" href="union_w128___t.html">00093</a> <span class="keyword">union </span><a class="code" href="union_w128___t.html" title="128-bit data structure">W128_T</a> { +<a name="l00094"></a><a class="code" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">00094</a> uint32_t <a class="code" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">u</a>[4]; +<a name="l00095"></a><a class="code" href="union_w128___t.html#ae222444071b31f65e53d6bbc3c3dd39e">00095</a> uint64_t <a class="code" href="union_w128___t.html#ae222444071b31f65e53d6bbc3c3dd39e">u64</a>[2]; +<a name="l00096"></a>00096 }; +<a name="l00097"></a>00097 <span class="preprocessor">#endif</span> +<a name="l00098"></a>00098 <span class="preprocessor"></span> +<a name="l00100"></a><a class="code" href="_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">00100</a> <span class="keyword">typedef</span> <span class="keyword">union </span><a class="code" href="union_w128___t.html" title="128-bit data structure">W128_T</a> <a class="code" href="union_w128___t.html" title="128-bit data structure">w128_t</a>; +<a name="l00101"></a>00101 +<a name="l00105"></a><a class="code" href="struct_s_f_m_t___t.html">00105</a> <span class="keyword">struct </span><a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">SFMT_T</a> { +<a name="l00107"></a><a class="code" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">00107</a> <a class="code" href="union_w128___t.html" title="128-bit data structure">w128_t</a> <a class="code" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386" title="the 128-bit internal state array">state</a>[SFMT_N]; +<a name="l00109"></a><a class="code" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24">00109</a> <span class="keywordtype">int</span> <a class="code" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24" title="index counter to the 32-bit internal state array">idx</a>; +<a name="l00110"></a>00110 }; +<a name="l00111"></a>00111 +<a name="l00112"></a><a class="code" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">00112</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">SFMT_T</a> <a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a>; +<a name="l00113"></a>00113 +<a name="l00114"></a>00114 <span class="keywordtype">void</span> <a class="code" href="_s_f_m_t_8h.html#a04f57c1e9a6b5c0c52ac774a50da6c7e" title="This function generates pseudorandom 32-bit integers in the specified array[] by one call...">sfmt_fill_array32</a>(<a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a> * sfmt, uint32_t * array, <span class="keywordtype">int</span> size); +<a name="l00115"></a>00115 <span class="keywordtype">void</span> <a class="code" href="_s_f_m_t_8h.html#ab9d6542bb167426bd35591afd32136af" title="This function generates pseudorandom 64-bit integers in the specified array[] by one call...">sfmt_fill_array64</a>(<a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a> * sfmt, uint64_t * array, <span class="keywordtype">int</span> size); +<a name="l00116"></a>00116 <span class="keywordtype">void</span> <a class="code" href="_s_f_m_t_8h.html#a674d820db863265836ef9cb203aa4130" title="This function initializes the internal state array with a 32-bit integer seed.">sfmt_init_gen_rand</a>(<a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a> * sfmt, uint32_t seed); +<a name="l00117"></a>00117 <span class="keywordtype">void</span> <a class="code" href="_s_f_m_t_8h.html#a28f357a6d2a9cd74cec3c9d458e58475" title="This function initializes the internal state array, with an array of 32-bit integers used as the seed...">sfmt_init_by_array</a>(<a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a> * sfmt, uint32_t * init_key, <span class="keywordtype">int</span> key_length); +<a name="l00118"></a>00118 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="_s_f_m_t_8h.html#a6454ae6ac89dbaa2fd5db79be99dd408" title="This function returns the identification string.">sfmt_get_idstring</a>(<a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a> * sfmt); +<a name="l00119"></a>00119 <span class="keywordtype">int</span> <a class="code" href="_s_f_m_t_8h.html#a4a0698581c5ce4fdb269f814fd438a5f" title="This function returns the minimum size of array used for fill_array32() function.">sfmt_get_min_array_size32</a>(<a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a> * sfmt); +<a name="l00120"></a>00120 <span class="keywordtype">int</span> <a class="code" href="_s_f_m_t_8h.html#a22ebb5ab2cf7e28d2bcf21ffffcc7e39" title="This function returns the minimum size of array used for fill_array64() function.">sfmt_get_min_array_size64</a>(<a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a> * sfmt); +<a name="l00121"></a>00121 <span class="keywordtype">void</span> <a class="code" href="_s_f_m_t_8h.html#a2224d63688cbf9b1f50c01d5d9bb7f29" title="This function fills the internal state array with pseudorandom integers.">sfmt_gen_rand_all</a>(<a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a> * sfmt); +<a name="l00122"></a>00122 +<a name="l00123"></a>00123 <span class="preprocessor">#ifndef ONLY64</span> +<a name="l00124"></a>00124 <span class="preprocessor"></span> +<a name="l00130"></a><a class="code" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110">00130</a> <span class="keyword">inline</span> <span class="keyword">static</span> uint32_t <a class="code" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110" title="This function generates and returns 32-bit pseudorandom number.">sfmt_genrand_uint32</a>(<a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a> * sfmt) { +<a name="l00131"></a>00131 uint32_t r; +<a name="l00132"></a>00132 uint32_t * psfmt32 = &sfmt-><a class="code" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386" title="the 128-bit internal state array">state</a>[0].<a class="code" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">u</a>[0]; +<a name="l00133"></a>00133 +<a name="l00134"></a>00134 <span class="keywordflow">if</span> (sfmt-><a class="code" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24" title="index counter to the 32-bit internal state array">idx</a> >= SFMT_N32) { +<a name="l00135"></a>00135 <a class="code" href="_s_f_m_t_8h.html#a2224d63688cbf9b1f50c01d5d9bb7f29" title="This function fills the internal state array with pseudorandom integers.">sfmt_gen_rand_all</a>(sfmt); +<a name="l00136"></a>00136 sfmt-><a class="code" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24" title="index counter to the 32-bit internal state array">idx</a> = 0; +<a name="l00137"></a>00137 } +<a name="l00138"></a>00138 r = psfmt32[sfmt-><a class="code" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24" title="index counter to the 32-bit internal state array">idx</a>++]; +<a name="l00139"></a>00139 <span class="keywordflow">return</span> r; +<a name="l00140"></a>00140 } +<a name="l00141"></a>00141 <span class="preprocessor">#endif</span> +<a name="l00142"></a>00142 <span class="preprocessor"></span> +<a name="l00150"></a><a class="code" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717">00150</a> <span class="keyword">inline</span> <span class="keyword">static</span> uint64_t <a class="code" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717" title="This function generates and returns 64-bit pseudorandom number.">sfmt_genrand_uint64</a>(<a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a> * sfmt) { +<a name="l00151"></a>00151 <span class="preprocessor">#if defined(BIG_ENDIAN64) && !defined(ONLY64)</span> +<a name="l00152"></a>00152 <span class="preprocessor"></span> uint32_t * psfmt32 = &sfmt-><a class="code" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386" title="the 128-bit internal state array">state</a>[0].<a class="code" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">u</a>[0]; +<a name="l00153"></a>00153 uint32_t r1, r2; +<a name="l00154"></a>00154 <span class="preprocessor">#else</span> +<a name="l00155"></a>00155 <span class="preprocessor"></span> uint64_t r; +<a name="l00156"></a>00156 <span class="preprocessor">#endif</span> +<a name="l00157"></a>00157 <span class="preprocessor"></span> uint64_t * psfmt64 = &sfmt-><a class="code" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386" title="the 128-bit internal state array">state</a>[0].<a class="code" href="union_w128___t.html#ae222444071b31f65e53d6bbc3c3dd39e">u64</a>[0]; +<a name="l00158"></a>00158 assert(sfmt-><a class="code" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24" title="index counter to the 32-bit internal state array">idx</a> % 2 == 0); +<a name="l00159"></a>00159 +<a name="l00160"></a>00160 <span class="keywordflow">if</span> (sfmt-><a class="code" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24" title="index counter to the 32-bit internal state array">idx</a> >= SFMT_N32) { +<a name="l00161"></a>00161 <a class="code" href="_s_f_m_t_8h.html#a2224d63688cbf9b1f50c01d5d9bb7f29" title="This function fills the internal state array with pseudorandom integers.">sfmt_gen_rand_all</a>(sfmt); +<a name="l00162"></a>00162 sfmt-><a class="code" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24" title="index counter to the 32-bit internal state array">idx</a> = 0; +<a name="l00163"></a>00163 } +<a name="l00164"></a>00164 <span class="preprocessor">#if defined(BIG_ENDIAN64) && !defined(ONLY64)</span> +<a name="l00165"></a>00165 <span class="preprocessor"></span> r1 = psfmt32[sfmt-><a class="code" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24" title="index counter to the 32-bit internal state array">idx</a>]; +<a name="l00166"></a>00166 r2 = psfmt32[sfmt-><a class="code" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24" title="index counter to the 32-bit internal state array">idx</a> + 1]; +<a name="l00167"></a>00167 sfmt-><a class="code" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24" title="index counter to the 32-bit internal state array">idx</a> += 2; +<a name="l00168"></a>00168 <span class="keywordflow">return</span> ((uint64_t)r2 << 32) | r1; +<a name="l00169"></a>00169 <span class="preprocessor">#else</span> +<a name="l00170"></a>00170 <span class="preprocessor"></span> r = psfmt64[sfmt-><a class="code" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24" title="index counter to the 32-bit internal state array">idx</a> / 2]; +<a name="l00171"></a>00171 sfmt-><a class="code" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24" title="index counter to the 32-bit internal state array">idx</a> += 2; +<a name="l00172"></a>00172 <span class="keywordflow">return</span> r; +<a name="l00173"></a>00173 <span class="preprocessor">#endif</span> +<a name="l00174"></a>00174 <span class="preprocessor"></span>} +<a name="l00175"></a>00175 +<a name="l00176"></a>00176 <span class="comment">/* =================================================</span> +<a name="l00177"></a>00177 <span class="comment"> The following real versions are due to Isaku Wada</span> +<a name="l00178"></a>00178 <span class="comment"> ================================================= */</span> +<a name="l00184"></a><a class="code" href="_s_f_m_t_8h.html#a29ed9f4537b9e617737dc32585636000">00184</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="_s_f_m_t_8h.html#a29ed9f4537b9e617737dc32585636000" title="converts an unsigned 32-bit number to a double on [0,1]-real-interval.">sfmt_to_real1</a>(uint32_t v) +<a name="l00185"></a>00185 { +<a name="l00186"></a>00186 <span class="keywordflow">return</span> v * (1.0/4294967295.0); +<a name="l00187"></a>00187 <span class="comment">/* divided by 2^32-1 */</span> +<a name="l00188"></a>00188 } +<a name="l00189"></a>00189 +<a name="l00195"></a><a class="code" href="_s_f_m_t_8h.html#ac8f1ec46b29372bbd2dd311ce2887ebf">00195</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="_s_f_m_t_8h.html#ac8f1ec46b29372bbd2dd311ce2887ebf" title="generates a random number on [0,1]-real-interval">sfmt_genrand_real1</a>(<a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a> * sfmt) +<a name="l00196"></a>00196 { +<a name="l00197"></a>00197 <span class="keywordflow">return</span> <a class="code" href="_s_f_m_t_8h.html#a29ed9f4537b9e617737dc32585636000" title="converts an unsigned 32-bit number to a double on [0,1]-real-interval.">sfmt_to_real1</a>(<a class="code" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110" title="This function generates and returns 32-bit pseudorandom number.">sfmt_genrand_uint32</a>(sfmt)); +<a name="l00198"></a>00198 } +<a name="l00199"></a>00199 +<a name="l00205"></a><a class="code" href="_s_f_m_t_8h.html#a4caa47d7e18ec69f30a56f9390fda3e7">00205</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="_s_f_m_t_8h.html#a4caa47d7e18ec69f30a56f9390fda3e7" title="converts an unsigned 32-bit integer to a double on [0,1)-real-interval.">sfmt_to_real2</a>(uint32_t v) +<a name="l00206"></a>00206 { +<a name="l00207"></a>00207 <span class="keywordflow">return</span> v * (1.0/4294967296.0); +<a name="l00208"></a>00208 <span class="comment">/* divided by 2^32 */</span> +<a name="l00209"></a>00209 } +<a name="l00210"></a>00210 +<a name="l00216"></a><a class="code" href="_s_f_m_t_8h.html#a3e68d5e08ce1841614dbd93cc4cfa251">00216</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="_s_f_m_t_8h.html#a3e68d5e08ce1841614dbd93cc4cfa251" title="generates a random number on [0,1)-real-interval">sfmt_genrand_real2</a>(<a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a> * sfmt) +<a name="l00217"></a>00217 { +<a name="l00218"></a>00218 <span class="keywordflow">return</span> <a class="code" href="_s_f_m_t_8h.html#a4caa47d7e18ec69f30a56f9390fda3e7" title="converts an unsigned 32-bit integer to a double on [0,1)-real-interval.">sfmt_to_real2</a>(<a class="code" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110" title="This function generates and returns 32-bit pseudorandom number.">sfmt_genrand_uint32</a>(sfmt)); +<a name="l00219"></a>00219 } +<a name="l00220"></a>00220 +<a name="l00226"></a><a class="code" href="_s_f_m_t_8h.html#a48d93f237f52b2a149ab0d683527aa9c">00226</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="_s_f_m_t_8h.html#a48d93f237f52b2a149ab0d683527aa9c" title="converts an unsigned 32-bit integer to a double on (0,1)-real-interval.">sfmt_to_real3</a>(uint32_t v) +<a name="l00227"></a>00227 { +<a name="l00228"></a>00228 <span class="keywordflow">return</span> (((<span class="keywordtype">double</span>)v) + 0.5)*(1.0/4294967296.0); +<a name="l00229"></a>00229 <span class="comment">/* divided by 2^32 */</span> +<a name="l00230"></a>00230 } +<a name="l00231"></a>00231 +<a name="l00237"></a><a class="code" href="_s_f_m_t_8h.html#a89e02c7333287e1ca650c38983ab6dae">00237</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="_s_f_m_t_8h.html#a89e02c7333287e1ca650c38983ab6dae" title="generates a random number on (0,1)-real-interval">sfmt_genrand_real3</a>(<a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a> * sfmt) +<a name="l00238"></a>00238 { +<a name="l00239"></a>00239 <span class="keywordflow">return</span> <a class="code" href="_s_f_m_t_8h.html#a48d93f237f52b2a149ab0d683527aa9c" title="converts an unsigned 32-bit integer to a double on (0,1)-real-interval.">sfmt_to_real3</a>(<a class="code" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110" title="This function generates and returns 32-bit pseudorandom number.">sfmt_genrand_uint32</a>(sfmt)); +<a name="l00240"></a>00240 } +<a name="l00241"></a>00241 +<a name="l00248"></a><a class="code" href="_s_f_m_t_8h.html#abd5780d6ef5e9836a63e555e9f7da940">00248</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="_s_f_m_t_8h.html#abd5780d6ef5e9836a63e555e9f7da940" title="converts an unsigned 32-bit integer to double on [0,1) with 53-bit resolution.">sfmt_to_res53</a>(uint64_t v) +<a name="l00249"></a>00249 { +<a name="l00250"></a>00250 <span class="keywordflow">return</span> v * (1.0/18446744073709551616.0L); +<a name="l00251"></a>00251 } +<a name="l00252"></a>00252 +<a name="l00258"></a><a class="code" href="_s_f_m_t_8h.html#aa5b6472af111363e237ae022f6a9ef48">00258</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="_s_f_m_t_8h.html#aa5b6472af111363e237ae022f6a9ef48" title="generates a random number on [0,1) with 53-bit resolution">sfmt_genrand_res53</a>(<a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a> * sfmt) +<a name="l00259"></a>00259 { +<a name="l00260"></a>00260 <span class="keywordflow">return</span> <a class="code" href="_s_f_m_t_8h.html#abd5780d6ef5e9836a63e555e9f7da940" title="converts an unsigned 32-bit integer to double on [0,1) with 53-bit resolution.">sfmt_to_res53</a>(<a class="code" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717" title="This function generates and returns 64-bit pseudorandom number.">sfmt_genrand_uint64</a>(sfmt)); +<a name="l00261"></a>00261 } +<a name="l00262"></a>00262 +<a name="l00263"></a>00263 +<a name="l00264"></a>00264 <span class="comment">/* =================================================</span> +<a name="l00265"></a>00265 <span class="comment"> The following function are added by Saito.</span> +<a name="l00266"></a>00266 <span class="comment"> ================================================= */</span> +<a name="l00271"></a><a class="code" href="_s_f_m_t_8h.html#a686d9c9d19ba29e0890abd2127f46339">00271</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="_s_f_m_t_8h.html#a686d9c9d19ba29e0890abd2127f46339" title="generates a random number on [0,1) with 53-bit resolution from two 32 bit integers">sfmt_to_res53_mix</a>(uint32_t x, uint32_t y) +<a name="l00272"></a>00272 { +<a name="l00273"></a>00273 <span class="keywordflow">return</span> <a class="code" href="_s_f_m_t_8h.html#abd5780d6ef5e9836a63e555e9f7da940" title="converts an unsigned 32-bit integer to double on [0,1) with 53-bit resolution.">sfmt_to_res53</a>(x | ((uint64_t)y << 32)); +<a name="l00274"></a>00274 } +<a name="l00275"></a>00275 +<a name="l00282"></a><a class="code" href="_s_f_m_t_8h.html#a6b92b2435f0182f5fa19f94bb7986d74">00282</a> <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">double</span> <a class="code" href="_s_f_m_t_8h.html#a6b92b2435f0182f5fa19f94bb7986d74" title="generates a random number on [0,1) with 53-bit resolution using two 32bit integers.">sfmt_genrand_res53_mix</a>(<a class="code" href="struct_s_f_m_t___t.html" title="SFMT internal state.">sfmt_t</a> * sfmt) +<a name="l00283"></a>00283 { +<a name="l00284"></a>00284 uint32_t x, y; +<a name="l00285"></a>00285 +<a name="l00286"></a>00286 x = <a class="code" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110" title="This function generates and returns 32-bit pseudorandom number.">sfmt_genrand_uint32</a>(sfmt); +<a name="l00287"></a>00287 y = <a class="code" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110" title="This function generates and returns 32-bit pseudorandom number.">sfmt_genrand_uint32</a>(sfmt); +<a name="l00288"></a>00288 <span class="keywordflow">return</span> <a class="code" href="_s_f_m_t_8h.html#a686d9c9d19ba29e0890abd2127f46339" title="generates a random number on [0,1) with 53-bit resolution from two 32 bit integers">sfmt_to_res53_mix</a>(x, y); +<a name="l00289"></a>00289 } +<a name="l00290"></a>00290 +<a name="l00291"></a>00291 <span class="preprocessor">#if defined(__cplusplus)</span> +<a name="l00292"></a>00292 <span class="preprocessor"></span>} +<a name="l00293"></a>00293 <span class="preprocessor">#endif</span> +<a name="l00294"></a>00294 <span class="preprocessor"></span> +<a name="l00295"></a>00295 <span class="preprocessor">#endif</span> +</pre></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> diff --git a/SFMT/html/annotated.html b/SFMT/html/annotated.html new file mode 100644 index 0000000..9f67beb --- /dev/null +++ b/SFMT/html/annotated.html @@ -0,0 +1,72 @@ +<!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: Data Structures</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 class="current"><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="files.html"><span>Files</span></a></li> + </ul> + </div> + <div id="navrow2" class="tabs2"> + <ul class="tablist"> + <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="functions.html"><span>Data Fields</span></a></li> + </ul> + </div> +</div> +<div class="header"> + <div class="headertitle"> +<div class="title">Data Structures</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock">Here are the data structures with brief descriptions:</div><table> + <tr><td class="indexkey"><a class="el" href="struct_s_f_m_t___t.html">SFMT_T</a></td><td class="indexvalue">SFMT internal state </td></tr> + <tr><td class="indexkey"><a class="el" href="union_w128___t.html">W128_T</a></td><td class="indexvalue">128-bit data structure </td></tr> +</table> +</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> diff --git a/SFMT/html/bc_s.png b/SFMT/html/bc_s.png Binary files differnew file mode 100644 index 0000000..51ba006 --- /dev/null +++ b/SFMT/html/bc_s.png diff --git a/SFMT/html/bdwn.png b/SFMT/html/bdwn.png Binary files differnew file mode 100644 index 0000000..d0b575b --- /dev/null +++ b/SFMT/html/bdwn.png diff --git a/SFMT/html/classes.html b/SFMT/html/classes.html new file mode 100644 index 0000000..357a024 --- /dev/null +++ b/SFMT/html/classes.html @@ -0,0 +1,78 @@ +<!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: Data Structure Index</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 class="current"><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="files.html"><span>Files</span></a></li> + </ul> + </div> + <div id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="functions.html"><span>Data Fields</span></a></li> + </ul> + </div> +</div> +<div class="header"> + <div class="headertitle"> +<div class="title">Data Structure Index</div> </div> +</div><!--header--> +<div class="contents"> +<div class="qindex"><a class="qindex" href="#letter_S">S</a> | <a class="qindex" href="#letter_W">W</a></div> +<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0"> +<tr><td rowspan="2" valign="bottom"><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  S  </div></td></tr></table> +</td><td rowspan="2" valign="bottom"><a name="letter_W"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  W  </div></td></tr></table> +</td><td></td></tr> +<tr><td></td></tr> +<tr><td valign="top"><a class="el" href="struct_s_f_m_t___t.html">SFMT_T</a>   </td><td valign="top"><a class="el" href="union_w128___t.html">W128_T</a>   </td><td></td></tr> +<tr><td></td><td></td><td></td></tr> +</table> +<div class="qindex"><a class="qindex" href="#letter_S">S</a> | <a class="qindex" href="#letter_W">W</a></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> diff --git a/SFMT/html/closed.png b/SFMT/html/closed.png Binary files differnew file mode 100644 index 0000000..b7d4bd9 --- /dev/null +++ b/SFMT/html/closed.png diff --git a/SFMT/html/doxygen.css b/SFMT/html/doxygen.css new file mode 100644 index 0000000..c151fde --- /dev/null +++ b/SFMT/html/doxygen.css @@ -0,0 +1,1012 @@ +/* The standard CSS for doxygen */ + +body, table, div, p, dl { + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; + font-size: 13px; + line-height: 1.3; +} + +/* @group Heading Levels */ + +h1 { + font-size: 150%; +} + +.title { + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2 { + font-size: 120%; +} + +h3 { + font-size: 100%; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +.fragment { + font-family: monospace, fixed; + font-size: 105%; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 8px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #C4CFE5; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; +} + +.memname { + white-space: nowrap; + font-weight: bold; + margin-left: 6px; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 8px; + border-top-left-radius: 8px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 8px; + -moz-border-radius-topleft: 8px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 8px; + -webkit-border-top-left-radius: 8px; + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 2px 5px; + background-color: #FBFCFD; + border-top-width: 0; + /* opera specific markup */ + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 8px; + -moz-border-radius-bottomright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 8px; + -webkit-border-bottom-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + border-spacing: 6px 2px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + + + + +/* @end */ + +/* @group Directory (tree) */ + +/* for the tree view */ + +.ftvtree { + font-family: sans-serif; + margin: 0px; +} + +/* these are for tree view when used as main index */ + +.directory { + font-size: 9pt; + font-weight: bold; + margin: 5px; +} + +.directory h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +/* +The following two styles can be used to replace the root node title +with an image of your choice. Simply uncomment the next two styles, +specify the name of your image and be sure to set 'height' to the +proper pixel height of your image. +*/ + +/* +.directory h3.swap { + height: 61px; + background-repeat: no-repeat; + background-image: url("yourimage.gif"); +} +.directory h3.swap span { + display: none; +} +*/ + +.directory > h3 { + margin-top: 0; +} + +.directory p { + margin: 0px; + white-space: nowrap; +} + +.directory div { + display: none; + margin: 0px; +} + +.directory img { + vertical-align: -30%; +} + +/* these are for tree view when not used as main index */ + +.directory-alt { + font-size: 100%; + font-weight: bold; +} + +.directory-alt h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +.directory-alt > h3 { + margin-top: 0; +} + +.directory-alt p { + margin: 0px; + white-space: nowrap; +} + +.directory-alt div { + display: none; + margin: 0px; +} + +.directory-alt img { + vertical-align: -30%; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + width: 100%; + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + width: 100%; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + margin-left: 5px; + font-size: 8pt; + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 7px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + border-left:4px solid; + padding: 0 0 0 6px; +} + +dl.note +{ + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + border-color: #00D000; +} + +dl.deprecated +{ + border-color: #505050; +} + +dl.todo +{ + border-color: #00C0E0; +} + +dl.test +{ + border-color: #3030E0; +} + +dl.bug +{ + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } + pre.fragment + { + overflow: visible; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + } +} + diff --git a/SFMT/html/doxygen.png b/SFMT/html/doxygen.png Binary files differnew file mode 100644 index 0000000..635ed52 --- /dev/null +++ b/SFMT/html/doxygen.png diff --git a/SFMT/html/files.html b/SFMT/html/files.html new file mode 100644 index 0000000..d583eae --- /dev/null +++ b/SFMT/html/files.html @@ -0,0 +1,72 @@ +<!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: File List</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 class="current"><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="headertitle"> +<div class="title">File List</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock">Here is a list of all files with brief descriptions:</div><table> + <tr><td class="indexkey"><a class="el" href="_s_f_m_t_8c.html">SFMT.c</a></td><td class="indexvalue">SIMD oriented Fast Mersenne Twister(SFMT) </td></tr> + <tr><td class="indexkey"><a class="el" href="_s_f_m_t_8h.html">SFMT.h</a> <a href="_s_f_m_t_8h_source.html">[code]</a></td><td class="indexvalue">SIMD oriented Fast Mersenne Twister(SFMT) pseudorandom number generator using C structure </td></tr> +</table> +</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> diff --git a/SFMT/html/functions.html b/SFMT/html/functions.html new file mode 100644 index 0000000..2a30376 --- /dev/null +++ b/SFMT/html/functions.html @@ -0,0 +1,84 @@ +<!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: Data Fields</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 class="current"><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="files.html"><span>Files</span></a></li> + </ul> + </div> + <div id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="functions.html"><span>Data Fields</span></a></li> + </ul> + </div> + <div id="navrow3" class="tabs2"> + <ul class="tablist"> + <li class="current"><a href="functions.html"><span>All</span></a></li> + <li><a href="functions_vars.html"><span>Variables</span></a></li> + </ul> + </div> +</div> +<div class="contents"> +<div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div><ul> +<li>idx +: <a class="el" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24">SFMT_T</a> +</li> +<li>state +: <a class="el" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">SFMT_T</a> +</li> +<li>u +: <a class="el" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">W128_T</a> +</li> +<li>u64 +: <a class="el" href="union_w128___t.html#ae222444071b31f65e53d6bbc3c3dd39e">W128_T</a> +</li> +</ul> +</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> diff --git a/SFMT/html/functions_vars.html b/SFMT/html/functions_vars.html new file mode 100644 index 0000000..52bdbe0 --- /dev/null +++ b/SFMT/html/functions_vars.html @@ -0,0 +1,84 @@ +<!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: Data Fields - Variables</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 class="current"><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="files.html"><span>Files</span></a></li> + </ul> + </div> + <div id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li class="current"><a href="functions.html"><span>Data Fields</span></a></li> + </ul> + </div> + <div id="navrow3" class="tabs2"> + <ul class="tablist"> + <li><a href="functions.html"><span>All</span></a></li> + <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li> + </ul> + </div> +</div> +<div class="contents"> + <ul> +<li>idx +: <a class="el" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24">SFMT_T</a> +</li> +<li>state +: <a class="el" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">SFMT_T</a> +</li> +<li>u +: <a class="el" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">W128_T</a> +</li> +<li>u64 +: <a class="el" href="union_w128___t.html#ae222444071b31f65e53d6bbc3c3dd39e">W128_T</a> +</li> +</ul> +</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> diff --git a/SFMT/html/globals.html b/SFMT/html/globals.html new file mode 100644 index 0000000..6847d69 --- /dev/null +++ b/SFMT/html/globals.html @@ -0,0 +1,213 @@ +<!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: Globals</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 class="current"><a href="globals.html"><span>Globals</span></a></li> + </ul> + </div> + <div id="navrow3" class="tabs2"> + <ul class="tablist"> + <li class="current"><a href="globals.html"><span>All</span></a></li> + <li><a href="globals_func.html"><span>Functions</span></a></li> + <li><a href="globals_vars.html"><span>Variables</span></a></li> + <li><a href="globals_type.html"><span>Typedefs</span></a></li> + <li><a href="globals_defs.html"><span>Defines</span></a></li> + </ul> + </div> + <div id="navrow4" class="tabs3"> + <ul class="tablist"> + <li><a href="#index_f"><span>f</span></a></li> + <li><a href="#index_g"><span>g</span></a></li> + <li><a href="#index_i"><span>i</span></a></li> + <li><a href="#index_p"><span>p</span></a></li> + <li><a href="#index_s"><span>s</span></a></li> + <li><a href="#index_u"><span>u</span></a></li> + <li><a href="#index_w"><span>w</span></a></li> + </ul> + </div> +</div> +<div class="contents"> +<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div> + +<h3><a class="anchor" id="index_f"></a>- f -</h3><ul> +<li>func1() +: <a class="el" href="_s_f_m_t_8c.html#a4c995d884c911ea326dd7b5dac69df52">SFMT.c</a> +</li> +<li>func2() +: <a class="el" href="_s_f_m_t_8c.html#abbf9b5910c59f1aebf5739f26d87f6a3">SFMT.c</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_g"></a>- g -</h3><ul> +<li>gen_rand_array() +: <a class="el" href="_s_f_m_t_8c.html#a6bc561a0aa50307534d7e6dd93311d4f">SFMT.c</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_i"></a>- i -</h3><ul> +<li>idxof() +: <a class="el" href="_s_f_m_t_8c.html#a6ceeab85133c3fd7ec95aa85523ff544">SFMT.c</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_p"></a>- p -</h3><ul> +<li>period_certification() +: <a class="el" href="_s_f_m_t_8c.html#a1fb62e08a8633bd2e7d7f1e4374b6815">SFMT.c</a> +</li> +<li>PRIu64 +: <a class="el" href="_s_f_m_t_8h.html#ac582131d7a7c8ee57e73180d1714f9d5">SFMT.h</a> +</li> +<li>PRIx64 +: <a class="el" href="_s_f_m_t_8h.html#aba38357387a474f439428dee1984fc5a">SFMT.h</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_s"></a>- s -</h3><ul> +<li>sfmt_fill_array32() +: <a class="el" href="_s_f_m_t_8h.html#a04f57c1e9a6b5c0c52ac774a50da6c7e">SFMT.h</a> +, <a class="el" href="_s_f_m_t_8c.html#a04f57c1e9a6b5c0c52ac774a50da6c7e">SFMT.c</a> +</li> +<li>sfmt_fill_array64() +: <a class="el" href="_s_f_m_t_8c.html#ab9d6542bb167426bd35591afd32136af">SFMT.c</a> +, <a class="el" href="_s_f_m_t_8h.html#ab9d6542bb167426bd35591afd32136af">SFMT.h</a> +</li> +<li>sfmt_gen_rand_all() +: <a class="el" href="_s_f_m_t_8h.html#a2224d63688cbf9b1f50c01d5d9bb7f29">SFMT.h</a> +, <a class="el" href="_s_f_m_t_8c.html#a2224d63688cbf9b1f50c01d5d9bb7f29">SFMT.c</a> +</li> +<li>sfmt_genrand_real1() +: <a class="el" href="_s_f_m_t_8h.html#ac8f1ec46b29372bbd2dd311ce2887ebf">SFMT.h</a> +</li> +<li>sfmt_genrand_real2() +: <a class="el" href="_s_f_m_t_8h.html#a3e68d5e08ce1841614dbd93cc4cfa251">SFMT.h</a> +</li> +<li>sfmt_genrand_real3() +: <a class="el" href="_s_f_m_t_8h.html#a89e02c7333287e1ca650c38983ab6dae">SFMT.h</a> +</li> +<li>sfmt_genrand_res53() +: <a class="el" href="_s_f_m_t_8h.html#aa5b6472af111363e237ae022f6a9ef48">SFMT.h</a> +</li> +<li>sfmt_genrand_res53_mix() +: <a class="el" href="_s_f_m_t_8h.html#a6b92b2435f0182f5fa19f94bb7986d74">SFMT.h</a> +</li> +<li>sfmt_genrand_uint32() +: <a class="el" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110">SFMT.h</a> +</li> +<li>sfmt_genrand_uint64() +: <a class="el" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717">SFMT.h</a> +</li> +<li>sfmt_get_idstring() +: <a class="el" href="_s_f_m_t_8h.html#a6454ae6ac89dbaa2fd5db79be99dd408">SFMT.h</a> +, <a class="el" href="_s_f_m_t_8c.html#a6454ae6ac89dbaa2fd5db79be99dd408">SFMT.c</a> +</li> +<li>sfmt_get_min_array_size32() +: <a class="el" href="_s_f_m_t_8h.html#a4a0698581c5ce4fdb269f814fd438a5f">SFMT.h</a> +, <a class="el" href="_s_f_m_t_8c.html#a4a0698581c5ce4fdb269f814fd438a5f">SFMT.c</a> +</li> +<li>sfmt_get_min_array_size64() +: <a class="el" href="_s_f_m_t_8h.html#a22ebb5ab2cf7e28d2bcf21ffffcc7e39">SFMT.h</a> +, <a class="el" href="_s_f_m_t_8c.html#a22ebb5ab2cf7e28d2bcf21ffffcc7e39">SFMT.c</a> +</li> +<li>sfmt_init_by_array() +: <a class="el" href="_s_f_m_t_8h.html#a28f357a6d2a9cd74cec3c9d458e58475">SFMT.h</a> +, <a class="el" href="_s_f_m_t_8c.html#a28f357a6d2a9cd74cec3c9d458e58475">SFMT.c</a> +</li> +<li>sfmt_init_gen_rand() +: <a class="el" href="_s_f_m_t_8h.html#a674d820db863265836ef9cb203aa4130">SFMT.h</a> +, <a class="el" href="_s_f_m_t_8c.html#a674d820db863265836ef9cb203aa4130">SFMT.c</a> +</li> +<li>sfmt_t +: <a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">SFMT.h</a> +</li> +<li>sfmt_to_real1() +: <a class="el" href="_s_f_m_t_8h.html#a29ed9f4537b9e617737dc32585636000">SFMT.h</a> +</li> +<li>sfmt_to_real2() +: <a class="el" href="_s_f_m_t_8h.html#a4caa47d7e18ec69f30a56f9390fda3e7">SFMT.h</a> +</li> +<li>sfmt_to_real3() +: <a class="el" href="_s_f_m_t_8h.html#a48d93f237f52b2a149ab0d683527aa9c">SFMT.h</a> +</li> +<li>sfmt_to_res53() +: <a class="el" href="_s_f_m_t_8h.html#abd5780d6ef5e9836a63e555e9f7da940">SFMT.h</a> +</li> +<li>sfmt_to_res53_mix() +: <a class="el" href="_s_f_m_t_8h.html#a686d9c9d19ba29e0890abd2127f46339">SFMT.h</a> +</li> +<li>sse2_param_mask +: <a class="el" href="_s_f_m_t_8c.html#a37c6c31e28f6abce2614edb5f7124eec">SFMT.c</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_u"></a>- u -</h3><ul> +<li>UNUSED_VARIABLE +: <a class="el" href="_s_f_m_t_8c.html#a4048bf3892868ded8a28f8cbdd339c09">SFMT.c</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_w"></a>- w -</h3><ul> +<li>w128_t +: <a class="el" href="_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">SFMT.h</a> +</li> +</ul> +</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> diff --git a/SFMT/html/globals_defs.html b/SFMT/html/globals_defs.html new file mode 100644 index 0000000..75903d8 --- /dev/null +++ b/SFMT/html/globals_defs.html @@ -0,0 +1,84 @@ +<!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: Globals</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 class="current"><a href="globals.html"><span>Globals</span></a></li> + </ul> + </div> + <div id="navrow3" class="tabs2"> + <ul class="tablist"> + <li><a href="globals.html"><span>All</span></a></li> + <li><a href="globals_func.html"><span>Functions</span></a></li> + <li><a href="globals_vars.html"><span>Variables</span></a></li> + <li><a href="globals_type.html"><span>Typedefs</span></a></li> + <li class="current"><a href="globals_defs.html"><span>Defines</span></a></li> + </ul> + </div> +</div> +<div class="contents"> + <ul> +<li>PRIu64 +: <a class="el" href="_s_f_m_t_8h.html#ac582131d7a7c8ee57e73180d1714f9d5">SFMT.h</a> +</li> +<li>PRIx64 +: <a class="el" href="_s_f_m_t_8h.html#aba38357387a474f439428dee1984fc5a">SFMT.h</a> +</li> +<li>UNUSED_VARIABLE +: <a class="el" href="_s_f_m_t_8c.html#a4048bf3892868ded8a28f8cbdd339c09">SFMT.c</a> +</li> +</ul> +</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> diff --git a/SFMT/html/globals_func.html b/SFMT/html/globals_func.html new file mode 100644 index 0000000..3ae8add --- /dev/null +++ b/SFMT/html/globals_func.html @@ -0,0 +1,185 @@ +<!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: Globals</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 class="current"><a href="globals.html"><span>Globals</span></a></li> + </ul> + </div> + <div id="navrow3" class="tabs2"> + <ul class="tablist"> + <li><a href="globals.html"><span>All</span></a></li> + <li class="current"><a href="globals_func.html"><span>Functions</span></a></li> + <li><a href="globals_vars.html"><span>Variables</span></a></li> + <li><a href="globals_type.html"><span>Typedefs</span></a></li> + <li><a href="globals_defs.html"><span>Defines</span></a></li> + </ul> + </div> + <div id="navrow4" class="tabs3"> + <ul class="tablist"> + <li><a href="#index_f"><span>f</span></a></li> + <li><a href="#index_g"><span>g</span></a></li> + <li><a href="#index_i"><span>i</span></a></li> + <li><a href="#index_p"><span>p</span></a></li> + <li><a href="#index_s"><span>s</span></a></li> + </ul> + </div> +</div> +<div class="contents"> +  + +<h3><a class="anchor" id="index_f"></a>- f -</h3><ul> +<li>func1() +: <a class="el" href="_s_f_m_t_8c.html#a4c995d884c911ea326dd7b5dac69df52">SFMT.c</a> +</li> +<li>func2() +: <a class="el" href="_s_f_m_t_8c.html#abbf9b5910c59f1aebf5739f26d87f6a3">SFMT.c</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_g"></a>- g -</h3><ul> +<li>gen_rand_array() +: <a class="el" href="_s_f_m_t_8c.html#a6bc561a0aa50307534d7e6dd93311d4f">SFMT.c</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_i"></a>- i -</h3><ul> +<li>idxof() +: <a class="el" href="_s_f_m_t_8c.html#a6ceeab85133c3fd7ec95aa85523ff544">SFMT.c</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_p"></a>- p -</h3><ul> +<li>period_certification() +: <a class="el" href="_s_f_m_t_8c.html#a1fb62e08a8633bd2e7d7f1e4374b6815">SFMT.c</a> +</li> +</ul> + + +<h3><a class="anchor" id="index_s"></a>- s -</h3><ul> +<li>sfmt_fill_array32() +: <a class="el" href="_s_f_m_t_8h.html#a04f57c1e9a6b5c0c52ac774a50da6c7e">SFMT.h</a> +, <a class="el" href="_s_f_m_t_8c.html#a04f57c1e9a6b5c0c52ac774a50da6c7e">SFMT.c</a> +</li> +<li>sfmt_fill_array64() +: <a class="el" href="_s_f_m_t_8c.html#ab9d6542bb167426bd35591afd32136af">SFMT.c</a> +, <a class="el" href="_s_f_m_t_8h.html#ab9d6542bb167426bd35591afd32136af">SFMT.h</a> +</li> +<li>sfmt_gen_rand_all() +: <a class="el" href="_s_f_m_t_8h.html#a2224d63688cbf9b1f50c01d5d9bb7f29">SFMT.h</a> +, <a class="el" href="_s_f_m_t_8c.html#a2224d63688cbf9b1f50c01d5d9bb7f29">SFMT.c</a> +</li> +<li>sfmt_genrand_real1() +: <a class="el" href="_s_f_m_t_8h.html#ac8f1ec46b29372bbd2dd311ce2887ebf">SFMT.h</a> +</li> +<li>sfmt_genrand_real2() +: <a class="el" href="_s_f_m_t_8h.html#a3e68d5e08ce1841614dbd93cc4cfa251">SFMT.h</a> +</li> +<li>sfmt_genrand_real3() +: <a class="el" href="_s_f_m_t_8h.html#a89e02c7333287e1ca650c38983ab6dae">SFMT.h</a> +</li> +<li>sfmt_genrand_res53() +: <a class="el" href="_s_f_m_t_8h.html#aa5b6472af111363e237ae022f6a9ef48">SFMT.h</a> +</li> +<li>sfmt_genrand_res53_mix() +: <a class="el" href="_s_f_m_t_8h.html#a6b92b2435f0182f5fa19f94bb7986d74">SFMT.h</a> +</li> +<li>sfmt_genrand_uint32() +: <a class="el" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110">SFMT.h</a> +</li> +<li>sfmt_genrand_uint64() +: <a class="el" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717">SFMT.h</a> +</li> +<li>sfmt_get_idstring() +: <a class="el" href="_s_f_m_t_8h.html#a6454ae6ac89dbaa2fd5db79be99dd408">SFMT.h</a> +, <a class="el" href="_s_f_m_t_8c.html#a6454ae6ac89dbaa2fd5db79be99dd408">SFMT.c</a> +</li> +<li>sfmt_get_min_array_size32() +: <a class="el" href="_s_f_m_t_8h.html#a4a0698581c5ce4fdb269f814fd438a5f">SFMT.h</a> +, <a class="el" href="_s_f_m_t_8c.html#a4a0698581c5ce4fdb269f814fd438a5f">SFMT.c</a> +</li> +<li>sfmt_get_min_array_size64() +: <a class="el" href="_s_f_m_t_8c.html#a22ebb5ab2cf7e28d2bcf21ffffcc7e39">SFMT.c</a> +, <a class="el" href="_s_f_m_t_8h.html#a22ebb5ab2cf7e28d2bcf21ffffcc7e39">SFMT.h</a> +</li> +<li>sfmt_init_by_array() +: <a class="el" href="_s_f_m_t_8c.html#a28f357a6d2a9cd74cec3c9d458e58475">SFMT.c</a> +, <a class="el" href="_s_f_m_t_8h.html#a28f357a6d2a9cd74cec3c9d458e58475">SFMT.h</a> +</li> +<li>sfmt_init_gen_rand() +: <a class="el" href="_s_f_m_t_8c.html#a674d820db863265836ef9cb203aa4130">SFMT.c</a> +, <a class="el" href="_s_f_m_t_8h.html#a674d820db863265836ef9cb203aa4130">SFMT.h</a> +</li> +<li>sfmt_to_real1() +: <a class="el" href="_s_f_m_t_8h.html#a29ed9f4537b9e617737dc32585636000">SFMT.h</a> +</li> +<li>sfmt_to_real2() +: <a class="el" href="_s_f_m_t_8h.html#a4caa47d7e18ec69f30a56f9390fda3e7">SFMT.h</a> +</li> +<li>sfmt_to_real3() +: <a class="el" href="_s_f_m_t_8h.html#a48d93f237f52b2a149ab0d683527aa9c">SFMT.h</a> +</li> +<li>sfmt_to_res53() +: <a class="el" href="_s_f_m_t_8h.html#abd5780d6ef5e9836a63e555e9f7da940">SFMT.h</a> +</li> +<li>sfmt_to_res53_mix() +: <a class="el" href="_s_f_m_t_8h.html#a686d9c9d19ba29e0890abd2127f46339">SFMT.h</a> +</li> +</ul> +</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> diff --git a/SFMT/html/globals_type.html b/SFMT/html/globals_type.html new file mode 100644 index 0000000..6147ad6 --- /dev/null +++ b/SFMT/html/globals_type.html @@ -0,0 +1,81 @@ +<!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: Globals</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 class="current"><a href="globals.html"><span>Globals</span></a></li> + </ul> + </div> + <div id="navrow3" class="tabs2"> + <ul class="tablist"> + <li><a href="globals.html"><span>All</span></a></li> + <li><a href="globals_func.html"><span>Functions</span></a></li> + <li><a href="globals_vars.html"><span>Variables</span></a></li> + <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li> + <li><a href="globals_defs.html"><span>Defines</span></a></li> + </ul> + </div> +</div> +<div class="contents"> + <ul> +<li>sfmt_t +: <a class="el" href="_s_f_m_t_8h.html#a786e4a6ba82d3cb2f62241d6351d973f">SFMT.h</a> +</li> +<li>w128_t +: <a class="el" href="_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">SFMT.h</a> +</li> +</ul> +</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> diff --git a/SFMT/html/globals_vars.html b/SFMT/html/globals_vars.html new file mode 100644 index 0000000..76c13e2 --- /dev/null +++ b/SFMT/html/globals_vars.html @@ -0,0 +1,78 @@ +<!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: Globals</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 class="current"><a href="globals.html"><span>Globals</span></a></li> + </ul> + </div> + <div id="navrow3" class="tabs2"> + <ul class="tablist"> + <li><a href="globals.html"><span>All</span></a></li> + <li><a href="globals_func.html"><span>Functions</span></a></li> + <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li> + <li><a href="globals_type.html"><span>Typedefs</span></a></li> + <li><a href="globals_defs.html"><span>Defines</span></a></li> + </ul> + </div> +</div> +<div class="contents"> + <ul> +<li>sse2_param_mask +: <a class="el" href="_s_f_m_t_8c.html#a37c6c31e28f6abce2614edb5f7124eec">SFMT.c</a> +</li> +</ul> +</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> diff --git a/SFMT/html/howto-compile.html b/SFMT/html/howto-compile.html new file mode 100644 index 0000000..8d08d1e --- /dev/null +++ b/SFMT/html/howto-compile.html @@ -0,0 +1,493 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!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/html" /> + <title>How to compile SFMT</title> + <style type="text/css"> + BLOCKQUOTE {background-color:#a0ffa0; + padding-left: 1em;} + </style> + </head> + <body> + <h2> How to compile SFMT </h2> + + <p> + This document explains how to compile SFMT for users who + are using UNIX like systems (for example Linux, Free BSD, + cygwin, osx, etc) on terminal. I can't help those who use IDE + (Integrated Development Environment,) please see your IDE's help + to use SIMD feature of your CPU. + </p> + + <h3>1. First Step: Compile test programs using Makefile.</h3> + <h4>1-1. Compile standard C test program.</h4> + <p> + Check if SFMT.c and Makefile are in your current directory. + If not, <strong>cd</strong> to the directory where they exist. + Then, type + </p> + <blockquote> + <pre>make std</pre> + </blockquote> + <p> + If it causes an error, try to type + </p> + <blockquote> + <pre>cc -DSFMT_MEXP=19937 -o test-std-M19937 test.c SFMT.c</pre> + </blockquote> + <p> + or try to type + </p> + <blockquote> + <pre>gcc -DSFMT_MEXP=19937 -o test-std-M19937 test.c SFMT.c</pre> + </blockquote> + <p> + If success, then check the test program. Type + </p> + <blockquote> + <pre>./test-std-M19937 -b32</pre> + </blockquote> + <p> + You will see many random numbers displayed on your screen. + If you want to check these random numbers are correct output, + redirect output to a file and <strong>diff</strong> it with + <strong>SFMT.19937.out.txt</strong>, like this:</p> + <blockquote> + <pre>./test-std-M19937 -b32 > foo.txt +diff -w foo.txt SFMT.19937.out.txt</pre> + </blockquote> + <p> + Silence means they are the same because <strong>diff</strong> + reports the difference of two file. + </p> + <p> + If you want to know the generation speed of SFMT, type + </p> + <blockquote> + <pre>./test-std-M19937 -s</pre> + </blockquote> + <p> + It is very slow. To make it fast, compile it + with <strong>-O3</strong> option. If your compiler is gcc, you + should specify <strong>-fno-strict-aliasing</strong> option + with <strong>-O3</strong>. type + </p> + <blockquote> + <pre>gcc -O3 -fno-strict-aliasing -DSFMT_MEXP=19937 -o test-std-M19937 test.c SFMT.c +./test-std-M19937 -s</pre> + </blockquote> + + <h4>1-2. Compile SSE2 test program.</h4> + <p> + If your CPU supports SSE2 and you can use gcc version 3.4 or later, + you can make test-sse2-Mxxx. To do this, type + </p> + <blockquote> + <pre>make sse2</pre> + </blockquote> + <p>or type</p> + <blockquote> + <pre>gcc -O3 -msse2 -fno-strict-aliasing -DHAVE_SSE2=1 -DSFMT_MEXP=19937 -o test-sse2-M19937 test.c SFMT.c</pre> + </blockquote> + <p>If everything works well,</p> + <blockquote> + <pre>./test-sse2-M19937 -s</pre> + </blockquote> + <p>will show much shorter time than <strong>test-std-M19937 -s</strong>.</p> + + <!--h4>1-3. Compile AltiVec test program.</h4> + <p> + If you are using Macintosh computer with PowerPC G4 or G5, and + your gcc version is later 3.3, you can make test-alti-M19937. To + do this, type + </p> + <blockquote> + <pre>make osx-alti</pre> + </blockquote> + <p>or type</p> + <blockquote> + <pre>gcc -O3 -faltivec -fno-strict-aliasing -DHAVE_ALTIVEC=1 -DSFMT_MEXP=19937 -o test-alti-M19937 test.c</pre> + </blockquote> + <p>If everything works well,</p> + <blockquote> + <pre>./test-alti-M19937 -s</pre> + </blockquote> + <p>shows much shorter time than <strong>test-std-M19937 -s</strong>.</p> + <p>If you are using a CPU which supports AltiVec under Linux, use + <strong>alti</strong> instead of <strong>osx-alti</strong>.</p--> + + <h4>1-4. Compile and check output automatically.</h4> + <p> + To make test program and check 32-bit output + automatically for all supported MEXPs of SFMT, type + </p> + <blockquote> + <pre>make std-check</pre> + </blockquote> + <!--p> + To check test program optimized for 64bit output of big endian CPU, type + </p> + <blockquote> + <pre>make big-check</pre> + </blockquote--> + <p> + To check test program optimized for SSE2, type + </p> + <blockquote> + <pre>make sse2-check</pre> + </blockquote> + <!--p> + To check test program optimized for OSX AltiVec, type + </p> + <blockquote> + <pre>make osx-alti-check</pre> + </blockquote> + <p> + To check test program optimized for OSX AltiVec and 64bit output, type + </p> + <blockquote> + <pre>make osx-altibig-check</pre> + </blockquote--> + <p> + These commands may take some time. + </p> + + <h3>2. Second Step: Use SFMT pseudorandom number generator with + your C program.</h3> + <h4>2-1. Use sequential call and static link.</h4> + <p> + Here is a very simple program <strong>sample1.c</strong> which + calculates PI using Monte-Carlo method. + </p> + <blockquote> + <pre> +#include <stdio.h> +#include <stdlib.h> +#include "SFMT.h" + +int main(int argc, char* argv[]) { + int i, cnt, seed; + double x, y, pi; + const int NUM = 10000; + sfmt_t sfmt; + + if (argc >= 2) { + seed = strtol(argv[1], NULL, 10); + } else { + seed = 12345; + } + cnt = 0; + sfmt_init_gen_rand(&sfmt, seed); + for (i = 0; i < NUM; i++) { + x = sfmt_genrand_res53(&sfmt); + y = sfmt_genrand_res53(&sfmt); + if (x * x + y * y < 1.0) { + cnt++; + } + } + pi = (double)cnt / NUM * 4; + printf("%lf\n", pi); + return 0; +} + </pre> + </blockquote> + <p>To compile <strong>sample1.c</strong> with SFMT.c with the period of + 2<sup>607</sup>, type</p> + <blockquote> + <pre>gcc -O3 -DSFMT_MEXP=607 -o sample1 SFMT.c sample1.c</pre> + </blockquote> + <!--p>If your CPU is BIG ENDIAN you need to type</p> + <blockquote> + <pre>gcc -DSFMT_MEXP=607 -DBIG_ENDIAN64 -o sample1 SFMT.c sample1.c</pre> + </blockquote> + <p>because genrand_res53() uses gen_rand64().</p--> + <p>If your CPU supports SSE2 and you want to use optimized SFMT for + SSE2, type</p> + <blockquote> + <pre>gcc -O3 -msse2 -DHAVE_SSE2 -DSFMT_MEXP=607 -o sample1 SFMT.c sample1.c</pre> + </blockquote> + <!--p>If your CPU supports AltiVec and you want to use optimized SFMT + for AltiVec, type</p> + <blockquote> + <pre>gcc -faltivec -DBIG_ENDIAN64 -DHAVE_ALTIVEC -DSFMT_MEXP=607 -o sample1 SFMT.c sample1.c</pre> + </blockquote--> + + <h4>2-2. Use block call and static link.</h4> + <p> + Here is <strong>sample2.c</strong> which modifies sample1.c. + The block call <strong>fill_array64</strong> is much faster than + sequential call, but it needs an aligned memory. The standard function + to get an aligned memory is <strong>posix_memalign</strong>, but + it isn't usable in every OS. + </p> + <blockquote> + <pre> +#include <stdio.h> +#define _XOPEN_SOURCE 600 +#include <stdlib.h> +#include "SFMT.h" + +int main(int argc, char* argv[]) { + int i, j, cnt, seed; + double x, y, pi; + const int NUM = 10000; + const int R_SIZE = 2 * NUM; + int size; + uint64_t *array; + sfmt_t sfmt; + + if (argc >= 2) { + seed = strtol(argv[1], NULL, 10); + } else { + seed = 12345; + } + size = sfmt_get_min_array_size64(&sfmt); + if (size < R_SIZE) { + size = R_SIZE; + } +#if defined(__APPLE__) || \ + (defined(__FreeBSD__) && __FreeBSD__ >= 3 && __FreeBSD__ <= 6) + printf("malloc used\n"); + array = malloc(sizeof(double) * size); + if (array == NULL) { + printf("can't allocate memory.\n"); + return 1; + } +#elif defined(_POSIX_C_SOURCE) + printf("posix_memalign used\n"); + if (posix_memalign((void **)&array, 16, sizeof(double) * size) != 0) { + printf("can't allocate memory.\n"); + return 1; + } +#elif defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) + printf("memalign used\n"); + array = memalign(16, sizeof(double) * size); + if (array == NULL) { + printf("can't allocate memory.\n"); + return 1; + } +#else /* in this case, gcc doesn't support SSE2 */ + printf("malloc used\n"); + array = malloc(sizeof(double) * size); + if (array == NULL) { + printf("can't allocate memory.\n"); + return 1; + } +#endif + cnt = 0; + j = 0; + sfmt_init_gen_rand(&sfmt, seed); + sfmt_fill_array64(&sfmt, array, size); + for (i = 0; i < NUM; i++) { + x = sfmt_to_res53(array[j++]); + y = sfmt_to_res53(array[j++]); + if (x * x + y * y < 1.0) { + cnt++; + } + } + free(array); + pi = (double)cnt / NUM * 4; + printf("%lf\n", pi); + return 0; +} + </pre> + </blockquote> + <p>To compile <strong>sample2.c</strong> with SFMT.c with the period of + 2<sup>2281</sup>, type</p> + <blockquote> + <pre>gcc -O3 -DSFMT_MEXP=2281 -o sample2 SFMT.c sample2.c</pre> + </blockquote> + <!--p>or </p> + <blockquote> + <pre>gcc -DSFMT_MEXP=2281 -DBIG_ENDIAN64 -o sample2 SFMT.c sample2.c</pre> + </blockquote --> + <p>If your CPU supports SSE2 and you want to use optimized SFMT for + SSE2, type</p> + <blockquote> + <pre>gcc -O3 -msse2 -DHAVE_SSE2 -DSFMT_MEXP=2281 -o sample2 SFMT.c sample2.c</pre> + </blockquote> + <!--p>If your CPU supports AltiVec and you want to use optimized SFMT + for AltiVec, type</p> + <blockquote> + <pre>gcc -faltivec -DHAVE_ALTIVEC -DSFMT_MEXP=2281 -DBIG_ENDIAN64 -o sample2 SFMT.c sample2.c</pre> + </blockquote> + <p>or type</p> + <blockquote> + <pre>gcc -faltivec -DHAVE_ALTIVEC -DBIG_ENDIAN64 -DONLY64 -DSFMT_MEXP=2281 -o sample2 SFMT.c sample2.c</pre> + </blockquote> + <p>The effect of the option -DONLY64 is: + When -DONLY64 option is used, the executive file can generate + 64-bit integers faster but 32-bit output is not supported. + </p--> + <!--h4>2-3. Use sequential call and inline functions.</h4> + <p> + Here is <strong>sample3.c</strong> which modifies sample1.c. + This is very similar to sample1.c. The difference is only one line. + It include <strong>"SFMT.c"</strong> instead of <strong>"SFMT.h" + </strong>. + </p> + <blockquote> + <pre> +#include <stdio.h> +#include <stdlib.h> +#include "SFMT.c" + +int main(int argc, char* argv[]) { + int i, cnt, seed; + double x, y, pi; + const int NUM = 10000; + + if (argc >= 2) { + seed = strtol(argv[1], NULL, 10); + } else { + seed = 12345; + } + cnt = 0; + init_gen_rand(seed); + for (i = 0; i < NUM; i++) { + x = genrand_res53(); + y = genrand_res53(); + if (x * x + y * y < 1.0) { + cnt++; + } + } + pi = (double)cnt / NUM * 4; + printf("%lf\n", pi); + return 0; +} + </pre> + </blockquote> + <p>To compile <strong>sample3.c</strong>, type</p> + <blockquote> + <pre>gcc -DSFMT_MEXP=1279 -o sample3 sample3.c</pre> + </blockquote> + <p> or </p> + <blockquote> + <pre>gcc -DSFMT_MEXP=1279 -DBIG_ENDIAN64 -o sample3 sample3.c</pre> + </blockquote> + <p>If your CPU supports SSE2 and you want to use optimized SFMT for + SSE2, then type</p> + <blockquote> + <pre>gcc -msse2 -DHAVE_SSE2 -DSFMT_MEXP=1279 -o sample3 sample3.c</pre> + </blockquote> + <p>If your CPU supports AltiVec and you want to use optimized SFMT + for AltiVec, type</p> + <blockquote> + <pre>gcc -faltivec -DHAVE_ALTIVEC -DBIG_ENDIAN64 -DSFMT_MEXP=1279 -o sample3 sample3.c</pre> + </blockquote> + <p>or type</p> + <blockquote> + <pre>gcc -faltivec -DHAVE_ALTIVEC -DBIG_ENDIAN64 -DONLY64 -DSFMT_MEXP=1279 -o sample3 sample3.c</pre> + </blockquote--> + + <h4>2-4. Initialize SFMT using sfmt_init_by_array function.</h4> + <p> + Here is <strong>sample4.c</strong> which modifies sample1.c. + The 32-bit integer seed can only make 2<sup>32</sup> kinds of + initial state, to avoid this problem, SFMT + provides <strong>sfmt_init_by_array</strong> function. This sample + uses sfmt_init_by_array function which initialize the internal state + array with an array of 32-bit. The size of an array can be + larger than the internal state array and all elements of the + array are used for initialization, but too large array is + wasteful. + </p> + <blockquote> + <pre> +#include <stdio.h> +#include <string.h> +#include "SFMT.h" + +int main(int argc, char* argv[]) { + int i, cnt, seed_cnt; + double x, y, pi; + const int NUM = 10000; + uint32_t seeds[100]; + sfmt_t sfmt; + + if (argc >= 2) { + seed_cnt = 0; + for (i = 0; (i < 100) && (i < strlen(argv[1])); i++) { + seeds[i] = argv[1][i]; + seed_cnt++; + } + } else { + seeds[0] = 12345; + seed_cnt = 1; + } + cnt = 0; + sfmt_init_by_array(&sfmt, seeds, seed_cnt); + for (i = 0; i < NUM; i++) { + x = sfmt_genrand_res53(&sfmt); + y = sfmt_genrand_res53(&sfmt); + if (x * x + y * y < 1.0) { + cnt++; + } + } + pi = (double)cnt / NUM * 4; + printf("%lf\n", pi); + return 0; +} + </pre> + </blockquote> + <p>To compile <strong>sample4.c</strong>, type</p> + <blockquote> + <pre>gcc -O3 -DSFMT_MEXP=19937 -o sample4 SFMT.c sample4.c</pre> + </blockquote> + <!--p>or</p> + <blockquote> + <pre>gcc -DSFMT_MEXP=19937 -DBIG_ENDIAN64 -o sample4 SFMT.c sample4.c</pre> + </blockquote--> + <p>Now, seed can be a string. Like this:</p> + <blockquote> + <pre>./sample4 your-full-name</pre> + </blockquote> + <h3>Appendix: C preprocessor definitions</h3> + <p> + Here is a list of C preprocessor definitions that users can + specify to control code generation. These macros must be set + just after -D compiler option. + </p> + <dl> + <dt>SFMT_MEXP</dt> + <dd>This macro is required. This macro means Mersenne exponent + and the period of generated code will be 2<sup>SFMT_MEXP</sup>-1. + SFMT_MEXP must be one of 607, 1279, 2281, 4253, 11213, 19937, + 44497, 86243, 132049, 216091. + </dd> + <dt>HAVE_SSE2</dt> + <dd>This is optional. If this macro is specified, optimized code + for SSE2 will be generated.</dd> + <dt>HAVE_ALTIVEC</dt> + <dd>This is optional. If this macro is specified, optimized code + for AltiVec will be generated. This macro automatically turns on + BIG_ENDIAN64 macro. <b>This macro of SFMT ver. 1.4 is not tested + at all.</b></dd> + <dt>BIG_ENDIAN64</dt> + <dd>This macro is required when your CPU is BIG ENDIAN and you + use 64-bit output. If __BIG_ENDIAN__ macro is defined, this macro + is automatically turned on. GCC defines __BIG_ENDIAN__ macro on + BIG ENDIAN CPUs. <b>This macro of SFMT ver. 1.4 is not tested + at all.</b></dd> + <dt>ONLY64</dt> + <dd>This macro is optional. If this macro is specified, + optimized code for 64-bit output for BIG ENDIAN CPUs will be + generated and code for 32-bit output won't be + generated. BIG_ENDIAN64 macro must be specified with this macro + by user or automatically. <b>This macro of SFMT ver. 1.4 is not tested + at all.</b></dd> + </dl> + <table border="1" align="center"> + <tr><td></td><td>32-bit output</td><td>LITTLE ENDIAN 64-bit output</td> + <td>BIG ENDIAN 64-bit output</td></tr> + <tr><td>required</td><td>SFMT_MEXP</td><td>SFMT_MEXP</td><td>SFMT_MEXP, + <strong>BIG_ENDIAN64</strong></td></tr> + <tr><td>optional</td><td>HAVE_SSE2, + HAVE_ALTIVEC</td><td>HAVE_SSE2</td><td>HAVE_ALTIVEC, ONLY64</td> + </tr> + </table> + </body> +</html> diff --git a/SFMT/html/index.html b/SFMT/html/index.html new file mode 100644 index 0000000..3c9dcff --- /dev/null +++ b/SFMT/html/index.html @@ -0,0 +1,123 @@ +<!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: Main Page</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 class="current"><a href="index.html"><span>Main Page</span></a></li> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="files.html"><span>Files</span></a></li> + </ul> + </div> +</div> +<div class="header"> + <div class="headertitle"> +<div class="title">SFMT Documentation</div> </div> +</div><!--header--> +<div class="contents"> +<div class="textblock"><p>This is SIMD oriented Fast Mersenne Twister pseudorandom number generator(SFMT). This Project provides pseudorandom number generators of various Mersenne Prime Period: from 2<sup>607</sup>-1 to 2<sup>216091</sup>-1.</p> +<p>Please check endianness in source codes carefully, if you are using BIG ENDIAN.</p> +<ul> +<li>void <a class="el" href="_s_f_m_t_8h.html#a674d820db863265836ef9cb203aa4130" title="This function initializes the internal state array with a 32-bit integer seed.">sfmt_init_gen_rand()</a> initializes the generator with a 32-bit integer seed.</li> +<li>void <a class="el" href="_s_f_m_t_8h.html#a28f357a6d2a9cd74cec3c9d458e58475" title="This function initializes the internal state array, with an array of 32-bit integers used as the seed...">sfmt_init_by_array()</a> initializes the generator with an array of 32-bit integers as the seeds.</li> +<li>uint32_t <a class="el" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110" title="This function generates and returns 32-bit pseudorandom number.">sfmt_genrand_uint32()</a> generates and returns a pseudorandom 32-bit unsigned integer.</li> +<li>uint32_t <a class="el" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717" title="This function generates and returns 64-bit pseudorandom number.">sfmt_genrand_uint64()</a> generates and returns a pseudorandom 64-bit unsigned integer.</li> +<li>void <a class="el" href="_s_f_m_t_8h.html#a04f57c1e9a6b5c0c52ac774a50da6c7e" title="This function generates pseudorandom 32-bit integers in the specified array[] by one call...">sfmt_fill_array32()</a> fills the user-specified array with 32-bit pseudorandom integers.</li> +<li>void <a class="el" href="_s_f_m_t_8h.html#ab9d6542bb167426bd35591afd32136af" title="This function generates pseudorandom 64-bit integers in the specified array[] by one call...">sfmt_fill_array64()</a> fills the user-specified array with 64-bit pseudorandom integers.</li> +<li>inline static double <a class="el" href="_s_f_m_t_8h.html#a29ed9f4537b9e617737dc32585636000" title="converts an unsigned 32-bit number to a double on [0,1]-real-interval.">sfmt_to_real1(uint32_t v)</a> convert v to double on [0,1]-real-interval.</li> +<li>inline static double <a class="el" href="_s_f_m_t_8h.html#ac8f1ec46b29372bbd2dd311ce2887ebf" title="generates a random number on [0,1]-real-interval">sfmt_genrand_real1(sfmt_t * sfmt)</a> generates a random number on [0,1]-real-interval.</li> +<li>inline static double <a class="el" href="_s_f_m_t_8h.html#a4caa47d7e18ec69f30a56f9390fda3e7" title="converts an unsigned 32-bit integer to a double on [0,1)-real-interval.">sfmt_to_real2(uint32_t v)</a> convert v to double on [0,1)-real-interval.</li> +<li>inline static double <a class="el" href="_s_f_m_t_8h.html#a3e68d5e08ce1841614dbd93cc4cfa251" title="generates a random number on [0,1)-real-interval">sfmt_genrand_real2(sfmt_t * sfmt)</a> generates a random number on [0,1)-real-interval.</li> +<li>inline static double <a class="el" href="_s_f_m_t_8h.html#a48d93f237f52b2a149ab0d683527aa9c" title="converts an unsigned 32-bit integer to a double on (0,1)-real-interval.">sfmt_to_real3(uint32_t v)</a> convert v to double on (0,1)-real-interval.</li> +<li>inline static double <a class="el" href="_s_f_m_t_8h.html#a89e02c7333287e1ca650c38983ab6dae" title="generates a random number on (0,1)-real-interval">sfmt_genrand_real3(sfmt_t * sfmt)</a> generates a random number on (0,1)-real-interval.</li> +<li>inline static double <a class="el" href="_s_f_m_t_8h.html#abd5780d6ef5e9836a63e555e9f7da940" title="converts an unsigned 32-bit integer to double on [0,1) with 53-bit resolution.">sfmt_to_res53(uint64_t v)</a> convert v to double on [0,1) with 53-bit resolution</li> +<li>inline static double <a class="el" href="_s_f_m_t_8h.html#aa5b6472af111363e237ae022f6a9ef48" title="generates a random number on [0,1) with 53-bit resolution">sfmt_genrand_res53(sfmt_t * sfmt)</a> generates a random number on [0,1) with 53-bit resolution</li> +<li>inline static double <a class="el" href="_s_f_m_t_8h.html#a686d9c9d19ba29e0890abd2127f46339" title="generates a random number on [0,1) with 53-bit resolution from two 32 bit integers">sfmt_to_res53_mix(uint32_t x, uint32_t y)</a> convert v to double on [0,1) with 53-bit resolution from two 32bit integers.</li> +<li><p class="startli">inline static double <a class="el" href="_s_f_m_t_8h.html#a6b92b2435f0182f5fa19f94bb7986d74" title="generates a random number on [0,1) with 53-bit resolution using two 32bit integers.">sfmt_genrand_res53_mix(sfmt_t * sfmt)</a> generates a random number on [0,1) with 53-bit resolution using 32bit generation.</p> +<p class="startli">Each SFMT.xxx.out.txt file contains 1000 outputs of <a class="el" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110" title="This function generates and returns 32-bit pseudorandom number.">sfmt_genrand_uint32()</a> initialized by sfmt_init_gen_rand(1234), and 1000 outputs of <a class="el" href="_s_f_m_t_8h.html#a320ad3d4b201c8b5525871b5d4c9d110" title="This function generates and returns 32-bit pseudorandom number.">sfmt_genrand_uint32()</a> initialized by <a class="el" href="_s_f_m_t_8h.html#a28f357a6d2a9cd74cec3c9d458e58475" title="This function initializes the internal state array, with an array of 32-bit integers used as the seed...">sfmt_init_by_array()</a> with an array of {0x1234, 0x5678, 0x9abc, 0xdef0}.</p> +<p class="startli">see <a href="howto-compile.html">How to compile</a> to compile your program with SFMT optimized for SIMD.</p> +</li> +</ul> +<dl class="section author"><dt>Author:</dt><dd>Mutsuo Saito (<a href="#" onclick="location.href='mai'+'lto:'+'sai'+'to'+'@ma'+'th'+'.sc'+'i.'+'hir'+'os'+'him'+'a-'+'u.a'+'c.'+'jp'; return false;">saito<span style="display: none;">.nosp@m.</span>@mat<span style="display: none;">.nosp@m.</span>h.sci<span style="display: none;">.nosp@m.</span>.hir<span style="display: none;">.nosp@m.</span>oshim<span style="display: none;">.nosp@m.</span>a-u.<span style="display: none;">.nosp@m.</span>ac.jp</a>) (Hiroshima University) </dd> +<dd> +Makoto Matsumoto (The University of Tokyo)</dd></dl> +<dl class="section date"><dt>Date:</dt><dd>2012-6-27</dd></dl> +<p>Copyright (C) 2006, 2007 Mutsuo Saito, Makoto Matsumoto and Hiroshima University. All rights reserved. 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 class="fragment"><pre class="fragment">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. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the names of Hiroshima University, The University of + Tokyo nor the names of its contributors may be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +</pre></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> diff --git a/SFMT/html/jquery.js b/SFMT/html/jquery.js new file mode 100644 index 0000000..90b3a2b --- /dev/null +++ b/SFMT/html/jquery.js @@ -0,0 +1,64 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){ +var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0) +{I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function() +{G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); + +/* + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this); +/* + * jQuery UI 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ +jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m<n.length;m++){if(j.options[n[m][0]]){n[m][1].apply(j.element,k)}}}},contains:function(k,j){return document.compareDocumentPosition?k.compareDocumentPosition(j)&16:k!==j&&k.contains(j)},hasScroll:function(m,k){if(c(m).css("overflow")=="hidden"){return false}var j=(k&&k=="left")?"scrollLeft":"scrollTop",l=false;if(m[j]>0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/* * jQuery UI Resizable 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * ui.core.js + */ +(function(c){c.widget("ui.resizable",c.extend({},c.ui.mouse,{_init:function(){var e=this,j=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(j.aspectRatio),aspectRatio:j.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:j.helper||j.ghost||j.animate?j.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&c.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})}this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f<k.length;f++){var h=c.trim(k[f]),d="ui-resizable-"+h;var g=c('<div class="ui-resizable-handle '+d+'"></div>');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidth<k.width),l=a(k.height)&&h.maxHeight&&(h.maxHeight<k.height),g=a(k.width)&&h.minWidth&&(h.minWidth>k.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e<this._proportionallyResizeElements.length;e++){var g=this._proportionallyResizeElements[e];if(!this.borderDif){var d=[g.css("borderTopWidth"),g.css("borderRightWidth"),g.css("borderBottomWidth"),g.css("borderLeftWidth")],h=[g.css("paddingTop"),g.css("paddingRight"),g.css("paddingBottom"),g.css("paddingLeft")];this.borderDif=c.map(d,function(k,m){var l=parseInt(k,10)||0,n=parseInt(h[m],10)||0;return l+n})}if(c.browser.msie&&!(!(c(f).is(":hidden")||c(f).parents(":hidden").length))){continue}g.css({height:(f.height()-this.borderDif[0]-this.borderDif[2])||0,width:(f.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var e=this.element,h=this.options;this.elementOffset=e.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,t){var s=(q[t]||0)+(j[t]||0);if(s&&s>=0){o[t]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)) +{s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery);; +/** + * jQuery.ScrollTo - Easy element scrolling using jQuery. + * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com + * Licensed under GPL license (http://www.opensource.org/licenses/gpl-license.php). + * Date: 2/8/2008 + * @author Ariel Flesler + * @version 1.3.2 + */ +;(function($){var o=$.scrollTo=function(a,b,c){o.window().scrollTo(a,b,c)};o.defaults={axis:'y',duration:1};o.window=function(){return $($.browser.safari?'body':'html')};$.fn.scrollTo=function(l,m,n){if(typeof m=='object'){n=m;m=0}n=$.extend({},o.defaults,n);m=m||n.speed||n.duration;n.queue=n.queue&&n.axis.length>1;if(n.queue)m/=2;n.offset=j(n.offset);n.over=j(n.over);return this.each(function(){var a=this,b=$(a),t=l,c,d={},w=b.is('html,body');switch(typeof t){case'number':case'string':if(/^([+-]=)?\d+(px)?$/.test(t)){t=j(t);break}t=$(t,this);case'object':if(t.is||t.style)c=(t=$(t)).offset()}$.each(n.axis.split(''),function(i,f){var P=f=='x'?'Left':'Top',p=P.toLowerCase(),k='scroll'+P,e=a[k],D=f=='x'?'Width':'Height';if(c){d[k]=c[p]+(w?0:e-b.offset()[p]);if(n.margin){d[k]-=parseInt(t.css('margin'+P))||0;d[k]-=parseInt(t.css('border'+P+'Width'))||0}d[k]+=n.offset[p]||0;if(n.over[p])d[k]+=t[D.toLowerCase()]()*n.over[p]}else d[k]=t[p];if(/^\d+$/.test(d[k]))d[k]=d[k]<=0?0:Math.min(d[k],h(D));if(!i&&n.queue){if(e!=d[k])g(n.onAfterFirst);delete d[k]}});g(n.onAfter);function g(a){b.animate(d,m,n.easing,a&&function(){a.call(this,l)})};function h(D){var b=w?$.browser.opera?document.body:document.documentElement:a;return b['scroll'+D]-b['client'+D]}})};function j(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery); + diff --git a/SFMT/html/mainpage_8txt.html b/SFMT/html/mainpage_8txt.html new file mode 100644 index 0000000..fadc11c --- /dev/null +++ b/SFMT/html/mainpage_8txt.html @@ -0,0 +1,68 @@ +<!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: mainpage.txt 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="headertitle"> +<div class="title">mainpage.txt File Reference</div> </div> +</div><!--header--> +<div class="contents"> +</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> diff --git a/SFMT/html/nav_f.png b/SFMT/html/nav_f.png Binary files differnew file mode 100644 index 0000000..1b07a16 --- /dev/null +++ b/SFMT/html/nav_f.png diff --git a/SFMT/html/nav_h.png b/SFMT/html/nav_h.png Binary files differnew file mode 100644 index 0000000..01f5fa6 --- /dev/null +++ b/SFMT/html/nav_h.png diff --git a/SFMT/html/open.png b/SFMT/html/open.png Binary files differnew file mode 100644 index 0000000..7b35d2c --- /dev/null +++ b/SFMT/html/open.png diff --git a/SFMT/html/struct_s_f_m_t___t.html b/SFMT/html/struct_s_f_m_t___t.html new file mode 100644 index 0000000..00b8124 --- /dev/null +++ b/SFMT/html/struct_s_f_m_t___t.html @@ -0,0 +1,123 @@ +<!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_T Struct 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 class="current"><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="files.html"><span>Files</span></a></li> + </ul> + </div> + <div id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="functions.html"><span>Data Fields</span></a></li> + </ul> + </div> +</div> +<div class="header"> + <div class="summary"> +<a href="#pub-attribs">Data Fields</a> </div> + <div class="headertitle"> +<div class="title">SFMT_T Struct Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>SFMT internal state. + <a href="struct_s_f_m_t___t.html#details">More...</a></p> + +<p><code>#include <<a class="el" href="_s_f_m_t_8h_source.html">SFMT.h</a>></code></p> +<table class="memberdecls"> +<tr><td colspan="2"><h2><a name="pub-attribs"></a> +Data Fields</h2></td></tr> +<tr class="memitem:a7bf9ad40f20e770d1e703b70248a5386"><td class="memItemLeft" align="right" valign="top"><a class="el" href="_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">state</a> [SFMT_N]</td></tr> +<tr class="memdesc:a7bf9ad40f20e770d1e703b70248a5386"><td class="mdescLeft"> </td><td class="mdescRight">the 128-bit internal state array <a href="#a7bf9ad40f20e770d1e703b70248a5386"></a><br/></td></tr> +<tr class="memitem:adff6ae93dbd68c2f74a96b99367aba24"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24">idx</a></td></tr> +<tr class="memdesc:adff6ae93dbd68c2f74a96b99367aba24"><td class="mdescLeft"> </td><td class="mdescRight">index counter to the 32-bit internal state array <a href="#adff6ae93dbd68c2f74a96b99367aba24"></a><br/></td></tr> +</table> +<hr/><a name="details" id="details"></a><h2>Detailed Description</h2> +<div class="textblock"><p>SFMT internal state. </p> +</div><hr/><h2>Field Documentation</h2> +<a class="anchor" id="adff6ae93dbd68c2f74a96b99367aba24"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">int <a class="el" href="struct_s_f_m_t___t.html#adff6ae93dbd68c2f74a96b99367aba24">SFMT_T::idx</a></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>index counter to the 32-bit internal state array </p> + +<p>Referenced by <a class="el" href="_s_f_m_t_8c.html#a04f57c1e9a6b5c0c52ac774a50da6c7e">sfmt_fill_array32()</a>, <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#a320ad3d4b201c8b5525871b5d4c9d110">sfmt_genrand_uint32()</a>, <a class="el" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717">sfmt_genrand_uint64()</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="a7bf9ad40f20e770d1e703b70248a5386"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="_s_f_m_t_8h.html#ab1ee414cba9ca0f33a3716e7a92c2b79">w128_t</a> <a class="el" href="struct_s_f_m_t___t.html#a7bf9ad40f20e770d1e703b70248a5386">SFMT_T::state</a>[SFMT_N]</td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>the 128-bit internal state array </p> + +<p>Referenced by <a class="el" href="_s_f_m_t_8c.html#a6bc561a0aa50307534d7e6dd93311d4f">gen_rand_array()</a>, <a class="el" href="_s_f_m_t_8c.html#a1fb62e08a8633bd2e7d7f1e4374b6815">period_certification()</a>, <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#a320ad3d4b201c8b5525871b5d4c9d110">sfmt_genrand_uint32()</a>, <a class="el" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717">sfmt_genrand_uint64()</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> +<hr/>The documentation for this struct was generated from the following file:<ul> +<li><a class="el" href="_s_f_m_t_8h_source.html">SFMT.h</a></li> +</ul> +</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> diff --git a/SFMT/html/tab_a.png b/SFMT/html/tab_a.png Binary files differnew file mode 100644 index 0000000..2d99ef2 --- /dev/null +++ b/SFMT/html/tab_a.png diff --git a/SFMT/html/tab_b.png b/SFMT/html/tab_b.png Binary files differnew file mode 100644 index 0000000..b2c3d2b --- /dev/null +++ b/SFMT/html/tab_b.png diff --git a/SFMT/html/tab_h.png b/SFMT/html/tab_h.png Binary files differnew file mode 100644 index 0000000..c11f48f --- /dev/null +++ b/SFMT/html/tab_h.png diff --git a/SFMT/html/tab_s.png b/SFMT/html/tab_s.png Binary files differnew file mode 100644 index 0000000..978943a --- /dev/null +++ b/SFMT/html/tab_s.png diff --git a/SFMT/html/tabs.css b/SFMT/html/tabs.css new file mode 100644 index 0000000..2192056 --- /dev/null +++ b/SFMT/html/tabs.css @@ -0,0 +1,59 @@ +.tabs, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 13px; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #283A5D; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} diff --git a/SFMT/html/union_w128___t.html b/SFMT/html/union_w128___t.html new file mode 100644 index 0000000..528cdb8 --- /dev/null +++ b/SFMT/html/union_w128___t.html @@ -0,0 +1,117 @@ +<!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: W128_T Union 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 class="current"><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="files.html"><span>Files</span></a></li> + </ul> + </div> + <div id="navrow2" class="tabs2"> + <ul class="tablist"> + <li><a href="annotated.html"><span>Data Structures</span></a></li> + <li><a href="functions.html"><span>Data Fields</span></a></li> + </ul> + </div> +</div> +<div class="header"> + <div class="summary"> +<a href="#pub-attribs">Data Fields</a> </div> + <div class="headertitle"> +<div class="title">W128_T Union Reference</div> </div> +</div><!--header--> +<div class="contents"> + +<p>128-bit data structure + <a href="union_w128___t.html#details">More...</a></p> + +<p><code>#include <<a class="el" href="_s_f_m_t_8h_source.html">SFMT.h</a>></code></p> +<table class="memberdecls"> +<tr><td colspan="2"><h2><a name="pub-attribs"></a> +Data Fields</h2></td></tr> +<tr class="memitem:a09193c7aed9f152649d36a78792ffd11"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">u</a> [4]</td></tr> +<tr class="memitem:ae222444071b31f65e53d6bbc3c3dd39e"><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="union_w128___t.html#ae222444071b31f65e53d6bbc3c3dd39e">u64</a> [2]</td></tr> +</table> +<hr/><a name="details" id="details"></a><h2>Detailed Description</h2> +<div class="textblock"><p>128-bit data structure </p> +</div><hr/><h2>Field Documentation</h2> +<a class="anchor" id="a09193c7aed9f152649d36a78792ffd11"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint32_t <a class="el" href="union_w128___t.html#a09193c7aed9f152649d36a78792ffd11">W128_T::u</a>[4]</td> + </tr> + </table> +</div> +<div class="memdoc"> + +<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_8h.html#a320ad3d4b201c8b5525871b5d4c9d110">sfmt_genrand_uint32()</a>, <a class="el" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717">sfmt_genrand_uint64()</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="ae222444071b31f65e53d6bbc3c3dd39e"></a> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">uint64_t <a class="el" href="union_w128___t.html#ae222444071b31f65e53d6bbc3c3dd39e">W128_T::u64</a>[2]</td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p>Referenced by <a class="el" href="_s_f_m_t_8h.html#ae99df9ac1b48be1370492d448504b717">sfmt_genrand_uint64()</a>.</p> + +</div> +</div> +<hr/>The documentation for this union was generated from the following file:<ul> +<li><a class="el" href="_s_f_m_t_8h_source.html">SFMT.h</a></li> +</ul> +</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> |