Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-release > by-pkgid > 0a67b807a02637f2cae68649d519a89d > files > 1233

libcryptopp-devel-7.0.0-1.mga7.armv7hl.rpm

<!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"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Crypto++: MersenneTwister&lt; K, M, N, F, S &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Crypto++
   &#160;<span id="projectnumber">7.0</span>
   </div>
   <div id="projectbrief">Free&nbsp;C&#43;&#43;&nbsp;class&nbsp;library&nbsp;of&nbsp;cryptographic&nbsp;schemes</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="class_mersenne_twister-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">MersenneTwister&lt; K, M, N, F, S &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Mersenne Twister class for Monte-Carlo simulations.  
 <a href="class_mersenne_twister.html#details">More...</a></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for MersenneTwister&lt; K, M, N, F, S &gt;:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
 <div class="center">
  <img src="class_mersenne_twister.png" usemap="#MersenneTwister_3C_20K_2C_20M_2C_20N_2C_20F_2C_20S_20_3E_map" alt=""/>
  <map id="MersenneTwister_3C_20K_2C_20M_2C_20N_2C_20F_2C_20S_20_3E_map" name="MersenneTwister_3C_20K_2C_20M_2C_20N_2C_20F_2C_20S_20_3E_map">
<area href="class_random_number_generator.html" title="Interface for random number generators. " alt="RandomNumberGenerator" shape="rect" coords="0,112,213,136"/>
<area href="class_algorithm.html" title="Interface for all crypto algorithms. " alt="Algorithm" shape="rect" coords="0,56,213,80"/>
<area href="class_clonable.html" title="Interface for cloning objects. " alt="Clonable" shape="rect" coords="0,0,213,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa85c73bd3d3fd3c5a8bf8ad6353cc866"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mersenne_twister.html#aa85c73bd3d3fd3c5a8bf8ad6353cc866">MersenneTwister</a> (word32 seed=S)</td></tr>
<tr class="memdesc:aa85c73bd3d3fd3c5a8bf8ad6353cc866"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a Mersenne Twister.  <a href="#aa85c73bd3d3fd3c5a8bf8ad6353cc866">More...</a><br /></td></tr>
<tr class="separator:aa85c73bd3d3fd3c5a8bf8ad6353cc866"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f09a181e0e4785ab95028a8ec6a53d8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mersenne_twister.html#a9f09a181e0e4785ab95028a8ec6a53d8">CanIncorporateEntropy</a> () const</td></tr>
<tr class="memdesc:a9f09a181e0e4785ab95028a8ec6a53d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if a generator can accept additional entropy.  <a href="#a9f09a181e0e4785ab95028a8ec6a53d8">More...</a><br /></td></tr>
<tr class="separator:a9f09a181e0e4785ab95028a8ec6a53d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d2ce0dc810e53a47b0c066f9229ec07"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mersenne_twister.html#a1d2ce0dc810e53a47b0c066f9229ec07">IncorporateEntropy</a> (const byte *input, size_t length)</td></tr>
<tr class="memdesc:a1d2ce0dc810e53a47b0c066f9229ec07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update RNG state with additional unpredictable values.  <a href="#a1d2ce0dc810e53a47b0c066f9229ec07">More...</a><br /></td></tr>
<tr class="separator:a1d2ce0dc810e53a47b0c066f9229ec07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cc6a68d00adaca7f72cdbf72b19699d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mersenne_twister.html#a2cc6a68d00adaca7f72cdbf72b19699d">GenerateBlock</a> (byte *output, size_t size)</td></tr>
<tr class="memdesc:a2cc6a68d00adaca7f72cdbf72b19699d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate random array of bytes.  <a href="#a2cc6a68d00adaca7f72cdbf72b19699d">More...</a><br /></td></tr>
<tr class="separator:a2cc6a68d00adaca7f72cdbf72b19699d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf08e5d038201e24b423c0563fdedbb0"><td class="memItemLeft" align="right" valign="top">word32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mersenne_twister.html#adf08e5d038201e24b423c0563fdedbb0">GenerateWord32</a> (word32 min=0, word32 max=0xffffffffL)</td></tr>
<tr class="memdesc:adf08e5d038201e24b423c0563fdedbb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random 32-bit word in the range min to max, inclusive.  <a href="#adf08e5d038201e24b423c0563fdedbb0">More...</a><br /></td></tr>
<tr class="separator:adf08e5d038201e24b423c0563fdedbb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ea210a209dea0f0a2719538d6dae0a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_mersenne_twister.html#a9ea210a209dea0f0a2719538d6dae0a4">DiscardBytes</a> (size_t n)</td></tr>
<tr class="memdesc:a9ea210a209dea0f0a2719538d6dae0a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate and discard n bytes.  <a href="#a9ea210a209dea0f0a2719538d6dae0a4">More...</a><br /></td></tr>
<tr class="separator:a9ea210a209dea0f0a2719538d6dae0a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_random_number_generator"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_random_number_generator')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_random_number_generator.html">RandomNumberGenerator</a></td></tr>
<tr class="memitem:ada0f7c437b0c8e6ba94ebcd75bff4bda inherit pub_methods_class_random_number_generator"><td class="memItemLeft" align="right" valign="top">virtual byte&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_random_number_generator.html#ada0f7c437b0c8e6ba94ebcd75bff4bda">GenerateByte</a> ()</td></tr>
<tr class="memdesc:ada0f7c437b0c8e6ba94ebcd75bff4bda inherit pub_methods_class_random_number_generator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate new random byte and return it.  <a href="class_random_number_generator.html#ada0f7c437b0c8e6ba94ebcd75bff4bda">More...</a><br /></td></tr>
<tr class="separator:ada0f7c437b0c8e6ba94ebcd75bff4bda inherit pub_methods_class_random_number_generator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace592244cfbd6c18398ea6c75857532e inherit pub_methods_class_random_number_generator"><td class="memItemLeft" align="right" valign="top">virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_random_number_generator.html#ace592244cfbd6c18398ea6c75857532e">GenerateBit</a> ()</td></tr>
<tr class="memdesc:ace592244cfbd6c18398ea6c75857532e inherit pub_methods_class_random_number_generator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate new random bit and return it.  <a href="class_random_number_generator.html#ace592244cfbd6c18398ea6c75857532e">More...</a><br /></td></tr>
<tr class="separator:ace592244cfbd6c18398ea6c75857532e inherit pub_methods_class_random_number_generator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cc474006e2c7383ec20cc4d0c2abbaf inherit pub_methods_class_random_number_generator"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_random_number_generator.html#a5cc474006e2c7383ec20cc4d0c2abbaf">GenerateIntoBufferedTransformation</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, const std::string &amp;channel, lword length)</td></tr>
<tr class="memdesc:a5cc474006e2c7383ec20cc4d0c2abbaf inherit pub_methods_class_random_number_generator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate random bytes into a <a class="el" href="class_buffered_transformation.html" title="Interface for buffered transformations. ">BufferedTransformation</a>.  <a href="class_random_number_generator.html#a5cc474006e2c7383ec20cc4d0c2abbaf">More...</a><br /></td></tr>
<tr class="separator:a5cc474006e2c7383ec20cc4d0c2abbaf inherit pub_methods_class_random_number_generator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff937f93b0b1e17e7905494ef060fce2 inherit pub_methods_class_random_number_generator"><td class="memTemplParams" colspan="2">template&lt;class IT &gt; </td></tr>
<tr class="memitem:aff937f93b0b1e17e7905494ef060fce2 inherit pub_methods_class_random_number_generator"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_random_number_generator.html#aff937f93b0b1e17e7905494ef060fce2">Shuffle</a> (IT begin, IT end)</td></tr>
<tr class="memdesc:aff937f93b0b1e17e7905494ef060fce2 inherit pub_methods_class_random_number_generator"><td class="mdescLeft">&#160;</td><td class="mdescRight">Randomly shuffle the specified array.  <a href="class_random_number_generator.html#aff937f93b0b1e17e7905494ef060fce2">More...</a><br /></td></tr>
<tr class="separator:aff937f93b0b1e17e7905494ef060fce2 inherit pub_methods_class_random_number_generator"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_algorithm"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_algorithm')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_algorithm.html">Algorithm</a></td></tr>
<tr class="memitem:a1c77f5117ca2cd881baf26a364cfc606 inherit pub_methods_class_algorithm"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_algorithm.html#a1c77f5117ca2cd881baf26a364cfc606">Algorithm</a> (bool checkSelfTestStatus=true)</td></tr>
<tr class="memdesc:a1c77f5117ca2cd881baf26a364cfc606 inherit pub_methods_class_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface for all crypto algorithms.  <a href="class_algorithm.html#a1c77f5117ca2cd881baf26a364cfc606">More...</a><br /></td></tr>
<tr class="separator:a1c77f5117ca2cd881baf26a364cfc606 inherit pub_methods_class_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f31510a192d1121856efe8ad0a9b844 inherit pub_methods_class_algorithm"><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_algorithm.html#a4f31510a192d1121856efe8ad0a9b844">AlgorithmName</a> () const</td></tr>
<tr class="memdesc:a4f31510a192d1121856efe8ad0a9b844 inherit pub_methods_class_algorithm"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the name of this algorithm.  <a href="class_algorithm.html#a4f31510a192d1121856efe8ad0a9b844">More...</a><br /></td></tr>
<tr class="separator:a4f31510a192d1121856efe8ad0a9b844 inherit pub_methods_class_algorithm"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_clonable"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_clonable')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_clonable.html">Clonable</a></td></tr>
<tr class="memitem:ad0016ba2d505c23aa85aad49e6c19bb7 inherit pub_methods_class_clonable"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_clonable.html">Clonable</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_clonable.html#ad0016ba2d505c23aa85aad49e6c19bb7">Clone</a> () const</td></tr>
<tr class="memdesc:ad0016ba2d505c23aa85aad49e6c19bb7 inherit pub_methods_class_clonable"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies this object.  <a href="class_clonable.html#ad0016ba2d505c23aa85aad49e6c19bb7">More...</a><br /></td></tr>
<tr class="separator:ad0016ba2d505c23aa85aad49e6c19bb7 inherit pub_methods_class_clonable"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a6d05d00032e9e3617eb68f9c4b1f9e87"><td class="memItemLeft" align="right" valign="top"><a id="a6d05d00032e9e3617eb68f9c4b1f9e87"></a>
static const char *&#160;</td><td class="memItemRight" valign="bottom"><b>StaticAlgorithmName</b> ()</td></tr>
<tr class="separator:a6d05d00032e9e3617eb68f9c4b1f9e87"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;unsigned int K, unsigned int M, unsigned int N, unsigned int F, word32 S&gt;<br />
class MersenneTwister&lt; K, M, N, F, S &gt;</h3>

<p>Mersenne Twister class for Monte-Carlo simulations. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">K</td><td>Magic constant </td></tr>
    <tr><td class="paramname">M</td><td>Period parameter </td></tr>
    <tr><td class="paramname">N</td><td>Size of the state vector </td></tr>
    <tr><td class="paramname">F</td><td>Multiplier constant </td></tr>
    <tr><td class="paramname">S</td><td>Initial seed</td></tr>
  </table>
  </dd>
</dl>
<p>Provides the <a class="el" href="class_mersenne_twister.html" title="Mersenne Twister class for Monte-Carlo simulations. ">MersenneTwister</a> implementation. The class is a header-only implementation. </p><dl class="section warning"><dt>Warning</dt><dd><a class="el" href="class_mersenne_twister.html" title="Mersenne Twister class for Monte-Carlo simulations. ">MersenneTwister</a> is suitable for simulations, where uniformaly distrubuted numbers are required quickly. It should not be used for cryptographic purposes. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_m_t19937.html" title="Original MT19937 generator provided in the ACM paper. ">MT19937</a>, <a class="el" href="class_m_t19937ar.html" title="Updated MT19937 generator adapted to provide an array for initialization. ">MT19937ar</a> </dd></dl>
<dl class="section since"><dt>Since</dt><dd>Crypto++ 5.6.3 </dd></dl>

<p class="definition">Definition at line <a class="el" href="mersenne_8h_source.html#l00029">29</a> of file <a class="el" href="mersenne_8h_source.html">mersenne.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aa85c73bd3d3fd3c5a8bf8ad6353cc866"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa85c73bd3d3fd3c5a8bf8ad6353cc866">&#9670;&nbsp;</a></span>MersenneTwister()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned int K, unsigned int M, unsigned int N, unsigned int F, word32 S&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_mersenne_twister.html">MersenneTwister</a>&lt; K, M, N, F, S &gt;::<a class="el" href="class_mersenne_twister.html">MersenneTwister</a> </td>
          <td>(</td>
          <td class="paramtype">word32&#160;</td>
          <td class="paramname"><em>seed</em> = <code>S</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Construct a Mersenne Twister. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">seed</td><td>32-bit seed</td></tr>
  </table>
  </dd>
</dl>
<p>Defaults to template parameter S due to changing algorithm parameters over time </p>

<p class="definition">Definition at line <a class="el" href="mersenne_8h_source.html#l00040">40</a> of file <a class="el" href="mersenne_8h_source.html">mersenne.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a9f09a181e0e4785ab95028a8ec6a53d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f09a181e0e4785ab95028a8ec6a53d8">&#9670;&nbsp;</a></span>CanIncorporateEntropy()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned int K, unsigned int M, unsigned int N, unsigned int F, word32 S&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_mersenne_twister.html">MersenneTwister</a>&lt; K, M, N, F, S &gt;::CanIncorporateEntropy </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Determines if a generator can accept additional entropy. </p>
<dl class="section return"><dt>Returns</dt><dd>true if <a class="el" href="class_mersenne_twister.html#a1d2ce0dc810e53a47b0c066f9229ec07" title="Update RNG state with additional unpredictable values. ">IncorporateEntropy()</a> is implemented </dd></dl>

<p>Reimplemented from <a class="el" href="class_random_number_generator.html#a859bf69f7fae074201745eadf765ae44">RandomNumberGenerator</a>.</p>

<p class="definition">Definition at line <a class="el" href="mersenne_8h_source.html#l00045">45</a> of file <a class="el" href="mersenne_8h_source.html">mersenne.h</a>.</p>

</div>
</div>
<a id="a1d2ce0dc810e53a47b0c066f9229ec07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d2ce0dc810e53a47b0c066f9229ec07">&#9670;&nbsp;</a></span>IncorporateEntropy()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned int K, unsigned int M, unsigned int N, unsigned int F, word32 S&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_mersenne_twister.html">MersenneTwister</a>&lt; K, M, N, F, S &gt;::IncorporateEntropy </td>
          <td>(</td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Update RNG state with additional unpredictable values. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">input</td><td>the entropy to add to the generator </td></tr>
    <tr><td class="paramname">length</td><td>the size of the input buffer</td></tr>
  </table>
  </dd>
</dl>
<p><a class="el" href="class_mersenne_twister.html" title="Mersenne Twister class for Monte-Carlo simulations. ">MersenneTwister</a> uses the first 32-bits of <code>input</code> to reseed the generator. If fewer bytes are provided, then the seed is padded with 0's. </p>

<p>Reimplemented from <a class="el" href="class_random_number_generator.html#a6feb4f0afedb62a495b7a9ae311fa1cb">RandomNumberGenerator</a>.</p>

<p class="definition">Definition at line <a class="el" href="mersenne_8h_source.html#l00052">52</a> of file <a class="el" href="mersenne_8h_source.html">mersenne.h</a>.</p>

</div>
</div>
<a id="a2cc6a68d00adaca7f72cdbf72b19699d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2cc6a68d00adaca7f72cdbf72b19699d">&#9670;&nbsp;</a></span>GenerateBlock()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned int K, unsigned int M, unsigned int N, unsigned int F, word32 S&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_mersenne_twister.html">MersenneTwister</a>&lt; K, M, N, F, S &gt;::GenerateBlock </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generate random array of bytes. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">output</td><td>byte buffer </td></tr>
    <tr><td class="paramname">size</td><td>length of the buffer, in bytes</td></tr>
  </table>
  </dd>
</dl>
<p>Bytes are written to output in big endian order. If output length is not a multiple of word32, then unused bytes are not accumulated for subsequent calls to GenerateBlock. Rather, the unused tail bytes are discarded, and the stream is continued at the next word32 boundary from the state array. </p>

<p>Reimplemented from <a class="el" href="class_random_number_generator.html#a497145546d24e6d4abaf10b7e0f1ba17">RandomNumberGenerator</a>.</p>

<p class="definition">Definition at line <a class="el" href="mersenne_8h_source.html#l00069">69</a> of file <a class="el" href="mersenne_8h_source.html">mersenne.h</a>.</p>

</div>
</div>
<a id="adf08e5d038201e24b423c0563fdedbb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adf08e5d038201e24b423c0563fdedbb0">&#9670;&nbsp;</a></span>GenerateWord32()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned int K, unsigned int M, unsigned int N, unsigned int F, word32 S&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">word32 <a class="el" href="class_mersenne_twister.html">MersenneTwister</a>&lt; K, M, N, F, S &gt;::GenerateWord32 </td>
          <td>(</td>
          <td class="paramtype">word32&#160;</td>
          <td class="paramname"><em>min</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">word32&#160;</td>
          <td class="paramname"><em>max</em> = <code>0xffffffffL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generate a random 32-bit word in the range min to max, inclusive. </p>
<dl class="section return"><dt>Returns</dt><dd>random 32-bit word in the range min to max, inclusive</dd></dl>
<p>If the 32-bit candidate is not within the range, then it is discarded and a new candidate is used. </p>

<p>Reimplemented from <a class="el" href="class_random_number_generator.html#a96a3eec202b6251f5c94136ab7edbde1">RandomNumberGenerator</a>.</p>

<p class="definition">Definition at line <a class="el" href="mersenne_8h_source.html#l00106">106</a> of file <a class="el" href="mersenne_8h_source.html">mersenne.h</a>.</p>

</div>
</div>
<a id="a9ea210a209dea0f0a2719538d6dae0a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ea210a209dea0f0a2719538d6dae0a4">&#9670;&nbsp;</a></span>DiscardBytes()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;unsigned int K, unsigned int M, unsigned int N, unsigned int F, word32 S&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_mersenne_twister.html">MersenneTwister</a>&lt; K, M, N, F, S &gt;::DiscardBytes </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Generate and discard n bytes. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">n</td><td>the number of bytes to discard, rounded up to a <code>word32</code> size</td></tr>
  </table>
  </dd>
</dl>
<p>If n is not a multiple of <code>word32</code>, then unused bytes are not accumulated for subsequent calls to GenerateBlock. Rather, the unused tail bytes are discarded, and the stream is continued at the next <code>word32</code> boundary from the state array. </p>

<p>Reimplemented from <a class="el" href="class_random_number_generator.html#a44f70ad8fed869a4ee55f50ef8e6e699">RandomNumberGenerator</a>.</p>

<p class="definition">Definition at line <a class="el" href="mersenne_8h_source.html#l00128">128</a> of file <a class="el" href="mersenne_8h_source.html">mersenne.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="mersenne_8h_source.html">mersenne.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Sep 16 2018 07:58:43 for Crypto++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>