<!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.3"/> <title>libstdc++: std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f > 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="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> $(document).ready(initResizable); $(window).load(resizeHeight); </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 style="padding-left: 0.5em;"> <div id="projectname">libstdc++ </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.3 --> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> $(document).ready(function(){initNavTree('a00457.html','');}); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-static-methods">Static Public Member Functions</a> | <a href="#pub-static-attribs">Static Public Attributes</a> | <a href="#friends">Friends</a> | <a href="a03090.html">List of all members</a> </div> <div class="headertitle"> <div class="title">std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f > Class Template Reference<div class="ingroups"><a class="el" href="a01685.html">Random Number Generators</a></div></div> </div> </div><!--header--> <div class="contents"> <div class="dynheader"> Inheritance diagram for std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >:</div> <div class="dyncontent"> <div class="center"><img src="a03091.png" border="0" usemap="#std_1_1mersenne__twister__engine_3_01___u_int_type_00_01____w_00_01____n_00_01____m_00_01____r_00_01____a_00_01____u_00_01____d_00_01____s_00_01____b_00_01____t_00_01____c_00_01____l_00_01____f_01_4_inherit__map" alt="Inheritance graph"/></div> <map name="std_1_1mersenne__twister__engine_3_01___u_int_type_00_01____w_00_01____n_00_01____m_00_01____r_00_01____a_00_01____u_00_01____d_00_01____s_00_01____b_00_01____t_00_01____c_00_01____l_00_01____f_01_4_inherit__map" id="std_1_1mersenne__twister__engine_3_01___u_int_type_00_01____w_00_01____n_00_01____m_00_01____r_00_01____a_00_01____u_00_01____d_00_01____s_00_01____b_00_01____t_00_01____c_00_01____l_00_01____f_01_4_inherit__map"> <area shape="rect" id="node3" href="a00457.html" title="std::mersenne_twister\l_engine\< uint_fast32\l_t, 32, 624, 397, 31,\l 0x9908b0dfUL, 11, 0xffffffffUL,\l 7, 0x9d2c5680UL, 15, 0xefc60000UL,\l 18, 1812433253UL \>" alt="" coords="446,13,677,105"/></map> <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a> Public Types</h2></td></tr> <tr class="memitem:ab1ad02d59f290faf3d8b33e1209cdfae"><td class="memItemLeft" align="right" valign="top">typedef _UIntType </td><td class="memItemRight" valign="bottom"><a class="el" href="a00457.html#ab1ad02d59f290faf3d8b33e1209cdfae">result_type</a></td></tr> <tr class="separator:ab1ad02d59f290faf3d8b33e1209cdfae"><td class="memSeparator" colspan="2"> </td></tr> </table><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:abcbd05102c25b471d7fd0353ed9078b4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abcbd05102c25b471d7fd0353ed9078b4"></a>  </td><td class="memItemRight" valign="bottom"><b>mersenne_twister_engine</b> (<a class="el" href="a00457.html#ab1ad02d59f290faf3d8b33e1209cdfae">result_type</a> __sd=default_seed)</td></tr> <tr class="separator:abcbd05102c25b471d7fd0353ed9078b4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8987d5bb70c31ba8e4bb80f993acff85"><td class="memTemplParams" colspan="2">template<typename _Sseq , typename = typename std::enable_if<!std::is_same<_Sseq, mersenne_twister_engine>::value> ::type> </td></tr> <tr class="memitem:a8987d5bb70c31ba8e4bb80f993acff85"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00457.html#a8987d5bb70c31ba8e4bb80f993acff85">mersenne_twister_engine</a> (_Sseq &__q)</td></tr> <tr class="separator:a8987d5bb70c31ba8e4bb80f993acff85"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5e2f7304fcf0b11ea1cde1397fb7ddb6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00457.html#a5e2f7304fcf0b11ea1cde1397fb7ddb6">discard</a> (unsigned long long __z)</td></tr> <tr class="separator:a5e2f7304fcf0b11ea1cde1397fb7ddb6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9a55e80c9916d7d27fb5e5d3ce87054e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9a55e80c9916d7d27fb5e5d3ce87054e"></a> <a class="el" href="a00457.html#ab1ad02d59f290faf3d8b33e1209cdfae">result_type</a> </td><td class="memItemRight" valign="bottom"><b>operator()</b> ()</td></tr> <tr class="separator:a9a55e80c9916d7d27fb5e5d3ce87054e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7f56800aa7e61057440c10c0eca1d76d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f56800aa7e61057440c10c0eca1d76d"></a> void </td><td class="memItemRight" valign="bottom"><b>seed</b> (<a class="el" href="a00457.html#ab1ad02d59f290faf3d8b33e1209cdfae">result_type</a> __sd=default_seed)</td></tr> <tr class="separator:a7f56800aa7e61057440c10c0eca1d76d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5f5cc8508fce57c6a0e87e52a9a51555"><td class="memTemplParams" colspan="2"><a class="anchor" id="a5f5cc8508fce57c6a0e87e52a9a51555"></a> template<typename _Sseq > </td></tr> <tr class="memitem:a5f5cc8508fce57c6a0e87e52a9a51555"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00441.html">std::enable_if</a>< <a class="el" href="a00746.html">std::is_class</a><br class="typebreak"/> < _Sseq >::value >::type </td><td class="memTemplItemRight" valign="bottom"><b>seed</b> (_Sseq &__q)</td></tr> <tr class="separator:a5f5cc8508fce57c6a0e87e52a9a51555"><td class="memSeparator" colspan="2"> </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:a8e9cd7d4bb14de188ead958d3f1faeac"><td class="memItemLeft" align="right" valign="top">static constexpr <a class="el" href="a00457.html#ab1ad02d59f290faf3d8b33e1209cdfae">result_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00457.html#a8e9cd7d4bb14de188ead958d3f1faeac">max</a> ()</td></tr> <tr class="separator:a8e9cd7d4bb14de188ead958d3f1faeac"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aaf1720ef1664fa77a5972c78addfa290"><td class="memItemLeft" align="right" valign="top">static constexpr <a class="el" href="a00457.html#ab1ad02d59f290faf3d8b33e1209cdfae">result_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00457.html#aaf1720ef1664fa77a5972c78addfa290">min</a> ()</td></tr> <tr class="separator:aaf1720ef1664fa77a5972c78addfa290"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a> Static Public Attributes</h2></td></tr> <tr class="memitem:a29d3bc88ce12b512f8021b36c4ba6112"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a29d3bc88ce12b512f8021b36c4ba6112"></a> static constexpr <a class="el" href="a00457.html#ab1ad02d59f290faf3d8b33e1209cdfae">result_type</a> </td><td class="memItemRight" valign="bottom"><b>default_seed</b></td></tr> <tr class="separator:a29d3bc88ce12b512f8021b36c4ba6112"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa8cf1e2c6cfe633474bb1c38cc887b9d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa8cf1e2c6cfe633474bb1c38cc887b9d"></a> static constexpr <a class="el" href="a00457.html#ab1ad02d59f290faf3d8b33e1209cdfae">result_type</a> </td><td class="memItemRight" valign="bottom"><b>initialization_multiplier</b></td></tr> <tr class="separator:aa8cf1e2c6cfe633474bb1c38cc887b9d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0ea255a8b39ef6f66068fd2727be8e27"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0ea255a8b39ef6f66068fd2727be8e27"></a> static constexpr size_t </td><td class="memItemRight" valign="bottom"><b>mask_bits</b></td></tr> <tr class="separator:a0ea255a8b39ef6f66068fd2727be8e27"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1b24c167ed9fbc4310784713a22e0080"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b24c167ed9fbc4310784713a22e0080"></a> static constexpr size_t </td><td class="memItemRight" valign="bottom"><b>shift_size</b></td></tr> <tr class="separator:a1b24c167ed9fbc4310784713a22e0080"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a454a02da83775c303dd43e3a3a99cfc6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a454a02da83775c303dd43e3a3a99cfc6"></a> static constexpr size_t </td><td class="memItemRight" valign="bottom"><b>state_size</b></td></tr> <tr class="separator:a454a02da83775c303dd43e3a3a99cfc6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac54d52c13ae64ebd2def6eb50c0bf8a1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac54d52c13ae64ebd2def6eb50c0bf8a1"></a> static constexpr <a class="el" href="a00457.html#ab1ad02d59f290faf3d8b33e1209cdfae">result_type</a> </td><td class="memItemRight" valign="bottom"><b>tempering_b</b></td></tr> <tr class="separator:ac54d52c13ae64ebd2def6eb50c0bf8a1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a316d526c44adfab794f503efd2fc5e0b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a316d526c44adfab794f503efd2fc5e0b"></a> static constexpr <a class="el" href="a00457.html#ab1ad02d59f290faf3d8b33e1209cdfae">result_type</a> </td><td class="memItemRight" valign="bottom"><b>tempering_c</b></td></tr> <tr class="separator:a316d526c44adfab794f503efd2fc5e0b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae0fd45659bdac7125a80fa376d3d0dc1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae0fd45659bdac7125a80fa376d3d0dc1"></a> static constexpr <a class="el" href="a00457.html#ab1ad02d59f290faf3d8b33e1209cdfae">result_type</a> </td><td class="memItemRight" valign="bottom"><b>tempering_d</b></td></tr> <tr class="separator:ae0fd45659bdac7125a80fa376d3d0dc1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af212317ad797e1c4758cc6266555b52d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af212317ad797e1c4758cc6266555b52d"></a> static constexpr size_t </td><td class="memItemRight" valign="bottom"><b>tempering_l</b></td></tr> <tr class="separator:af212317ad797e1c4758cc6266555b52d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a914bfd63aaa8ae6a80fc439cb1cbae1e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a914bfd63aaa8ae6a80fc439cb1cbae1e"></a> static constexpr size_t </td><td class="memItemRight" valign="bottom"><b>tempering_s</b></td></tr> <tr class="separator:a914bfd63aaa8ae6a80fc439cb1cbae1e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9abaa013184c119ea69081e39f80e286"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9abaa013184c119ea69081e39f80e286"></a> static constexpr size_t </td><td class="memItemRight" valign="bottom"><b>tempering_t</b></td></tr> <tr class="separator:a9abaa013184c119ea69081e39f80e286"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aafed425b2890dc02795b2f9fc3783fe0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafed425b2890dc02795b2f9fc3783fe0"></a> static constexpr size_t </td><td class="memItemRight" valign="bottom"><b>tempering_u</b></td></tr> <tr class="separator:aafed425b2890dc02795b2f9fc3783fe0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a10229739dc97d2aa7d0b7416718a6e20"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a10229739dc97d2aa7d0b7416718a6e20"></a> static constexpr size_t </td><td class="memItemRight" valign="bottom"><b>word_size</b></td></tr> <tr class="separator:a10229739dc97d2aa7d0b7416718a6e20"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a513dd70234628d38b8c4271aa88158ce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a513dd70234628d38b8c4271aa88158ce"></a> static constexpr <a class="el" href="a00457.html#ab1ad02d59f290faf3d8b33e1209cdfae">result_type</a> </td><td class="memItemRight" valign="bottom"><b>xor_mask</b></td></tr> <tr class="separator:a513dd70234628d38b8c4271aa88158ce"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a> Friends</h2></td></tr> <tr class="memitem:acc44ab3c56e9048acd13c60ca1a877e0"><td class="memTemplParams" colspan="2">template<typename _UIntType1 , size_t __w1, size_t __n1, size_t __m1, size_t __r1, _UIntType1 __a1, size_t __u1, _UIntType1 __d1, size_t __s1, _UIntType1 __b1, size_t __t1, _UIntType1 __c1, size_t __l1, _UIntType1 __f1, typename _CharT , typename _Traits > </td></tr> <tr class="memitem:acc44ab3c56e9048acd13c60ca1a877e0"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00432.html">std::basic_ostream</a>< _CharT, <br class="typebreak"/> _Traits > & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00457.html#acc44ab3c56e9048acd13c60ca1a877e0">operator<<</a> (<a class="el" href="a00432.html">std::basic_ostream</a>< _CharT, _Traits > &__os, const <a class="el" href="a00457.html">std::mersenne_twister_engine</a>< _UIntType1, __w1, __n1, __m1, __r1, __a1, __u1, __d1, __s1, __b1, __t1, __c1, __l1, __f1 > &__x)</td></tr> <tr class="separator:acc44ab3c56e9048acd13c60ca1a877e0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a96c6f6aabca5106a2db6ecc834bbddfe"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00457.html#a96c6f6aabca5106a2db6ecc834bbddfe">operator==</a> (const <a class="el" href="a00457.html">mersenne_twister_engine</a> &__lhs, const <a class="el" href="a00457.html">mersenne_twister_engine</a> &__rhs)</td></tr> <tr class="separator:a96c6f6aabca5106a2db6ecc834bbddfe"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4fe6e606a61991ce6007b14402043497"><td class="memTemplParams" colspan="2">template<typename _UIntType1 , size_t __w1, size_t __n1, size_t __m1, size_t __r1, _UIntType1 __a1, size_t __u1, _UIntType1 __d1, size_t __s1, _UIntType1 __b1, size_t __t1, _UIntType1 __c1, size_t __l1, _UIntType1 __f1, typename _CharT , typename _Traits > </td></tr> <tr class="memitem:a4fe6e606a61991ce6007b14402043497"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00431.html">std::basic_istream</a>< _CharT, <br class="typebreak"/> _Traits > & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00457.html#a4fe6e606a61991ce6007b14402043497">operator>></a> (<a class="el" href="a00431.html">std::basic_istream</a>< _CharT, _Traits > &__is, <a class="el" href="a00457.html">std::mersenne_twister_engine</a>< _UIntType1, __w1, __n1, __m1, __r1, __a1, __u1, __d1, __s1, __b1, __t1, __c1, __l1, __f1 > &__x)</td></tr> <tr class="separator:a4fe6e606a61991ce6007b14402043497"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><h3>template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f><br/> class std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f ></h3> <p>A generalized feedback shift register discrete random number generator.</p> <p>This algorithm avoids multiplication and division and is designed to be friendly to a pipelined architecture. If the parameters are chosen correctly, this generator will produce numbers with a very long period and fairly good apparent entropy, although still not cryptographically strong.</p> <p>The best way to use this generator is with the predefined mt19937 class.</p> <p>This algorithm was originally invented by Makoto Matsumoto and Takuji Nishimura.</p> <dl class="tparams"><dt>Template Parameters</dt><dd> <table class="tparams"> <tr><td class="paramname">__w</td><td>Word size, the number of bits in each element of the state vector. </td></tr> <tr><td class="paramname">__n</td><td>The degree of recursion. </td></tr> <tr><td class="paramname">__m</td><td>The period parameter. </td></tr> <tr><td class="paramname">__r</td><td>The separation point bit index. </td></tr> <tr><td class="paramname">__a</td><td>The last row of the twist matrix. </td></tr> <tr><td class="paramname">__u</td><td>The first right-shift tempering matrix parameter. </td></tr> <tr><td class="paramname">__d</td><td>The first right-shift tempering matrix mask. </td></tr> <tr><td class="paramname">__s</td><td>The first left-shift tempering matrix parameter. </td></tr> <tr><td class="paramname">__b</td><td>The first left-shift tempering matrix mask. </td></tr> <tr><td class="paramname">__t</td><td>The second left-shift tempering matrix parameter. </td></tr> <tr><td class="paramname">__c</td><td>The second left-shift tempering matrix mask. </td></tr> <tr><td class="paramname">__l</td><td>The second right-shift tempering matrix parameter. </td></tr> <tr><td class="paramname">__f</td><td>Initialization multiplier. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="a01395_source.html#l00383">383</a> of file <a class="el" href="a01395_source.html">random.h</a>.</p> </div><h2 class="groupheader">Member Typedef Documentation</h2> <a class="anchor" id="ab1ad02d59f290faf3d8b33e1209cdfae"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> </div> <table class="memname"> <tr> <td class="memname">typedef _UIntType <a class="el" href="a00457.html">std::mersenne_twister_engine</a>< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >::<a class="el" href="a00457.html#ab1ad02d59f290faf3d8b33e1209cdfae">result_type</a></td> </tr> </table> </div><div class="memdoc"> <p>The type of the generated random value. </p> <p>Definition at line <a class="el" href="a01395_source.html#l00386">386</a> of file <a class="el" href="a01395_source.html">random.h</a>.</p> </div> </div> <h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="a8987d5bb70c31ba8e4bb80f993acff85"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> </div> <div class="memtemplate"> template<typename _Sseq , typename = typename std::enable_if<!std::is_same<_Sseq, mersenne_twister_engine>::value> ::type> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00457.html">std::mersenne_twister_engine</a>< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >::<a class="el" href="a00457.html">mersenne_twister_engine</a> </td> <td>(</td> <td class="paramtype">_Sseq & </td> <td class="paramname"><em>__q</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Constructs a mersenne_twister_engine random number generator engine seeded from the seed sequence <code>__q</code>. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__q</td><td>the seed sequence. </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="a01395_source.html#l00447">447</a> of file <a class="el" href="a01395_source.html">random.h</a>.</p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a5e2f7304fcf0b11ea1cde1397fb7ddb6"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="a00457.html">std::mersenne_twister_engine</a>< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >::discard </td> <td>(</td> <td class="paramtype">unsigned long long </td> <td class="paramname"><em>__z</em></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>Discard a sequence of random numbers. </p> <p>Definition at line <a class="el" href="a01395_source.html#l00475">475</a> of file <a class="el" href="a01395_source.html">random.h</a>.</p> </div> </div> <a class="anchor" id="a8e9cd7d4bb14de188ead958d3f1faeac"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static constexpr <a class="el" href="a00457.html#ab1ad02d59f290faf3d8b33e1209cdfae">result_type</a> <a class="el" href="a00457.html">std::mersenne_twister_engine</a>< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >::max </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Gets the largest possible value in the output range. </p> <p>Definition at line <a class="el" href="a01395_source.html#l00468">468</a> of file <a class="el" href="a01395_source.html">random.h</a>.</p> </div> </div> <a class="anchor" id="aaf1720ef1664fa77a5972c78addfa290"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static constexpr <a class="el" href="a00457.html#ab1ad02d59f290faf3d8b33e1209cdfae">result_type</a> <a class="el" href="a00457.html">std::mersenne_twister_engine</a>< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >::min </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Gets the smallest possible value in the output range. </p> <p>Definition at line <a class="el" href="a01395_source.html#l00461">461</a> of file <a class="el" href="a01395_source.html">random.h</a>.</p> </div> </div> <h2 class="groupheader">Friends And Related Function Documentation</h2> <a class="anchor" id="acc44ab3c56e9048acd13c60ca1a877e0"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> </div> <div class="memtemplate"> template<typename _UIntType1 , size_t __w1, size_t __n1, size_t __m1, size_t __r1, _UIntType1 __a1, size_t __u1, _UIntType1 __d1, size_t __s1, _UIntType1 __b1, size_t __t1, _UIntType1 __c1, size_t __l1, _UIntType1 __f1, typename _CharT , typename _Traits > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00432.html">std::basic_ostream</a><_CharT, _Traits>& operator<< </td> <td>(</td> <td class="paramtype"><a class="el" href="a00432.html">std::basic_ostream</a>< _CharT, _Traits > & </td> <td class="paramname"><em>__os</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00457.html">std::mersenne_twister_engine</a>< _UIntType1, __w1, __n1, __m1, __r1, __a1, __u1, __d1, __s1, __b1, __t1, __c1, __l1, __f1 > & </td> <td class="paramname"><em>__x</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">friend</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Inserts the current state of a % <a class="el" href="a00457.html">mersenne_twister_engine</a> random number generator engine <code>__x</code> into the output stream <code>__os</code>. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__os</td><td>An output stream. </td></tr> <tr><td class="paramname">__x</td><td>A % <a class="el" href="a00457.html">mersenne_twister_engine</a> random number generator engine.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The output stream with the state of <code>__x</code> inserted or in an error state. </dd></dl> </div> </div> <a class="anchor" id="a96c6f6aabca5106a2db6ecc834bbddfe"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool operator== </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00457.html">mersenne_twister_engine</a>< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f > & </td> <td class="paramname"><em>__lhs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00457.html">mersenne_twister_engine</a>< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f > & </td> <td class="paramname"><em>__rhs</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">friend</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Compares two % <a class="el" href="a00457.html">mersenne_twister_engine</a> random number generator objects of the same type for equality. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__lhs</td><td>A % <a class="el" href="a00457.html">mersenne_twister_engine</a> random number generator object. </td></tr> <tr><td class="paramname">__rhs</td><td>Another % <a class="el" href="a00457.html">mersenne_twister_engine</a> random number generator object.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>true if the infinite sequences of generated values would be equal, false otherwise. </dd></dl> <p>Definition at line <a class="el" href="a01395_source.html#l00497">497</a> of file <a class="el" href="a01395_source.html">random.h</a>.</p> </div> </div> <a class="anchor" id="a4fe6e606a61991ce6007b14402043497"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __n, size_t __m, size_t __r, _UIntType __a, size_t __u, _UIntType __d, size_t __s, _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f> </div> <div class="memtemplate"> template<typename _UIntType1 , size_t __w1, size_t __n1, size_t __m1, size_t __r1, _UIntType1 __a1, size_t __u1, _UIntType1 __d1, size_t __s1, _UIntType1 __b1, size_t __t1, _UIntType1 __c1, size_t __l1, _UIntType1 __f1, typename _CharT , typename _Traits > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00431.html">std::basic_istream</a><_CharT, _Traits>& operator>> </td> <td>(</td> <td class="paramtype"><a class="el" href="a00431.html">std::basic_istream</a>< _CharT, _Traits > & </td> <td class="paramname"><em>__is</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00457.html">std::mersenne_twister_engine</a>< _UIntType1, __w1, __n1, __m1, __r1, __a1, __u1, __d1, __s1, __b1, __t1, __c1, __l1, __f1 > & </td> <td class="paramname"><em>__x</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">friend</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Extracts the current state of a % <a class="el" href="a00457.html">mersenne_twister_engine</a> random number generator engine <code>__x</code> from the input stream <code>__is</code>. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__is</td><td>An input stream. </td></tr> <tr><td class="paramname">__x</td><td>A % <a class="el" href="a00457.html">mersenne_twister_engine</a> random number generator engine.</td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The input stream with the state of <code>__x</code> extracted or in an error state. </dd></dl> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="a01395_source.html">random.h</a></li> <li><a class="el" href="a01396_source.html">random.tcc</a></li> </ul> </div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="a01604.html">std</a></li><li class="navelem"><a class="el" href="a00457.html">mersenne_twister_engine</a></li> <li class="footer">Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.3 </li> </ul> </div> </body> </html>