<!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.13"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libstdc++: std::subtract_with_carry_engine< _UIntType, __w, __s, __r > 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="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </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">libstdc++ </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.13 --> </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('a05761.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="a05758.html">List of all members</a> </div> <div class="headertitle"> <div class="title">std::subtract_with_carry_engine< _UIntType, __w, __s, __r > Class Template Reference<div class="ingroups"><a class="el" href="a01427.html">Numerics</a> » <a class="el" href="a01444.html">Random Number Generation</a> » <a class="el" href="a01480.html">Random Number Generators</a></div></div> </div> </div><!--header--> <div class="contents"> <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:abbbc2513574ed100d700a15bcae13b5a"><td class="memItemLeft" align="right" valign="top">typedef _UIntType </td><td class="memItemRight" valign="bottom"><a class="el" href="a05761.html#abbbc2513574ed100d700a15bcae13b5a">result_type</a></td></tr> <tr class="separator:abbbc2513574ed100d700a15bcae13b5a"><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:acc87e25beee4323ff5782e77d5d327bc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a05761.html#acc87e25beee4323ff5782e77d5d327bc">subtract_with_carry_engine</a> (<a class="el" href="a05761.html#abbbc2513574ed100d700a15bcae13b5a">result_type</a> __sd=default_seed)</td></tr> <tr class="separator:acc87e25beee4323ff5782e77d5d327bc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aeb01e590a5c84d08db8b5678ca774172"><td class="memTemplParams" colspan="2">template<typename _Sseq , typename = typename std::enable_if<!std::is_same<_Sseq, subtract_with_carry_engine>::value> ::type> </td></tr> <tr class="memitem:aeb01e590a5c84d08db8b5678ca774172"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a05761.html#aeb01e590a5c84d08db8b5678ca774172">subtract_with_carry_engine</a> (_Sseq &__q)</td></tr> <tr class="separator:aeb01e590a5c84d08db8b5678ca774172"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a76b226f563a8fb3eeb3c48999b3e9bc4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a05761.html#a76b226f563a8fb3eeb3c48999b3e9bc4">discard</a> (unsigned long long __z)</td></tr> <tr class="separator:a76b226f563a8fb3eeb3c48999b3e9bc4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7b6aa59d4719950a6014d38e1559295c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a05761.html#abbbc2513574ed100d700a15bcae13b5a">result_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a05761.html#a7b6aa59d4719950a6014d38e1559295c">operator()</a> ()</td></tr> <tr class="separator:a7b6aa59d4719950a6014d38e1559295c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5629eb85bb95f545575b9b08bacafda4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a05761.html#a5629eb85bb95f545575b9b08bacafda4">seed</a> (<a class="el" href="a05761.html#abbbc2513574ed100d700a15bcae13b5a">result_type</a> __sd=default_seed)</td></tr> <tr class="separator:a5629eb85bb95f545575b9b08bacafda4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a212731fabf10c7de62630f2c38b22b2c"><td class="memTemplParams" colspan="2">template<typename _Sseq > </td></tr> <tr class="memitem:a212731fabf10c7de62630f2c38b22b2c"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if< <a class="el" href="a03725.html">std::is_class</a>< _Sseq >::value >::type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a05761.html#a212731fabf10c7de62630f2c38b22b2c">seed</a> (_Sseq &__q)</td></tr> <tr class="separator:a212731fabf10c7de62630f2c38b22b2c"><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:aeea39effc4518e2236214b51cc0e9f93"><td class="memItemLeft" align="right" valign="top">static constexpr <a class="el" href="a05761.html#abbbc2513574ed100d700a15bcae13b5a">result_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a05761.html#aeea39effc4518e2236214b51cc0e9f93">max</a> ()</td></tr> <tr class="separator:aeea39effc4518e2236214b51cc0e9f93"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a945725b8377db61951fc9c79a0f9aac1"><td class="memItemLeft" align="right" valign="top">static constexpr <a class="el" href="a05761.html#abbbc2513574ed100d700a15bcae13b5a">result_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a05761.html#a945725b8377db61951fc9c79a0f9aac1">min</a> ()</td></tr> <tr class="separator:a945725b8377db61951fc9c79a0f9aac1"><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:aa9d7ab2114fdf547339463d8563ba267"><td class="memItemLeft" align="right" valign="top"><a id="aa9d7ab2114fdf547339463d8563ba267"></a> static constexpr <a class="el" href="a05761.html#abbbc2513574ed100d700a15bcae13b5a">result_type</a> </td><td class="memItemRight" valign="bottom"><b>default_seed</b></td></tr> <tr class="separator:aa9d7ab2114fdf547339463d8563ba267"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad41b8ce1973bd8c5e1c494d02cc46f97"><td class="memItemLeft" align="right" valign="top"><a id="ad41b8ce1973bd8c5e1c494d02cc46f97"></a> static constexpr size_t </td><td class="memItemRight" valign="bottom"><b>long_lag</b></td></tr> <tr class="separator:ad41b8ce1973bd8c5e1c494d02cc46f97"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa2b734fbc17c6a06c31e9bb98c8466bc"><td class="memItemLeft" align="right" valign="top"><a id="aa2b734fbc17c6a06c31e9bb98c8466bc"></a> static constexpr size_t </td><td class="memItemRight" valign="bottom"><b>short_lag</b></td></tr> <tr class="separator:aa2b734fbc17c6a06c31e9bb98c8466bc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a640e7fb7a30ce8c31595eb611c61925b"><td class="memItemLeft" align="right" valign="top"><a id="a640e7fb7a30ce8c31595eb611c61925b"></a> static constexpr size_t </td><td class="memItemRight" valign="bottom"><b>word_size</b></td></tr> <tr class="separator:a640e7fb7a30ce8c31595eb611c61925b"><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:a877333097a3e4f3b054c3c763654e965"><td class="memTemplParams" colspan="2">template<typename _UIntType1 , size_t __w1, size_t __s1, size_t __r1, typename _CharT , typename _Traits > </td></tr> <tr class="memitem:a877333097a3e4f3b054c3c763654e965"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a02885.html">std::basic_ostream</a>< _CharT, _Traits > & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a05761.html#a877333097a3e4f3b054c3c763654e965">operator<<</a> (<a class="el" href="a02885.html">std::basic_ostream</a>< _CharT, _Traits > &__os, const <a class="el" href="a05761.html">std::subtract_with_carry_engine</a>< _UIntType1, __w1, __s1, __r1 > &__x)</td></tr> <tr class="separator:a877333097a3e4f3b054c3c763654e965"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aad723b232704ecb9396af450f399eb1f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a05761.html#aad723b232704ecb9396af450f399eb1f">operator==</a> (const <a class="el" href="a05761.html">subtract_with_carry_engine</a> &__lhs, const <a class="el" href="a05761.html">subtract_with_carry_engine</a> &__rhs)</td></tr> <tr class="separator:aad723b232704ecb9396af450f399eb1f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0420033b44c3e22e2157546faa851f00"><td class="memTemplParams" colspan="2">template<typename _UIntType1 , size_t __w1, size_t __s1, size_t __r1, typename _CharT , typename _Traits > </td></tr> <tr class="memitem:a0420033b44c3e22e2157546faa851f00"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a02881.html">std::basic_istream</a>< _CharT, _Traits > & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a05761.html#a0420033b44c3e22e2157546faa851f00">operator>></a> (<a class="el" href="a02881.html">std::basic_istream</a>< _CharT, _Traits > &__is, <a class="el" href="a05761.html">std::subtract_with_carry_engine</a>< _UIntType1, __w1, __s1, __r1 > &__x)</td></tr> <tr class="separator:a0420033b44c3e22e2157546faa851f00"><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 __s, size_t __r><br /> class std::subtract_with_carry_engine< _UIntType, __w, __s, __r ></h3> <p>The Marsaglia-Zaman generator. </p> <p>This is a model of a Generalized Fibonacci discrete random number generator, sometimes referred to as the SWC generator.</p> <p>A discrete random number generator that produces pseudorandom numbers using: </p><p class="formulaDsp"> <img class="formulaDsp" alt="\[ x_{i}\leftarrow(x_{i - s} - x_{i - r} - carry_{i-1}) \bmod m \]" src="form_2.png"/> </p> <p>The size of the state is <img class="formulaInl" alt="$r$" src="form_3.png"/> and the maximum period of the generator is <img class="formulaInl" alt="$(m^r - m^s - 1)$" src="form_4.png"/>. </p> <p class="definition">Definition at line <a class="el" href="a00422_source.html#l00659">659</a> of file <a class="el" href="a00422_source.html">random.h</a>.</p> </div><h2 class="groupheader">Member Typedef Documentation</h2> <a id="abbbc2513574ed100d700a15bcae13b5a"></a> <h2 class="memtitle"><span class="permalink"><a href="#abbbc2513574ed100d700a15bcae13b5a">◆ </a></span>result_type</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __s, size_t __r> </div> <table class="memname"> <tr> <td class="memname">typedef _UIntType <a class="el" href="a05761.html">std::subtract_with_carry_engine</a>< _UIntType, __w, __s, __r >::<a class="el" href="a05761.html#abbbc2513574ed100d700a15bcae13b5a">result_type</a></td> </tr> </table> </div><div class="memdoc"> <p>The type of the generated random value. </p> <p class="definition">Definition at line <a class="el" href="a00422_source.html#l00662">662</a> of file <a class="el" href="a00422_source.html">random.h</a>.</p> </div> </div> <h2 class="groupheader">Constructor & Destructor Documentation</h2> <a id="acc87e25beee4323ff5782e77d5d327bc"></a> <h2 class="memtitle"><span class="permalink"><a href="#acc87e25beee4323ff5782e77d5d327bc">◆ </a></span>subtract_with_carry_engine() <span class="overload">[1/2]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __s, size_t __r> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a05761.html">std::subtract_with_carry_engine</a>< _UIntType, __w, __s, __r >::<a class="el" href="a05761.html">subtract_with_carry_engine</a> </td> <td>(</td> <td class="paramtype"><a class="el" href="a05761.html#abbbc2513574ed100d700a15bcae13b5a">result_type</a> </td> <td class="paramname"><em>__sd</em> = <code>default_seed</code></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 an explicitly seeded % subtract_with_carry_engine random number generator. </p> <p class="definition">Definition at line <a class="el" href="a00422_source.html#l00683">683</a> of file <a class="el" href="a00422_source.html">random.h</a>.</p> </div> </div> <a id="aeb01e590a5c84d08db8b5678ca774172"></a> <h2 class="memtitle"><span class="permalink"><a href="#aeb01e590a5c84d08db8b5678ca774172">◆ </a></span>subtract_with_carry_engine() <span class="overload">[2/2]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __s, size_t __r> </div> <div class="memtemplate"> template<typename _Sseq , typename = typename std::enable_if<!std::is_same<_Sseq, subtract_with_carry_engine>::value> ::type> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a05761.html">std::subtract_with_carry_engine</a>< _UIntType, __w, __s, __r >::<a class="el" href="a05761.html">subtract_with_carry_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 subtract_with_carry_engine random number 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 class="definition">Definition at line <a class="el" href="a00422_source.html#l00696">696</a> of file <a class="el" href="a00422_source.html">random.h</a>.</p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a id="a76b226f563a8fb3eeb3c48999b3e9bc4"></a> <h2 class="memtitle"><span class="permalink"><a href="#a76b226f563a8fb3eeb3c48999b3e9bc4">◆ </a></span>discard()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __s, size_t __r> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="a05761.html">std::subtract_with_carry_engine</a>< _UIntType, __w, __s, __r >::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 class="definition">Definition at line <a class="el" href="a00422_source.html#l00742">742</a> of file <a class="el" href="a00422_source.html">random.h</a>.</p> </div> </div> <a id="aeea39effc4518e2236214b51cc0e9f93"></a> <h2 class="memtitle"><span class="permalink"><a href="#aeea39effc4518e2236214b51cc0e9f93">◆ </a></span>max()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __s, size_t __r> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static constexpr <a class="el" href="a05761.html#abbbc2513574ed100d700a15bcae13b5a">result_type</a> <a class="el" href="a05761.html">std::subtract_with_carry_engine</a>< _UIntType, __w, __s, __r >::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 inclusive maximum value of the range of random integers returned by this generator. </p> <p class="definition">Definition at line <a class="el" href="a00422_source.html#l00735">735</a> of file <a class="el" href="a00422_source.html">random.h</a>.</p> </div> </div> <a id="a945725b8377db61951fc9c79a0f9aac1"></a> <h2 class="memtitle"><span class="permalink"><a href="#a945725b8377db61951fc9c79a0f9aac1">◆ </a></span>min()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __s, size_t __r> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static constexpr <a class="el" href="a05761.html#abbbc2513574ed100d700a15bcae13b5a">result_type</a> <a class="el" href="a05761.html">std::subtract_with_carry_engine</a>< _UIntType, __w, __s, __r >::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 inclusive minimum value of the range of random integers returned by this generator. </p> <p class="definition">Definition at line <a class="el" href="a00422_source.html#l00727">727</a> of file <a class="el" href="a00422_source.html">random.h</a>.</p> </div> </div> <a id="a7b6aa59d4719950a6014d38e1559295c"></a> <h2 class="memtitle"><span class="permalink"><a href="#a7b6aa59d4719950a6014d38e1559295c">◆ </a></span>operator()()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType , size_t __w, size_t __s, size_t __r> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="a05761.html">subtract_with_carry_engine</a>< _UIntType, __w, __s, __r >::<a class="el" href="a05761.html#abbbc2513574ed100d700a15bcae13b5a">result_type</a> <a class="el" href="a05761.html">std::subtract_with_carry_engine</a>< _UIntType, __w, __s, __r >::operator() </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Gets the next random number in the sequence. </p> <p class="definition">Definition at line <a class="el" href="a15277_source.html#l00598">598</a> of file <a class="el" href="a15277_source.html">bits/random.tcc</a>.</p> <p class="reference">References <a class="el" href="a00356_source.html#l01016">std::dec()</a>, <a class="el" href="a00356_source.html#l01041">std::fixed()</a>, <a class="el" href="a00356_source.html#l00619">std::ios_base::flags()</a>, <a class="el" href="a00356_source.html#l00999">std::left()</a>, <a class="el" href="a15277_source.html#l00688">std::discard_block_engine< _RandomNumberEngine, __p, __r >::operator()()</a>, <a class="el" href="a00419_source.html#l00121">std::__detail::operator>>()</a>, and <a class="el" href="a00356_source.html#l00942">std::skipws()</a>.</p> <p class="reference">Referenced by <a class="el" href="a15277_source.html#l00572">std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::seed()</a>.</p> </div> </div> <a id="a5629eb85bb95f545575b9b08bacafda4"></a> <h2 class="memtitle"><span class="permalink"><a href="#a5629eb85bb95f545575b9b08bacafda4">◆ </a></span>seed() <span class="overload">[1/2]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType , size_t __w, size_t __s, size_t __r> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="a05761.html">std::subtract_with_carry_engine</a>< _UIntType, __w, __s, __r >::seed </td> <td>(</td> <td class="paramtype"><a class="el" href="a05761.html#abbbc2513574ed100d700a15bcae13b5a">result_type</a> </td> <td class="paramname"><em>__sd</em> = <code>default_seed</code></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Seeds the initial state <img class="formulaInl" alt="$x_0$" src="form_27.png"/> of the random number generator. </p> <p>N1688[4.19] modifies this as follows. If <code>__value</code> == 0, sets value to 19780503. In any case, with a linear congruential generator lcg(i) having parameters <img class="formulaInl" alt="$ m_{lcg} = 2147483563, a_{lcg} = 40014, c_{lcg} = 0, and lcg(0) = value $" src="form_28.png"/>, sets <img class="formulaInl" alt="$ x_{-r} \dots x_{-1} $" src="form_29.png"/> to <img class="formulaInl" alt="$ lcg(1) \bmod m \dots lcg(r) \bmod m $" src="form_30.png"/> respectively. If <img class="formulaInl" alt="$ x_{-1} = 0 $" src="form_31.png"/> set carry to 1, otherwise sets carry to 0. </p> <p class="definition">Definition at line <a class="el" href="a15277_source.html#l00543">543</a> of file <a class="el" href="a15277_source.html">bits/random.tcc</a>.</p> <p class="reference">Referenced by <a class="el" href="a15277_source.html#l00435">std::mersenne_twister_engine< uint_fast32_t, 32, 624, 397, 31, 0x9908b0dfUL, 11, 0xffffffffUL, 7, 0x9d2c5680UL, 15, 0xefc60000UL, 18, 1812433253UL >::discard()</a>.</p> </div> </div> <a id="a212731fabf10c7de62630f2c38b22b2c"></a> <h2 class="memtitle"><span class="permalink"><a href="#a212731fabf10c7de62630f2c38b22b2c">◆ </a></span>seed() <span class="overload">[2/2]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType , size_t __w, size_t __s, size_t __r> </div> <div class="memtemplate"> template<typename _Sseq > </div> <table class="memname"> <tr> <td class="memname">std::enable_if< <a class="el" href="a03725.html">std::is_class</a>< _Sseq >::value >::type <a class="el" href="a05761.html">std::subtract_with_carry_engine</a>< _UIntType, __w, __s, __r >::seed </td> <td>(</td> <td class="paramtype">_Sseq & </td> <td class="paramname"><em>__q</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Seeds the initial state <img class="formulaInl" alt="$x_0$" src="form_27.png"/> of the % subtract_with_carry_engine random number generator. </p> <p class="definition">Definition at line <a class="el" href="a15277_source.html#l00572">572</a> of file <a class="el" href="a15277_source.html">bits/random.tcc</a>.</p> <p class="reference">References <a class="el" href="a15277_source.html#l00598">std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::operator()()</a>.</p> </div> </div> <h2 class="groupheader">Friends And Related Function Documentation</h2> <a id="a877333097a3e4f3b054c3c763654e965"></a> <h2 class="memtitle"><span class="permalink"><a href="#a877333097a3e4f3b054c3c763654e965">◆ </a></span>operator<<</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __s, size_t __r> </div> <div class="memtemplate"> template<typename _UIntType1 , size_t __w1, size_t __s1, size_t __r1, typename _CharT , typename _Traits > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02885.html">std::basic_ostream</a><_CharT, _Traits>& operator<< </td> <td>(</td> <td class="paramtype"><a class="el" href="a02885.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="a05761.html">std::subtract_with_carry_engine</a>< _UIntType1, __w1, __s1, __r1 > & </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 % subtract_with_carry_engine 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 % subtract_with_carry_engine 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 id="aad723b232704ecb9396af450f399eb1f"></a> <h2 class="memtitle"><span class="permalink"><a href="#aad723b232704ecb9396af450f399eb1f">◆ </a></span>operator==</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __s, size_t __r> </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="a05761.html">subtract_with_carry_engine</a>< _UIntType, __w, __s, __r > & </td> <td class="paramname"><em>__lhs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a05761.html">subtract_with_carry_engine</a>< _UIntType, __w, __s, __r > & </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 % subtract_with_carry_engine 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 % subtract_with_carry_engine random number generator object. </td></tr> <tr><td class="paramname">__rhs</td><td>Another % subtract_with_carry_engine 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 class="definition">Definition at line <a class="el" href="a00422_source.html#l00767">767</a> of file <a class="el" href="a00422_source.html">random.h</a>.</p> </div> </div> <a id="a0420033b44c3e22e2157546faa851f00"></a> <h2 class="memtitle"><span class="permalink"><a href="#a0420033b44c3e22e2157546faa851f00">◆ </a></span>operator>></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _UIntType, size_t __w, size_t __s, size_t __r> </div> <div class="memtemplate"> template<typename _UIntType1 , size_t __w1, size_t __s1, size_t __r1, typename _CharT , typename _Traits > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02881.html">std::basic_istream</a><_CharT, _Traits>& operator>> </td> <td>(</td> <td class="paramtype"><a class="el" href="a02881.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="a05761.html">std::subtract_with_carry_engine</a>< _UIntType1, __w1, __s1, __r1 > & </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 % subtract_with_carry_engine 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 % subtract_with_carry_engine 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="a00422_source.html">random.h</a></li> <li><a class="el" href="a15277_source.html">bits/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="a01487.html">std</a></li><li class="navelem"><a class="el" href="a05761.html">subtract_with_carry_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.13 </li> </ul> </div> </body> </html>