<?xml version="1.0" standalone="yes"?>
<library-reference id="headers"><title>Headers</title><header id="doxygen.headers.random_8hpp" name="boost/random.hpp">
</header>
<header id="doxygen.headers.additive__combine_8hpp" name="boost/random/additive_combine.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine" name="additive_combine_engine"><template>
      <template-type-parameter name="MLCG1"/>
      <template-type-parameter name="MLCG2"/>
    </template><description><para>An instantiation of class template <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1additive__combine__engine">additive_combine_engine</link></computeroutput> models a  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link> . It combines two multiplicative  <classname alt="boost::random::linear_congruential_engine">linear_congruential_engine</classname> number generators, i.e. those with <computeroutput>c</computeroutput> = 0. It is described in</para><para> <blockquote><para>  "Efficient and Portable Combined Random Number Generators", Pierre L'Ecuyer, Communications of the ACM, Vol. 31, No. 6, June 1988, pp. 742-749, 774  </para></blockquote> </para><para>The template parameters MLCG1 and MLCG2 shall denote two different  <classname alt="boost::random::linear_congruential_engine">linear_congruential_engine</classname> number generators, each with c = 0. Each invocation returns a random number X(n) := (MLCG1(n) - MLCG2(n)) mod (m1 - 1), where m1 denotes the modulus of MLCG1. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1a1c6ca6be409d2538dec72e373b6ffaf4" name="first_base"><type>MLCG1</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1af5ab2d398ca24f97b9df5cb758a4a112" name="second_base"><type>MLCG2</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1ab9eeb36ca041f3f46765c251156d0aac" name="result_type"><type>MLCG1::result_type</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1a1d07b55c31f75c281a8a81c26d62c232" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1a57e7814a0be74a71933c291530cbb181" name="min" specifiers="static"><type>result_type</type><description><para>Returns the smallest value that the generator can produce </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1aba1d628c937b524db5dc54e7e177a217" name="max" specifiers="static"><type>result_type</type><description><para>Returns the largest value that the generator can produce </para></description></method>
</method-group>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1a389d2401d9a2ba2512748137bdd94362"><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1additive__combine__engine">additive_combine_engine</link></computeroutput> using the default constructors of the two base generators. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1a5084938f07de0676afef58a826a67e71" specifiers="explicit"><parameter name="seed"><paramtype>result_type</paramtype></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1additive__combine__engine">additive_combine_engine</link></computeroutput>, using seed as the constructor argument for both base generators. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1ae8f7e94166f0becd9821a96bf8c7944c" specifiers="explicit"><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1additive__combine__engine">additive_combine_engine</link></computeroutput>, using seq as the constructor argument for both base generators.</para><para> <warning><para>  The semantics of this function are liable to change. A <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1seed__seq">seed_seq</link></computeroutput> is designed to generate all the seeds in one shot, but this seeds the two base engines independantly and probably ends up giving the same sequence to both.  </para></warning>  </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1ab72dd0c3b61ef9c220c3deef9d627b61"><parameter name="seed1"><paramtype>typename MLCG1::result_type</paramtype></parameter><parameter name="seed2"><paramtype>typename MLCG2::result_type</paramtype></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1additive__combine__engine">additive_combine_engine</link></computeroutput>, using <computeroutput>seed1</computeroutput> and <computeroutput>seed2</computeroutput> as the constructor argument to the first and second base generators, respectively. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1ad232f29600741cbd38b5d4f7cc33ae69"><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Contructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1additive__combine__engine">additive_combine_engine</link></computeroutput> with values from the range defined by the input iterators first and last. first will be modified to point to the element after the last one used.</para><para>Throws: <computeroutput>std::invalid_argument</computeroutput> if the input range is too small.</para><para>Exception Safety: Basic </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1a2c340ca313792aefb09f29b081b4eab4" name="seed"><type>void</type><description><para>Seeds an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1additive__combine__engine">additive_combine_engine</link></computeroutput> using the default seeds of the two base generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1ac8c3b2a146d77e2780b0d77cc4bcdfcf" name="seed"><type>void</type><parameter name="seed"><paramtype>result_type</paramtype></parameter><description><para>Seeds an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1additive__combine__engine">additive_combine_engine</link></computeroutput>, using <computeroutput>seed</computeroutput> as the seed for both base generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1a68fcf5c66bb642d0fdde63ad337d1173" name="seed"><type>void</type><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Seeds an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1additive__combine__engine">additive_combine_engine</link></computeroutput>, using <computeroutput>seq</computeroutput> to seed both base generators.</para><para>See the warning on the corresponding constructor. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1a2cc214000e2bfab9ea3b732f8fb60d89" name="seed"><type>void</type><parameter name="seed1"><paramtype>typename MLCG1::result_type</paramtype></parameter><parameter name="seed2"><paramtype>typename MLCG2::result_type</paramtype></parameter><description><para>Seeds an <computeroutput>additive_combine</computeroutput> generator, using <computeroutput>seed1</computeroutput> and <computeroutput>seed2</computeroutput> as the seeds to the first and second base generators, respectively. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1aa02db9680529fd42e461353383761ee2" name="seed"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Seeds an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1additive__combine__engine">additive_combine_engine</link></computeroutput> with values from the range defined by the input iterators first and last. first will be modified to point to the element after the last one used.</para><para>Throws: <computeroutput>std::invalid_argument</computeroutput> if the input range is too small.</para><para>Exception Safety: Basic </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1a6aade889d9da821ac8b29e20b4b9d11e" name="operator()"><type>result_type</type><description><para>Returns the next value of the generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1a11d283769455b3db64fb19f79a48a483" name="generate"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Fills a range with random values </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1a28c5063cc2b87b9a0c045767adbfebe4" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Advances the state of the generator by <computeroutput>z</computeroutput>. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1adc4b1822659d232f3fba9e8ca841f596" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="r"><paramtype>const <classname>additive_combine_engine</classname> &amp;</paramtype></parameter><description><para>Writes the state of an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1additive__combine__engine">additive_combine_engine</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. The textual representation of an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1additive__combine__engine">additive_combine_engine</link></computeroutput> is the textual representation of the first base generator followed by the textual representation of the second base generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1adb902f754f6646d10d702655abd79700" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="r"><paramtype>const <classname>additive_combine_engine</classname> &amp;</paramtype></parameter><description><para>Reads the state of an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1additive__combine__engine">additive_combine_engine</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1ac7a733fe4f991e73c14f31d6115e736a" name="operator=="><type>bool</type><parameter name="x"><paramtype>const <classname>additive_combine_engine</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const <classname>additive_combine_engine</classname> &amp;</paramtype></parameter><description><para>Returns: true iff the two <computeroutput>additive_combine_engines</computeroutput> will produce the same sequence of values. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1additive__combine__engine_1a7ec3a0b311675afbd93e84d63e5bce84" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>additive_combine_engine</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>additive_combine_engine</classname> &amp;</paramtype></parameter><description><para>Returns: true iff the two <computeroutput>additive_combine_engines</computeroutput> will produce different sequences of values. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.additive__combine_8hpp_1a6f294100a1fb0e43f16f7522f18d7460" name="ecuyer1988"><description><para>The specialization  <classname alt="boost::random::ecuyer1988">ecuyer1988</classname>  was suggested in</para><para> <blockquote><para>  "Efficient and Portable Combined Random Number Generators", Pierre L'Ecuyer, Communications of the ACM, Vol. 31, No. 6, June 1988, pp. 742-749, 774  </para></blockquote>  </para></description><type><classname>additive_combine_engine</classname>&lt; <classname>linear_congruential_engine</classname>&lt; uint32_t, 40014, 0, 2147483563 &gt;, <classname>linear_congruential_engine</classname>&lt; uint32_t, 40692, 0, 2147483399 &gt; &gt;</type></typedef>

</namespace>
</namespace>
</header>
<header id="doxygen.headers.bernoulli__distribution_8hpp" name="boost/random/bernoulli_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution" name="bernoulli_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>Instantiations of class template  <classname alt="boost::random::bernoulli_distribution">bernoulli_distribution</classname>  model a  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link> . Such a random distribution produces bool values distributed with probabilities P(true) = p and P(false) = 1-p. p is the parameter of the distribution. </para></description><class id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1_1param__type_1afad66e7cb15f1c78d9b8a70d26ceb7ae" name="distribution_type"><type><classname>bernoulli_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1_1param__type_1a0d6e68a216f12cafb217cf49d2adf378" specifiers="explicit"><parameter name="p"><paramtype>RealType</paramtype><default>0.5</default></parameter><description><para>Constructs the parameters of the distribution.</para><para>Requires: 0 &lt;= p &lt;= 1 </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1_1param__type_1a496329cb191cccc076215f451f855c80" name="p" cv="const"><type>RealType</type><description><para>Returns the p parameter of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters to a std::ostream. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters from a std::istream. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are equal. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1a753c6743a06386a59e610386e059c6f7" name="input_type"><type>int</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1aecc7b54fbc2a0c5a2a9fb56dc980f358" name="result_type"><type>bool</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1a84426917a29eb6fe58c311a595dd4120" specifiers="explicit"><parameter name="p"><paramtype>const RealType &amp;</paramtype><default>0.5</default></parameter><description><para>Constructs a  <classname alt="boost::random::bernoulli_distribution">bernoulli_distribution</classname>  object. p is the parameter of the distribution.</para><para>Requires: 0 &lt;= p &lt;= 1 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1a4fa44b463b65cac80dc18f725c6a1bc8" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs  <classname alt="boost::random::bernoulli_distribution">bernoulli_distribution</classname>  from its parameters </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1a8937049c795937e91d57434e1418a052" name="p" cv="const"><type>RealType</type><description><para>Returns: The "p" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1ad976476329fecddf9922a87c145729cd" name="min" cv="const"><type>bool</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1af109c8d36a10ac462078b82821c2f744" name="max" cv="const"><type>bool</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1ac8fd9d427cd648f6edfe7b7f2eed68c6" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1a8b2e13113faa9f2e03153b24079a791b" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1adf025df559bf1f956438759a0e52efb9" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1ab68ba632854932d72ad577106fdc3552" name="operator()" cv="const"><type>bool</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><description><para>Returns: a random variate distributed according to the  <classname alt="boost::random::bernoulli_distribution">bernoulli_distribution</classname> . </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1a74850580a35ebb30a74ec9ed9de4d1f2" name="operator()" cv="const"><type>bool</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns: a random variate distributed according to the  <classname alt="boost::random::bernoulli_distribution">bernoulli_distribution</classname>  with parameters specified by param. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1adc6880e5749abca0e807286a9fa651ed" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="bd"><paramtype>const <classname>bernoulli_distribution</classname> &amp;</paramtype></parameter><description><para>Writes the parameters of the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1a3786f7c5b736ccb32ced0271c62c337f" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="bd"><paramtype>const <classname>bernoulli_distribution</classname> &amp;</paramtype></parameter><description><para>Reads the parameters of the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1a5c133c802ca909f38d20480f6146e607" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>bernoulli_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>bernoulli_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true iff the two distributions will produce identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1bernoulli__distribution_1ac609c64570bb6332acba95d194d743e6" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>bernoulli_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>bernoulli_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true iff the two distributions will produce different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.beta__distribution_8hpp" name="boost/random/beta_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1beta__distribution" name="beta_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The beta distribution is a real-valued distribution which produces values in the range [0, 1]. It has two parameters, alpha and beta.</para><para>It has <inlineequation><alt>$\displaystyle p(x) = \frac{x^{\alpha-1}(1-x)^{\beta-1}}{B(\alpha, \beta)}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_0.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p(x) = \frac{x^{\alpha-1}(1-x)^{\beta-1}}{B(\alpha, \beta)}$</phrase></textobject></inlinemediaobject></inlineequation>. </para></description><class id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1_1param__type_1a0584c0a1863cb3d7a335045610e22193" name="distribution_type"><type><classname>beta_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1_1param__type_1a84a2e9ff2d3f8a617ca9001288a82d80" specifiers="explicit"><parameter name="alpha"><paramtype>RealType</paramtype><default>1.0</default></parameter><parameter name="beta"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1beta__distribution_1_1param__type">param_type</link></computeroutput> from the "alpha" and "beta" parameters of the distribution.</para><para>Requires: alpha &gt; 0, beta &gt; 0 </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1_1param__type_1a6f27822ea88f11b369660e2ea49e25ca" name="alpha" cv="const"><type>RealType</type><description><para>Returns the "alpha" parameter of the distribtuion. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1_1param__type_1a006e497882ebca48935e632080bbb64e" name="beta" cv="const"><type>RealType</type><description><para>Returns the "beta" parameter of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1beta__distribution_1_1param__type">param_type</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1beta__distribution_1_1param__type">param_type</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the same. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1a2e6c46bda0004752f3e1bc41b71ca383" name="result_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1a032461f55b3961c1de5bf7e6879ec8a3" name="input_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1ac2553794180bf0aca30e9a695d523f34" specifiers="explicit"><parameter name="alpha"><paramtype>RealType</paramtype><default>1.0</default></parameter><parameter name="beta"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1beta__distribution">beta_distribution</link></computeroutput> from its "alpha" and "beta" parameters.</para><para>Requires: alpha &gt; 0, beta &gt; 0 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1af4baa83d22dc546de71732e4a350cc43" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1beta__distribution">beta_distribution</link></computeroutput> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1a82f814b2db851fa012f357b295a4804e" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the beta distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1a494c92d87385de6b18bf4d20c715c11f" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed accordint to the beta distribution with parameters specified by <computeroutput>param</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1a708dd90e427fea5c2ce23777928b539a" name="alpha" cv="const"><type>RealType</type><description><para>Returns the "alpha" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1a846c22b3a4a371cddc2defd84a1d1967" name="beta" cv="const"><type>RealType</type><description><para>Returns the "beta" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1a0ec92d1830f023071fbf3365b18e96da" name="min" cv="const"><type>RealType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1ad569f70e2b9c63f80992ab7212cfc655" name="max" cv="const"><type>RealType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1acca5f7fa8d6ce286780fa0790edf0dd4" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1ae3ec415d8967e23c83378e4e126fb0ca" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1ab68526741c199e5ef0319cb998b8ede3" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1a7cd2e2e13c1174c4c7a8cc05282b67dd" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="wd"><paramtype>const <classname>beta_distribution</classname> &amp;</paramtype></parameter><description><para>Writes an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1beta__distribution">beta_distribution</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1a69b1ad8e29f0391469d6aec2e8b6edc5" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="wd"><paramtype>const <classname>beta_distribution</classname> &amp;</paramtype></parameter><description><para>Reads an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1beta__distribution">beta_distribution</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1adb8055326227d56ea4f2d8597c65a621" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>beta_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>beta_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1beta__distribution">beta_distribution</link></computeroutput> will return identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1beta__distribution_1a094a25972682a443cdb34d3efefaa5e2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>beta_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>beta_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1beta__distribution">beta_distribution</link></computeroutput> will return different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.binomial__distribution_8hpp" name="boost/random/binomial_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1binomial__distribution" name="binomial_distribution"><template>
      <template-type-parameter name="IntType"><default>int</default></template-type-parameter>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The binomial distribution is an integer valued distribution with two parameters, <computeroutput>t</computeroutput> and <computeroutput>p</computeroutput>. The values of the distribution are within the range [0,t].</para><para>The distribution function is <inlineequation><alt>$\displaystyle P(k) = {t \choose k}p^k(1-p)^{t-k}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_1.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle P(k) = {t \choose k}p^k(1-p)^{t-k}$</phrase></textobject></inlinemediaobject></inlineequation>.</para><para>The algorithm used is the BTRD algorithm described in</para><para> <blockquote><para>  "The generation of binomial random variates", Wolfgang Hormann, Journal of Statistical Computation and Simulation, Volume 46, Issue 1 &amp; 2 April 1993 , pages 101 - 110  </para></blockquote>  </para></description><class id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1_1param__type_1aa8234e9cface9baf10c0fd30f107becf" name="distribution_type"><type><classname>binomial_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1_1param__type_1a90e9f1efc0260b06eda70c492754e894" specifiers="explicit"><parameter name="t"><paramtype>IntType</paramtype><default>1</default></parameter><parameter name="p"><paramtype>RealType</paramtype><default>0.5</default></parameter><description><para>Construct a <link linkend="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1_1param__type">param_type</link> object. <computeroutput>t</computeroutput> and <computeroutput>p</computeroutput> are the parameters of the distribution.</para><para>Requires: t &gt;=0 &amp;&amp; 0 &lt;= p &lt;= 1 </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1_1param__type_1afb5c8d53fc5ae729030c628cccf70dbe" name="t" cv="const"><type>IntType</type><description><para>Returns the <computeroutput>t</computeroutput> parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1_1param__type_1ad6ca301f6b1aadb831383929a5e5e53f" name="p" cv="const"><type>RealType</type><description><para>Returns the <computeroutput>p</computeroutput> parameter of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters of the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1_1param__type_1a95ac9818d02462ff9019342dd2f057c8" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype><classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters of the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the parameters have the same values. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the parameters have different values. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1a0d56bc54f6c369a114985a62772db6ce" name="result_type"><type>IntType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1a77c6bfb9fd7c7323ad191345d72316da" name="input_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1a7ef0d1adf900e0221508be1652da6cd6" specifiers="explicit"><parameter name="t"><paramtype>IntType</paramtype><default>1</default></parameter><parameter name="p"><paramtype>RealType</paramtype><default>0.5</default></parameter><description><para>Construct a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1binomial__distribution">binomial_distribution</link></computeroutput> object. <computeroutput>t</computeroutput> and <computeroutput>p</computeroutput> are the parameters of the distribution.</para><para>Requires: t &gt;=0 &amp;&amp; 0 &lt;= p &lt;= 1 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1ae59678e57c4c6ab96665e608ffa4698f" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Construct an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1binomial__distribution">binomial_distribution</link></computeroutput> object from the parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1aeb3f1b8679f7f35706a1effac1ffda7c" name="operator()" cv="const"><type>IntType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the binomial distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1a40e0eadef51b9ff2b6034218cd074f92" name="operator()" cv="const"><type>IntType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the binomial distribution with parameters specified by <computeroutput>param</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1ae8b0c199645e4a6891d8a03600ead484" name="t" cv="const"><type>IntType</type><description><para>Returns the <computeroutput>t</computeroutput> parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1a4a3b511ef18b5e945593714212ba9fe1" name="p" cv="const"><type>RealType</type><description><para>Returns the <computeroutput>p</computeroutput> parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1a65b7d5d322b00d6219fc96a52964f20b" name="min" cv="const"><type>IntType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1a72eca2ffa557b8d110e22badba960f59" name="max" cv="const"><type>IntType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1a85d63a34a9380899d7c6f87060130faf" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1a78a10d29dab9c0e74607d96caf4b8610" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1a5ecfe07c09df8501b6c7d3575e64c025" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1a29edf0a5a9fb25149d07edfebc087e03" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="bd"><paramtype>const <classname>binomial_distribution</classname> &amp;</paramtype></parameter><description><para>Writes the parameters of the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1ab6a351f52af25299aba5c1511f918287" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="bd"><paramtype><classname>binomial_distribution</classname> &amp;</paramtype></parameter><description><para>Reads the parameters of the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1a0afdaada3484869b1362f89678c4cd27" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>binomial_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>binomial_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will produce the same sequence of values, given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1binomial__distribution_1ac353fe71df8ced42dc23f4e1ce4dfedc" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>binomial_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>binomial_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions could produce different sequences of values, given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.cauchy__distribution_8hpp" name="boost/random/cauchy_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution" name="cauchy_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The cauchy distribution is a continuous distribution with two parameters, median and sigma.</para><para>It has <inlineequation><alt>$\displaystyle p(x) = \frac{\sigma}{\pi(\sigma^2 + (x-m)^2)}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_2.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p(x) = \frac{\sigma}{\pi(\sigma^2 + (x-m)^2)}$</phrase></textobject></inlinemediaobject></inlineequation> </para></description><class id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1_1param__type_1a4e2534ea0ef0de7b94c5b2ee7c35c3ac" name="distribution_type"><type><classname>cauchy_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1_1param__type_1ad510632a28248b3baf2f3d0380ce7d3f" specifiers="explicit"><parameter name="median"><paramtype>RealType</paramtype><default>0.0</default></parameter><parameter name="sigma"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs the parameters of the cauchy distribution. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1_1param__type_1a05b03fbd70ba644cc8c5597d5aa0be76" name="median" cv="const"><type>RealType</type><description><para>Returns the median of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1_1param__type_1ac009289d5dffacf089e779a9974183e3" name="sigma" cv="const"><type>RealType</type><description><para>Returns the sigma parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1_1param__type_1aa2985b6c869719efe9d0bb42800a250d" name="a" cv="const"><type>RealType</type><description><para>Returns the median of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1_1param__type_1aba3a3d2d6f17acbdc96141312c55062f" name="b" cv="const"><type>RealType</type><description><para>Returns the sigma parameter of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters to a std::ostream. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters from a std::istream. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are equal. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1ae01b92f59fdf6518a7a070b69acdf573" name="input_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1a2993085e9754cf0f8bee631eaaa084fc" name="result_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1a82367d4cbd97b0a33ea45a58b2d46fbc" specifiers="explicit"><parameter name="median"><paramtype>RealType</paramtype><default>0.0</default></parameter><parameter name="sigma"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs a  <classname alt="boost::random::cauchy_distribution">cauchy_distribution</classname>  with the paramters <computeroutput>median</computeroutput> and <computeroutput>sigma</computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1a24d585b71a752426bc05b38a9d0b5ee2" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs a  <classname alt="boost::random::cauchy_distribution">cauchy_distribution</classname>  from it's parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1a6d2101df7bbe8c712aceac5e36eaa9ce" name="median" cv="const"><type>RealType</type><description><para>Returns: the "median" parameter of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1a9b1015e677f174a41a62968a4cb6d35a" name="sigma" cv="const"><type>RealType</type><description><para>Returns: the "sigma" parameter of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1ae9547629dee63cc63710fa3ba12a95ad" name="a" cv="const"><type>RealType</type><description><para>Returns: the "median" parameter of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1ad6b581b351ec76c45a1b2ec717fc1484" name="b" cv="const"><type>RealType</type><description><para>Returns: the "sigma" parameter of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1a6a063a8dd03b1837cc41a6ae8bccd183" name="min" cv="const"><type>RealType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1a990db083023333721dcd54d210293eeb" name="max" cv="const"><type>RealType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1a51ae1912bc868e9344cc53f8fbec9dd2" name="param" cv="const"><type><classname>param_type</classname></type></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1a344103c6a920dff7063b4984e2d5a0a7" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1a2883e86fb205c63d92cf37e7ed8a36fd" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1a6740247de9bf7cd4932d686697919afc" name="operator()"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><description><para>Returns: A random variate distributed according to the cauchy distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1a59b6f223c6962481821db475e86b6916" name="operator()"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns: A random variate distributed according to the cauchy distribution with parameters specified by param. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1aa75bd47af4a0f5da3c35cc49118a5316" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="cd"><paramtype>const <classname>cauchy_distribution</classname> &amp;</paramtype></parameter><description><para>Writes the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1a81edcd8623b642ac900911756e12e3e3" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="cd"><paramtype>const <classname>cauchy_distribution</classname> &amp;</paramtype></parameter><description><para>Reads the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1a61c0f8ca7381803d0d01f8366a08e24b" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>cauchy_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>cauchy_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will produce identical sequences of values, given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1cauchy__distribution_1a1058b2ccef280ce825eabb0b680d2478" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>cauchy_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>cauchy_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions may produce different sequences of values, given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.chi__squared__distribution_8hpp" name="boost/random/chi_squared_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution" name="chi_squared_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The chi squared distribution is a real valued distribution with one parameter, <computeroutput>n</computeroutput>. The distribution produces values &gt; 0.</para><para>The distribution function is <inlineequation><alt>$\displaystyle P(x) = \frac{x^{(n/2)-1}e^{-x/2}}{\Gamma(n/2)2^{n/2}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_3.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle P(x) = \frac{x^{(n/2)-1}e^{-x/2}}{\Gamma(n/2)2^{n/2}}$</phrase></textobject></inlinemediaobject></inlineequation>. </para></description><class id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1_1param__type_1a81c382cbc806b89b3d3bb781adab57db" name="distribution_type"><type><classname>chi_squared_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1_1param__type_1a8151245e0d31060f490a5cf7470914df" specifiers="explicit"><parameter name="n"><paramtype>RealType</paramtype><default>1</default></parameter><description><para>Construct a <link linkend="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1_1param__type">param_type</link> object. <computeroutput>n</computeroutput> is the parameter of the distribution.</para><para>Requires: t &gt;=0 &amp;&amp; 0 &lt;= p &lt;= 1 </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1_1param__type_1a940bd0769210caf586cba4a08ae121cc" name="n" cv="const"><type>RealType</type><description><para>Returns the <computeroutput>n</computeroutput> parameter of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters of the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1_1param__type_1a95ac9818d02462ff9019342dd2f057c8" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype><classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters of the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the parameters have the same values. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the parameters have different values. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1a972d9f66796f3858340175564e35a0db" name="result_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1acb22bc79ea67b60fa7689fa7c2e49b3d" name="input_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1a2f3f276eb66d6be9da6b2d7cf26d32e9" specifiers="explicit"><parameter name="n"><paramtype>RealType</paramtype><default>1</default></parameter><description><para>Construct a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution">chi_squared_distribution</link></computeroutput> object. <computeroutput>n</computeroutput> is the parameter of the distribution.</para><para>Requires: t &gt;=0 &amp;&amp; 0 &lt;= p &lt;= 1 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1a155c90b58fc1251ec88eb019160edd0f" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Construct an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution">chi_squared_distribution</link></computeroutput> object from the parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1aea487b8ed668e71cc37ebcbe6bc48ba7" name="operator()"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the chi squared distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1a2e2fb90391b8a68bdda804e4dae102cf" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the chi squared distribution with parameters specified by <computeroutput>param</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1ac476fb8d88bf7fde12d39aa260486dce" name="n" cv="const"><type>RealType</type><description><para>Returns the <computeroutput>n</computeroutput> parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1a390c85f5c513221cc72605bc2842f9c9" name="min" cv="const"><type>RealType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1a18babeb1e9640948bb6e23767c5f886f" name="max" cv="const"><type>RealType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1a27a6e558e19e5c6c0e500fc665f8816a" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1a5320d8302ae9c2fc3e20916f3dfbb7c2" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1a5612a2ace1d8477ffe7954ebd4d838c4" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1a74734c5be805be14d1a4768b6090d903" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="c2d"><paramtype>const <classname>chi_squared_distribution</classname> &amp;</paramtype></parameter><description><para>Writes the parameters of the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1a8f6e1326dcf01f1300de0716c77d9f82" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="c2d"><paramtype><classname>chi_squared_distribution</classname> &amp;</paramtype></parameter><description><para>Reads the parameters of the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1a788dfcb74873e759931d3a3ff3342b8c" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>chi_squared_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>chi_squared_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will produce the same sequence of values, given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1chi__squared__distribution_1a226cc7e5e438d5eeab5725dfcb40c2bc" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>chi_squared_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>chi_squared_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions could produce different sequences of values, given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.discard__block_8hpp" name="boost/random/discard_block.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1discard__block__engine" name="discard_block_engine"><template>
      <template-type-parameter name="UniformRandomNumberGenerator"/>
      <template-nontype-parameter name="p"><type>std::size_t</type></template-nontype-parameter>
      <template-nontype-parameter name="r"><type>std::size_t</type></template-nontype-parameter>
    </template><description><para>The class template  <classname alt="boost::random::discard_block_engine">discard_block_engine</classname>  is a model of  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link> . It modifies another generator by discarding parts of its output. Out of every block of <computeroutput>p</computeroutput> results, the first <computeroutput>r</computeroutput> will be returned and the rest discarded.</para><para>Requires: 0 &lt; p &lt;= r </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1a03d0ea583a9379bbdd3a781f13d50d7e" name="base_type"><type>UniformRandomNumberGenerator</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1abd4cb957f16940de15749fdab8335f6e" name="result_type"><type>base_type::result_type</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1a8ea99f2cb83031da322f252ae43e247b" name="block_size" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1ac1344d6ddcfbc5102c9ff94382ac16f7" name="used_block" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1aa97706544109a0c5297a4f2018b72baf" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1ad6867577becc1d6b783020ed0f310acb" name="total_block" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1abec3302b4d322bfa75341cc233ebae46" name="returned_block" specifiers="static"><type>const std::size_t</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1ae6193e90ecaa1305420da0ab750049b2"><description><para>Uses the default seed for the base generator. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1a39f6acaf87d5fca584d75b30601f3446" specifiers="explicit"><parameter name="rng"><paramtype>const base_type &amp;</paramtype></parameter><description><para>Constructs a new  <classname alt="boost::random::discard_block_engine">discard_block_engine</classname>  with a copy of rng. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1a0b09652165a819d5faf74f1c71cabf8b" specifiers="explicit"><parameter name="rng"><paramtype>base_type &amp;&amp;</paramtype></parameter><description><para>Constructs a new  <classname alt="boost::random::discard_block_engine">discard_block_engine</classname>  with rng. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1a511a705d74cc20690c046dec4f7b4da7" specifiers="explicit"><parameter name="value"><paramtype>seed_type</paramtype></parameter><description><para>Creates a new  <classname alt="boost::random::discard_block_engine">discard_block_engine</classname>  and seeds the underlying generator with <computeroutput>value</computeroutput> </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1a2cf69dcbb6f5b8c15a350ecd64e659e6" specifiers="explicit"><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Creates a new  <classname alt="boost::random::discard_block_engine">discard_block_engine</classname>  and seeds the underlying generator with <computeroutput>seq</computeroutput> </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1ae252cf356b825282b665c34dacea0af8"><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Creates a new  <classname alt="boost::random::discard_block_engine">discard_block_engine</classname>  and seeds the underlying generator with first and last. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1ada19134d45503116df64bca65eba1d20" name="seed"><type>void</type><description><para>default seeds the underlying generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1add3934b5661aff8d5477383eb535fd7b" name="seed"><type>void</type><parameter name="s"><paramtype>seed_type</paramtype></parameter><description><para>Seeds the underlying generator with s. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1ad7b25ab2db67a0e7833601f7d77516a8" name="seed"><type>void</type><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Seeds the underlying generator with seq. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1ab53538b62cb16d17eb2fa8f7c7aec5aa" name="seed"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Seeds the underlying generator with first and last. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1a619c04df6f7fe29f903f0f61bb93c77c" name="base" cv="const"><type>const base_type &amp;</type><description><para>Returns the underlying engine. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1ae72bc221cc088ff13ad43e81e9326e8b" name="operator()"><type>result_type</type><description><para>Returns the next value of the generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1a868c3d38b93760e055b1ada88932655f" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter></method>
<method id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1abf5115c36756385264d1f4181510d2c1" name="generate"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1af5b8d205acdbb1e3623c1d4b4f00971d" name="min" specifiers="static"><type>result_type</type><description><para>Returns the smallest value that the generator can produce. This is the same as the minimum of the underlying generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1ab8bf97732d61b140c3e159a8cedb9fdf" name="max" specifiers="static"><type>result_type</type><description><para>Returns the largest value that the generator can produce. This is the same as the maximum of the underlying generator. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1adb819e6f37e84b45f75385c941605b74" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="s"><paramtype>const <classname>discard_block_engine</classname> &amp;</paramtype></parameter><description><para>Writes a  <classname alt="boost::random::discard_block_engine">discard_block_engine</classname>  to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1aa19b569d94a451dd24daafadecd05c3f" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="s"><paramtype><classname>discard_block_engine</classname> &amp;</paramtype></parameter><description><para>Reads a  <classname alt="boost::random::discard_block_engine">discard_block_engine</classname>  from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1a46aca8f067a5bbf7daea2254c1898358" name="operator=="><type>bool</type><parameter name="x"><paramtype>const <classname>discard_block_engine</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const <classname>discard_block_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce identical sequences. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discard__block__engine_1a14d64d7e13f1af66fc27b772dcd3ba4e" name="operator!="><type>bool</type><parameter name="x"><paramtype>const <classname>discard_block_engine</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const <classname>discard_block_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce different sequences. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.discrete__distribution_8hpp" name="boost/random/discrete_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1discrete__distribution" name="discrete_distribution"><template>
      <template-type-parameter name="IntType"><default>int</default></template-type-parameter>
      <template-type-parameter name="WeightType"><default>double</default></template-type-parameter>
    </template><description><para>The class <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1discrete__distribution">discrete_distribution</link></computeroutput> models a  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link> . It produces integers in the range [0, n) with the probability of producing each value is specified by the parameters of the distribution. </para></description><class id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1_1param__type_1acccc630aacc8eb119fd07f1838609a7f" name="distribution_type"><type><classname>discrete_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1_1param__type_1a861b7711f135ab7bc01d00c409d16fe5"><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1_1param__type">param_type</link></computeroutput> object, representing a distribution with <inlineequation><alt>$p(0) = 1$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_4.png"/></imageobject><textobject role="tex"><phrase>$p(0) = 1$</phrase></textobject></inlinemediaobject></inlineequation> and <inlineequation><alt>$p(k|k&gt;0) = 0$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_9.png"/></imageobject><textobject role="tex"><phrase>$p(k|k&gt;0) = 0$</phrase></textobject></inlinemediaobject></inlineequation>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1_1param__type_1ade61ae9c4ebb8ea9ae8271e7fd12bbdd"><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>If <computeroutput>first</computeroutput> == <computeroutput>last</computeroutput>, equivalent to the default constructor. Otherwise, the values of the range represent weights for the possible values of the distribution. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1_1param__type_1a4f6e5aef4d818a850ce0a0af5a2efaf9"><parameter name="wl"><paramtype>const std::initializer_list&lt; WeightType &gt; &amp;</paramtype></parameter><description><para>If wl.size() == 0, equivalent to the default constructor. Otherwise, the values of the <computeroutput>initializer_list</computeroutput> represent weights for the possible values of the distribution. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1_1param__type_1af3b9b1da9b191cb1dd4391b74a9d21a3" specifiers="explicit"><template>
          <template-type-parameter name="Range"/>
        </template><parameter name="range"><paramtype>const Range &amp;</paramtype></parameter><description><para>If the range is empty, equivalent to the default constructor. Otherwise, the elements of the range represent weights for the possible values of the distribution. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1_1param__type_1a7d000cd1c8edadde06ed1894f5791e69"><template>
          <template-type-parameter name="Func"/>
        </template><parameter name="nw"><paramtype>std::size_t</paramtype></parameter><parameter name="xmin"><paramtype>double</paramtype></parameter><parameter name="xmax"><paramtype>double</paramtype></parameter><parameter name="fw"><paramtype>Func</paramtype></parameter><description><para>If nw is zero, equivalent to the default constructor. Otherwise, the range of the distribution is [0, nw), and the weights are found by calling fw with values evenly distributed between <inlineequation><alt>$\mbox{xmin} + \delta/2$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_6.png"/></imageobject><textobject role="tex"><phrase>$\mbox{xmin} + \delta/2$</phrase></textobject></inlinemediaobject></inlineequation> and <inlineequation><alt>$\mbox{xmax} - \delta/2$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_7.png"/></imageobject><textobject role="tex"><phrase>$\mbox{xmax} - \delta/2$</phrase></textobject></inlinemediaobject></inlineequation>, where <inlineequation><alt>$\delta = (\mbox{xmax} - \mbox{xmin})/\mbox{nw}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_8.png"/></imageobject><textobject role="tex"><phrase>$\delta = (\mbox{xmax} - \mbox{xmin})/\mbox{nw}$</phrase></textobject></inlinemediaobject></inlineequation>. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1_1param__type_1abd81e03872f5f99cc1e5628e287ae848" name="probabilities" cv="const"><type>std::vector&lt; WeightType &gt;</type><description><para>Returns a vector containing the probabilities of each possible value of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the same. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a9205e2f8635c5c4c00d4f6329ad148db" name="input_type"><type>WeightType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a562a84efeaf963efbd8d262a59a65a0a" name="result_type"><type>IntType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a006a286517d16071dc930a8d3944eb40"><description><para>Creates a new <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1discrete__distribution">discrete_distribution</link></computeroutput> object that has <inlineequation><alt>$p(0) = 1$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_4.png"/></imageobject><textobject role="tex"><phrase>$p(0) = 1$</phrase></textobject></inlinemediaobject></inlineequation> and <inlineequation><alt>$p(i|i&gt;0) = 0$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_5.png"/></imageobject><textobject role="tex"><phrase>$p(i|i&gt;0) = 0$</phrase></textobject></inlinemediaobject></inlineequation>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1ac6b326c52f420c0710272dd60118d985"><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1discrete__distribution">discrete_distribution</link> from an iterator range. If <computeroutput>first</computeroutput> == <computeroutput>last</computeroutput>, equivalent to the default constructor. Otherwise, the values of the range represent weights for the possible values of the distribution. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a754a299898534f6b8be94e400ab0dd47"><parameter name="wl"><paramtype>std::initializer_list&lt; WeightType &gt;</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1discrete__distribution">discrete_distribution</link></computeroutput> from a <computeroutput>std::initializer_list</computeroutput>. If the <computeroutput>initializer_list</computeroutput> is empty, equivalent to the default constructor. Otherwise, the values of the <computeroutput>initializer_list</computeroutput> represent weights for the possible values of the distribution. For example, given the distribution</para><para><programlisting language="c++"><link linkend="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a006a286517d16071dc930a8d3944eb40">discrete_distribution&lt;&gt;</link> dist{1, 4, 5};
</programlisting></para><para>The probability of a 0 is 1/10, the probability of a 1 is 2/5, the probability of a 2 is 1/2, and no other values are possible. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a480850a4c29f3d2ebdf16d278e4ed5e7" specifiers="explicit"><template>
          <template-type-parameter name="Range"/>
        </template><parameter name="range"><paramtype>const Range &amp;</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1discrete__distribution">discrete_distribution</link> from a Boost.Range range. If the range is empty, equivalent to the default constructor. Otherwise, the values of the range represent weights for the possible values of the distribution. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1ac3af6ddce27b63682a21331c3d1b797b"><template>
          <template-type-parameter name="Func"/>
        </template><parameter name="nw"><paramtype>std::size_t</paramtype></parameter><parameter name="xmin"><paramtype>double</paramtype></parameter><parameter name="xmax"><paramtype>double</paramtype></parameter><parameter name="fw"><paramtype>Func</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1discrete__distribution">discrete_distribution</link> that approximates a function. If nw is zero, equivalent to the default constructor. Otherwise, the range of the distribution is [0, nw), and the weights are found by calling fw with values evenly distributed between <inlineequation><alt>$\mbox{xmin} + \delta/2$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_6.png"/></imageobject><textobject role="tex"><phrase>$\mbox{xmin} + \delta/2$</phrase></textobject></inlinemediaobject></inlineequation> and <inlineequation><alt>$\mbox{xmax} - \delta/2$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_7.png"/></imageobject><textobject role="tex"><phrase>$\mbox{xmax} - \delta/2$</phrase></textobject></inlinemediaobject></inlineequation>, where <inlineequation><alt>$\delta = (\mbox{xmax} - \mbox{xmin})/\mbox{nw}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_8.png"/></imageobject><textobject role="tex"><phrase>$\delta = (\mbox{xmax} - \mbox{xmin})/\mbox{nw}$</phrase></textobject></inlinemediaobject></inlineequation>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a98d0ea659919f23b5d2dcf2afea97cb7" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1discrete__distribution">discrete_distribution</link> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a5661a895fb42f7d69313a8ce71ca95cf" name="operator()" cv="const"><type>IntType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a value distributed according to the parameters of the <link linkend="doxygen.headers.classboost_1_1random_1_1discrete__distribution">discrete_distribution</link>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a75279b4ccbcde054d74f1d6444bb9105" name="operator()" cv="const"><type>IntType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a value distributed according to the parameters specified by param. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a5e09505aacda138bced472644237192b" name="min" cv="const"><type>result_type</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a6c545755b04ff52aa2ff3cf6e73e5f59" name="max" cv="const"><type>result_type</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a9f713d7094e82c668857c7762c0bf08a" name="probabilities" cv="const"><type>std::vector&lt; WeightType &gt;</type><description><para>Returns a vector containing the probabilities of each value of the distribution. For example, given</para><para><programlisting language="c++"><link linkend="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a006a286517d16071dc930a8d3944eb40">discrete_distribution&lt;&gt;</link> dist = { 1, 4, 5 };
std::vector&lt;double&gt; p = dist.param();
</programlisting></para><para>the vector, p will contain {0.1, 0.4, 0.5}.</para><para>If <computeroutput>WeightType</computeroutput> is integral, then the weights will be returned unchanged. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a24387bac3d3961e3e91c160e78af20c3" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1abc9eb0c5f2098d39f1a8390b84ec9a9e" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a96ef439ac6014dc8fa3fad136a7a4db4" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a6d79d1fa37ce80bf01f5bd5324ace4c3" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="dd"><paramtype>const <classname>discrete_distribution</classname> &amp;</paramtype></parameter><description><para>Writes a distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a32c7054cca68cc57d265cb419c1f4141" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="dd"><paramtype>const <classname>discrete_distribution</classname> &amp;</paramtype></parameter><description><para>Reads a distribution from a <computeroutput>std::istream</computeroutput> </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a3026c723cb18b563ed2b4c43c8cdaa90" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>discrete_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>discrete_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will return the same sequence of values, when passed equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1discrete__distribution_1a119f950ff56eeea03b439d36f6dabd0a" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>discrete_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>discrete_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions may return different sequences of values, when passed equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.exponential__distribution_8hpp" name="boost/random/exponential_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1exponential__distribution" name="exponential_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The exponential distribution is a model of  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link>  with a single parameter lambda.</para><para>It has <inlineequation><alt>$\displaystyle p(x) = \lambda e^{-\lambda x}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_10.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p(x) = \lambda e^{-\lambda x}$</phrase></textobject></inlinemediaobject></inlineequation></para><para>The implementation uses the "ziggurat" algorithm, as described in</para><para> <blockquote><para>  "The Ziggurat Method for Generating Random Variables", George Marsaglia and Wai Wan Tsang, Journal of Statistical Software Volume 5, Number 8 (2000), 1-7.  </para></blockquote>  </para></description><class id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1_1param__type_1abc2ef0d2f481186b85468467b2b9e985" name="distribution_type"><type><classname>exponential_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1_1param__type_1a5a7a73b900d78b2bbd8314e5b053922f"><parameter name="lambda"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs parameters with a given lambda.</para><para>Requires: lambda &gt; 0 </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1_1param__type_1a472c6e34127f1d707fbaa2591462ca6b" name="lambda" cv="const"><type>RealType</type><description><para>Returns the lambda parameter of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are equal. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1a2dfb9a99d8bf46c003c64c157eb74984" name="input_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1a3788a7c0d4451a60a64211c82ab6131f" name="result_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1a1e9e3846a7d446cd6c91b05e18aa686e" specifiers="explicit"><parameter name="lambda"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs an <link linkend="doxygen.headers.classboost_1_1random_1_1exponential__distribution">exponential_distribution</link> with a given lambda.</para><para>Requires: lambda &gt; 0 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1ad1eeecc9cdc6d2f6190e612bc801dbc9" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs an <link linkend="doxygen.headers.classboost_1_1random_1_1exponential__distribution">exponential_distribution</link> from its parameters </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1a78ac00cedda11cb4ee9a15fa30e09354" name="lambda" cv="const"><type>RealType</type><description><para>Returns the lambda parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1ac350e2f35203191c2c22ca46e03f30c0" name="min" cv="const"><type>RealType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1a6280abb1497f096584c64e4ba386dc57" name="max" cv="const"><type>RealType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1ac62a38b5060faa12ad9a1bac59ab709e" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1a62c7b4f26c1a214271bdcdca10def271" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1a4f0766a5f2504910c34f471de522a8b9" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1a994c38e887adf3eeec16593dcd62582b" name="operator()" cv="const"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the exponential distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1a0e061e856c2080f5fa8bd92047b62248" name="operator()" cv="const"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the exponential distribution with parameters specified by param. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1a02ab6d24181f1dd6b2f1a387ebe88f95" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="ed"><paramtype>const <classname>exponential_distribution</classname> &amp;</paramtype></parameter><description><para>Writes the distribution to a std::ostream. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1ab44586654c6af4614b03a93f032c3418" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="ed"><paramtype>const <classname>exponential_distribution</classname> &amp;</paramtype></parameter><description><para>Reads the distribution from a std::istream. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1ab81a315939fe0cddc4f3764d0938406f" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>exponential_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>exponential_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true iff the two distributions will produce identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1exponential__distribution_1a442190cef7645076788fef24b574b494" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>exponential_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>exponential_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true iff the two distributions will produce different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.extreme__value__distribution_8hpp" name="boost/random/extreme_value_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution" name="extreme_value_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The extreme value distribution is a real valued distribution with two parameters a and b.</para><para>It has <inlineequation><alt>$\displaystyle p(x) = \frac{1}{b}e^{\frac{a-x}{b} - e^\frac{a-x}{b}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_11.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p(x) = \frac{1}{b}e^{\frac{a-x}{b} - e^\frac{a-x}{b}}$</phrase></textobject></inlinemediaobject></inlineequation>. </para></description><class id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1_1param__type_1a5c78a72fe25edc1b3adf80fd836fb00a" name="distribution_type"><type><classname>extreme_value_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1_1param__type_1ac73738ec8dcad786c74c070741d5b0fc" specifiers="explicit"><parameter name="a"><paramtype>RealType</paramtype><default>1.0</default></parameter><parameter name="b"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1_1param__type">param_type</link></computeroutput> from the "a" and "b" parameters of the distribution.</para><para>Requires: b &gt; 0 </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1_1param__type_1a0a09b57f62efe949f7dc9c374ffcc6bb" name="a" cv="const"><type>RealType</type><description><para>Returns the "a" parameter of the distribtuion. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1_1param__type_1af1ef0e5d807a5565e94eaf9fc5fc16c1" name="b" cv="const"><type>RealType</type><description><para>Returns the "b" parameter of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1_1param__type">param_type</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1_1param__type">param_type</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the same. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1a0e74aba0aaa89e259a697855c79fe2bc" name="result_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1aa154bfaea21e350a74a8e6942432bc78" name="input_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1a374b869e7136aa15d0c32b775dc9b1fc" specifiers="explicit"><parameter name="a"><paramtype>RealType</paramtype><default>1.0</default></parameter><parameter name="b"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution">extreme_value_distribution</link></computeroutput> from its "a" and "b" parameters.</para><para>Requires: b &gt; 0 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1a2601188191cae1d0a84d68d57a01b83d" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution">extreme_value_distribution</link></computeroutput> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1a86b038156c8d468c1a7273d81e9d4ce7" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution">extreme_value_distribution</link></computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1a3ea0bc5065a02abaedceae21c3cdc0d2" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed accordint to the extreme value distribution with parameters specified by <computeroutput>param</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1a39eebebc556547eb4316902b55094907" name="a" cv="const"><type>RealType</type><description><para>Returns the "a" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1a45d059e5f329dd9e9b4d6939660c7ad0" name="b" cv="const"><type>RealType</type><description><para>Returns the "b" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1a3c58e60fe84479f0b3983401aa76a643" name="min" cv="const"><type>RealType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1af7b74c230e6a6d9ff7c946132b354fab" name="max" cv="const"><type>RealType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1a9e367068d9a9d9d25f3fadcf76b05993" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1a8d56d6479ac0b7a851177e0508671381" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1a143f0a5a7b83e9b8db699ba4e00b1741" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1a096653e4e130582c5477b0e0931058b8" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="wd"><paramtype>const <classname>extreme_value_distribution</classname> &amp;</paramtype></parameter><description><para>Writes an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution">extreme_value_distribution</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1aa7368efd2f7eca240ec4c1828ab0440f" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="wd"><paramtype>const <classname>extreme_value_distribution</classname> &amp;</paramtype></parameter><description><para>Reads an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution">extreme_value_distribution</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1acab28ed2aa0277f4c559bfb5c77ccf44" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>extreme_value_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>extreme_value_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution">extreme_value_distribution</link></computeroutput> will return identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution_1ad0c6c3411afc68efc7ddd4a79f3cb7ce" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>extreme_value_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>extreme_value_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1extreme__value__distribution">extreme_value_distribution</link></computeroutput> will return different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.faure_8hpp" name="boost/random/faure.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1faure__engine" name="faure_engine"><template>
      <template-type-parameter name="RealType"/>
      <template-type-parameter name="SeqSizeT"/>
      <template-type-parameter name="PrimeTable"><default>default_faure_prime_table</default></template-type-parameter>
    </template><description><para>Instantiations of class template <link linkend="doxygen.headers.classboost_1_1random_1_1faure__engine">faure_engine</link> model a  <link linkend="boost_random.reference.concepts.quasi_random_number_generator">quasi-random number generator</link> . The <link linkend="doxygen.headers.classboost_1_1random_1_1faure__engine">faure_engine</link> uses the algorithm described in  <blockquote><para>  Henri Faure, Discrepance de suites associees a un systeme de numeration (en dimension s), Acta Arithmetica, Volume 41, 1982, pages 337-351.  </para></blockquote>   <blockquote><para>  Bennett Fox, Algorithm 647: Implementation and Relative Efficiency of Quasirandom Sequence Generators, ACM Transactions on Mathematical Software, Volume 12, Number 4, December 1986, pages 362-376.  </para></blockquote> </para><para>In the following documentation <computeroutput>X</computeroutput> denotes the concrete class of the template <link linkend="doxygen.headers.classboost_1_1random_1_1faure__engine">faure_engine</link> returning objects of type <computeroutput>RealType</computeroutput>, u and v are the values of <computeroutput>X</computeroutput>.</para><para>Some member functions may throw exceptions of type <computeroutput>std::bad_alloc</computeroutput>. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1faure__engine_1af2a10b4e576981fc0b4e75130689197d" name="result_type"><type>RealType</type></typedef>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1faure__engine_1a4704fa78470064069af3494d96dc0bce" name="operator=="><type>bool</type><parameter name="x"><paramtype>const <classname>faure_engine</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const <classname>faure_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce identical sequences of outputs. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1faure__engine_1a07d4a0694455aac437d5b60e4e054f25" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>faure_engine</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>faure_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce different sequences of outputs. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1faure__engine_1a0cf3077a07c05b511007331447c1e5af" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="s"><paramtype>const <classname>faure_engine</classname> &amp;</paramtype></parameter><description><para>Writes the textual representation of the generator to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1faure__engine_1ad42881350d193cf2b3460040de83fefa" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="s"><paramtype>const <classname>faure_engine</classname> &amp;</paramtype></parameter><description><para>Reads the textual representation of the generator from a <computeroutput>std::istream</computeroutput>. </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1faure__engine_1af3d43ccbe56f449a190352970d67d0c6" name="min" specifiers="static"><type>result_type</type><description><para>Returns: Tight lower bound on the set of values returned by operator().</para><para>Throws: nothing.    </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1faure__engine_1a6b05ac76d5bf5bbab25b1a3eab427b7b" name="max" specifiers="static"><type>result_type</type><description><para>Returns: Tight upper bound on the set of values returned by operator().</para><para>Throws: nothing.    </para></description></method>
</method-group>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1faure__engine_1acc74eb56b4bbe1dd8c7df75753f23ab4" specifiers="explicit"><parameter name="s"><paramtype>std::size_t</paramtype></parameter><description><para>Effects: Constructs the <computeroutput>s</computeroutput>-dimensional default Faure quasi-random number generator.</para><para>Throws: bad_alloc, invalid_argument. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1faure__engine_1a15917652a308df55205127e5635d3577" name="seed"><type>void</type><parameter name="init"><paramtype>SeqSizeT</paramtype><default>0</default></parameter><description><para>Effects: Effectively sets the quasi-random number generator state to the <computeroutput>init</computeroutput>-th vector in the <computeroutput>s</computeroutput>-dimensional quasi-random domain, where <computeroutput>s</computeroutput> == X::dimension(). <programlisting language="c++">X u, v;
for(int i = 0; i &lt; N; ++i)
    for( std::size_t j = 0; j &lt; u.dimension(); ++j )
        u();
v.seed(N);
assert(u() == v());
</programlisting>    Throws: bad_alloc. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1faure__engine_1abd583a13b43259042d5ae4b2b51df6b5" name="dimension" cv="const"><type>std::size_t</type><description><para>Returns: The dimension of of the quasi-random domain.</para><para>Throws: nothing.    </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1faure__engine_1af68c951627d31baada6b860dca37f761" name="operator()"><type>result_type</type><description><para>Returns: Returns a successive element of an <computeroutput>s</computeroutput>-dimensional (s = X::dimension()) vector at each invocation. When all elements are exhausted, X::operator() begins anew with the starting element of a subsequent <computeroutput>s</computeroutput>-dimensional vector.</para><para>Throws: range_error.    </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1faure__engine_1ab2b142ac92598261e0e29e097ba12d23" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Effects: Advances *this state as if <computeroutput>z</computeroutput> consecutive X::operator() invocations were executed. <programlisting language="c++">X u = v;
for(int i = 0; i &lt; N; ++i)
    u();
v.discard(N);
assert(u() == v());
</programlisting></para><para>Throws: range_error.    Throws: bad_alloc. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.faure_8hpp_1a6c7dfe86dd067eba2cc01d281e6c230d" name="faure"><description><para><important><para>This specialization of  <classname alt="boost::random::faure_engine">faure_engine</classname>  supports up to 1117 dimensions.</para>
</important>
However, it is possible to provide your own prime table to  <classname alt="boost::random::faure_engine">faure_engine</classname>  should the default one be insufficient. </para></description><type><classname>faure_engine</classname>&lt; double, boost::uint_least64_t, default_faure_prime_table &gt;</type></typedef>

</namespace>
</namespace>
</header>
<header id="doxygen.headers.fisher__f__distribution_8hpp" name="boost/random/fisher_f_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution" name="fisher_f_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The Fisher F distribution is a real valued distribution with two parameters m and n.</para><para>It has     <inlineequation><alt>$\displaystyle p(x) =
  \frac{\Gamma((m+n)/2)}{\Gamma(m/2)\Gamma(n/2)}
  \left(\frac{m}{n}\right)^{m/2}
  x^{(m/2)-1} \left(1+\frac{mx}{n}\right)^{-(m+n)/2}
$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_12.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p(x) =
  \frac{\Gamma((m+n)/2)}{\Gamma(m/2)\Gamma(n/2)}
  \left(\frac{m}{n}\right)^{m/2}
  x^{(m/2)-1} \left(1+\frac{mx}{n}\right)^{-(m+n)/2}
$</phrase></textobject></inlinemediaobject></inlineequation>. </para></description><class id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1_1param__type_1a5d3a0b8089a5570c5a4ee8eba5eba950" name="distribution_type"><type><classname>fisher_f_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1_1param__type_1a008e13ceae1664aefa8d7208300eeb22" specifiers="explicit"><parameter name="m"><paramtype>RealType</paramtype><default>1.0</default></parameter><parameter name="n"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1_1param__type">param_type</link></computeroutput> from the "m" and "n" parameters of the distribution.</para><para>Requires: m &gt; 0 and n &gt; 0 </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1_1param__type_1aa3422ca445e3c85af08762c5b1c1ed81" name="m" cv="const"><type>RealType</type><description><para>Returns the "m" parameter of the distribtuion. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1_1param__type_1abe2a20b07a19b3de09b209860039b597" name="n" cv="const"><type>RealType</type><description><para>Returns the "n" parameter of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1_1param__type">param_type</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1_1param__type">param_type</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the same. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1a4aa60f8c34374fdb8ba5b4f4b1fbf033" name="result_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1a1ef843c1c239ddcb9272ec8d1402d763" name="input_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1abf8601c005dce8ca3a9b8ec5e0602ba3" specifiers="explicit"><parameter name="m"><paramtype>RealType</paramtype><default>1.0</default></parameter><parameter name="n"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution">fisher_f_distribution</link></computeroutput> from its "m" and "n" parameters.</para><para>Requires: m &gt; 0 and n &gt; 0 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1a437166568650a31a07a5308efcc44062" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution">fisher_f_distribution</link></computeroutput> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1ac8dd6302fe0668f737e5d4547dd54d7b" name="operator()"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the F distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1a928acd7099613e963dce5d68e5795ad4" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the F distribution with parameters specified by <computeroutput>param</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1a884ec5bb5cc653fe1f6a0355b51ac92a" name="m" cv="const"><type>RealType</type><description><para>Returns the "m" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1a6d399beceb48b2904219e663ddb6dca8" name="n" cv="const"><type>RealType</type><description><para>Returns the "n" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1ae46a9af3be1cc3b661bac5909955cd41" name="min" cv="const"><type>RealType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1a1c2f1cc88913e2199d42ca2ab9b9b17b" name="max" cv="const"><type>RealType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1a061c1741021082ac7026f555c5c299c0" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1a7ecfd2f8cff809a3d0c7fc7709256870" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1addf94e87b77f32bff44777bf2402e0e0" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1a2c0c4e69fe4127f561108eadfc91180b" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="fd"><paramtype>const <classname>fisher_f_distribution</classname> &amp;</paramtype></parameter><description><para>Writes an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution">fisher_f_distribution</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1a52a37335f574089887bcb8ed45067cf1" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="fd"><paramtype>const <classname>fisher_f_distribution</classname> &amp;</paramtype></parameter><description><para>Reads an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution">fisher_f_distribution</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1a53cd298b5ed0f4cca8a7fb4d64ae004c" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>fisher_f_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>fisher_f_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution">fisher_f_distribution</link></computeroutput> will return identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution_1ad8697bbc995d54c66cc50dea6704270f" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>fisher_f_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>fisher_f_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1fisher__f__distribution">fisher_f_distribution</link></computeroutput> will return different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.gamma__distribution_8hpp" name="boost/random/gamma_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1gamma__distribution" name="gamma_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The gamma distribution is a continuous distribution with two parameters alpha and beta. It produces values &gt; 0.</para><para>It has <inlineequation><alt>$\displaystyle p(x) = x^{\alpha-1}\frac{e^{-x/\beta}}{\beta^\alpha\Gamma(\alpha)}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_13.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p(x) = x^{\alpha-1}\frac{e^{-x/\beta}}{\beta^\alpha\Gamma(\alpha)}$</phrase></textobject></inlinemediaobject></inlineequation>. </para></description><class id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1_1param__type_1aafe31d6307d700d5f7f3d4b98fe4aed7" name="distribution_type"><type><classname>gamma_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1_1param__type_1a1207818fbce333fd2af9983ff879f396"><parameter name="alpha"><paramtype>const RealType &amp;</paramtype><default>1.0</default></parameter><parameter name="beta"><paramtype>const RealType &amp;</paramtype><default>1.0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1_1param__type">param_type</link></computeroutput> object from the "alpha" and "beta" parameters.</para><para>Requires: alpha &gt; 0 &amp;&amp; beta &gt; 0 </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1_1param__type_1a8b74bbfb328dc3ac9f9d1cf148da2e3a" name="alpha" cv="const"><type>RealType</type><description><para>Returns the "alpha" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1_1param__type_1a53f7db6826bd648ec48428f8a84479bf" name="beta" cv="const"><type>RealType</type><description><para>Returns the "beta" parameter of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1_1param__type_1a95ac9818d02462ff9019342dd2f057c8" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype><classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the same. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets fo parameters are different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1ac6c4b3403f30b9c3503aa5b6310895a2" name="input_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1a4e12618d814d1171c5f81ff18331ac12" name="result_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1ab8912495fa27a8d026fe880b497e166a" specifiers="explicit"><parameter name="alpha"><paramtype>const result_type &amp;</paramtype><default>1.0</default></parameter><parameter name="beta"><paramtype>const result_type &amp;</paramtype><default>1.0</default></parameter><description><para>Creates a new <link linkend="doxygen.headers.classboost_1_1random_1_1gamma__distribution">gamma_distribution</link> with parameters "alpha" and "beta".</para><para>Requires: alpha &gt; 0 &amp;&amp; beta &gt; 0 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1a02b073f5803c73acba5664b0b1944e1e" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1gamma__distribution">gamma_distribution</link></computeroutput> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1ae61980c2f074f4c83985849a18f736f3" name="alpha" cv="const"><type>RealType</type><description><para>Returns the "alpha" paramter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1a7034ae7b4f4cb69da6dda065a2a8fde1" name="beta" cv="const"><type>RealType</type><description><para>Returns the "beta" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1a878952e2fdefb5873c621a6354ff0e8e" name="min" cv="const"><type>RealType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1aaeaea4b79bc5cb5f9584edcecbbbb8a2" name="max" cv="const"><type>RealType</type></method>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1a2d4764807eac51f4f565da78778c0bab" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1a923305f383bbe3f777623227f1607771" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1a175e5f7cb34112923c889abed8b63d97" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1aabfc8040483b272453511575556b0ac0" name="operator()" cv="const"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the gamma distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1a970ed1f212c3573aec6ba706456053be" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1a879ec7fc9207a1cddce7a9082497abd7" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="gd"><paramtype>const <classname>gamma_distribution</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1gamma__distribution">gamma_distribution</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1a7f3ceb87fa55569263b46ad9ccbab52b" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="gd"><paramtype><classname>gamma_distribution</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1gamma__distribution">gamma_distribution</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1a3da10d5d33519e37c9ce6f8251658ef6" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>gamma_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>gamma_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will produce identical sequences of random variates given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1gamma__distribution_1a79ecce8712675c2583c9102a709c943e" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>gamma_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>gamma_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions can produce different sequences of random variates, given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.generalized__inverse__gaussian__distribution_8hpp" name="boost/random/generalized_inverse_gaussian_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution" name="generalized_inverse_gaussian_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The generalized inverse gaussian distribution is a real-valued distribution with three parameters p, a, and b. It produced values &gt; 0.</para><para>It has <inlineequation><alt>$\displaystyle p(x) = \frac{(a / b)^{p / 2}}{2 K_{p}(\sqrt{a b})} x^{p - 1} e^{-(a x + b / 2) / 2}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_58.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p(x) = \frac{(a / b)^{p / 2}}{2 K_{p}(\sqrt{a b})} x^{p - 1} e^{-(a x + b / 2) / 2}$</phrase></textobject></inlinemediaobject></inlineequation>. where <inlineequation><alt>$\displaystyle K_{p}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_59.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle K_{p}$</phrase></textobject></inlinemediaobject></inlineequation> is a modified Bessel function of the second kind.</para><para>The algorithm used is from</para><para> <blockquote><para>  "Random variate generation for the generalized inverse Gaussian distribution", Luc Devroye, Statistics and Computing, Volume 24, 2014, Pages 236 - 246  </para></blockquote>  </para></description><class id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1_1param__type_1a645f16c01f6ebb91f3e3704f04fb232c" name="distribution_type"><type><classname>generalized_inverse_gaussian_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1_1param__type_1a1631bc1207c43f6dffc36f43855f253d" specifiers="explicit"><parameter name="p"><paramtype>RealType</paramtype><default>1.0</default></parameter><parameter name="a"><paramtype>RealType</paramtype><default>1.0</default></parameter><parameter name="b"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1_1param__type">param_type</link></computeroutput> object from the "p", "a", and "b" parameters.</para><para>Requires: a &gt; 0 &amp;&amp; b &gt;= 0 if p &gt; 0, a &gt; 0 &amp;&amp; b &gt; 0 if p == 0, a &gt;= 0 &amp;&amp; b &gt; 0 if p &lt; 0 </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1_1param__type_1a67b0a8109066cf56bf77b87b2b6e3d4f" name="p" cv="const"><type>RealType</type><description><para>Returns the "p" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1_1param__type_1a8c66019cddd9edd394a467a67661dca7" name="a" cv="const"><type>RealType</type><description><para>Returns the "a" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1_1param__type_1ae87ae631c462ee053a391995066d6c7b" name="b" cv="const"><type>RealType</type><description><para>Returns the "b" parameter of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1_1param__type">param_type</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1_1param__type">param_type</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the same. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1ad4233aae00e6b29f42ae490969b2e2fe" name="result_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1a90a9576095e3f1bc132dd3b58122fb67" name="input_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1ae7e2f57ed2ad6dc1abf8c368a7ca80ee" specifiers="explicit"><parameter name="p"><paramtype>RealType</paramtype><default>1.0</default></parameter><parameter name="a"><paramtype>RealType</paramtype><default>1.0</default></parameter><parameter name="b"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution">generalized_inverse_gaussian_distribution</link></computeroutput> from its "p", "a", and "b" parameters.</para><para>Requires: a &gt; 0 &amp;&amp; b &gt;= 0 if p &gt; 0, a &gt; 0 &amp;&amp; b &gt; 0 if p == 0, a &gt;= 0 &amp;&amp; b &gt; 0 if p &lt; 0 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1a83e7998be5ce56be1231389d8d54b80a" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution">generalized_inverse_gaussian_distribution</link></computeroutput> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1a56a95bde14557f579bde8b9cb6377079" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the generalized inverse gaussian distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1af4a2ec46061503ae41c791daa886ce8e" name="operator()" cv="const"><type>result_type</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed accordint to the beta distribution with parameters specified by <computeroutput>param</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1ab036a370b21c2e384cc14e3151e003ac" name="p" cv="const"><type>RealType</type><description><para>Returns the "p" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1a155cad438d2935d74d9c20d1023652ad" name="a" cv="const"><type>RealType</type><description><para>Returns the "a" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1aced8710632ea086fe3c4f3fd00a675ac" name="b" cv="const"><type>RealType</type><description><para>Returns the "b" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1afcc7fc56f735b70c2461b07c6a60f153" name="min" cv="const"><type>RealType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1af63457a6aad00a62d2a4bfd987a9ab3a" name="max" cv="const"><type>RealType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1abc81177c6f653f361c395110079433b7" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1a2f09890d37f2d818369e826497c38aa6" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1aa8ecdcb6a82c3c87edda7d10e376178d" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1aa3a4073637eab72125cd1151ed94ceb2" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="wd"><paramtype>const <classname>generalized_inverse_gaussian_distribution</classname> &amp;</paramtype></parameter><description><para>Writes an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution">generalized_inverse_gaussian_distribution</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1a67b44676de2b68a25c0885b87351c059" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="wd"><paramtype>const <classname>generalized_inverse_gaussian_distribution</classname> &amp;</paramtype></parameter><description><para>Reads an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution">generalized_inverse_gaussian_distribution</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1a889d8b4f437dc0e02a65c3a37fc0fcc0" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>generalized_inverse_gaussian_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>generalized_inverse_gaussian_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution">generalized_inverse_gaussian_distribution</link></computeroutput> will return identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution_1ae76f87d1595cd0fd6d2f85f6d36801fb" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>generalized_inverse_gaussian_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>generalized_inverse_gaussian_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1generalized__inverse__gaussian__distribution">generalized_inverse_gaussian_distribution</link></computeroutput> will return different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.generate__canonical_8hpp" name="boost/random/generate_canonical.hpp">
<namespace name="boost">
<namespace name="random">
<function id="doxygen.headers.generate__canonical_8hpp_1a6dbc692ac6015449c7b5e240d8bf1db4" name="generate_canonical"><type>RealType</type><template>
          <template-type-parameter name="RealType"/>
          <template-nontype-parameter name="bits"><type>std::size_t</type></template-nontype-parameter>
          <template-type-parameter name="URNG"/>
        </template><parameter name="g"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a value uniformly distributed in the range [0, 1) with at least <computeroutput>bits</computeroutput> random bits. </para></description></function>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.geometric__distribution_8hpp" name="boost/random/geometric_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1geometric__distribution" name="geometric_distribution"><template>
      <template-type-parameter name="IntType"><default>int</default></template-type-parameter>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>An instantiation of the class template <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1geometric__distribution">geometric_distribution</link></computeroutput> models a  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link> . The distribution produces positive integers which are the number of bernoulli trials with probability <computeroutput>p</computeroutput> required to get one that fails.</para><para>For the geometric distribution, <inlineequation><alt>$p(i) = p(1-p)^{i}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_14.png"/></imageobject><textobject role="tex"><phrase>$p(i) = p(1-p)^{i}$</phrase></textobject></inlinemediaobject></inlineequation>.</para><para> <warning><para>  This distribution has been updated to match the C++ standard. Its behavior has changed from the original boost::geometric_distribution. A backwards compatible wrapper is provided in namespace boost.  </para></warning>  </para></description><class id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1_1param__type_1afc4a76012e6ef0918041f1213c4e4e34" name="distribution_type"><type><classname>geometric_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1_1param__type_1aa169bf0a0fda6ae2ea5e6fd016131730" specifiers="explicit"><parameter name="p"><paramtype>RealType</paramtype><default>0.5</default></parameter><description><para>Constructs the parameters with p. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1_1param__type_1a9baa8ddcad6fa6d59dedb83b1972b18a" name="p" cv="const"><type>RealType</type><description><para>Returns the p parameter of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters to a std::ostream. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters from a std::istream. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are equal. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1a93edb77de86ef5b8824f9edc659d4155" name="input_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1a002a81badfa647e32346b4b17dd0cced" name="result_type"><type>IntType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1af190cfe22775eeb3e8396a1fc2fd096d" specifiers="explicit"><parameter name="p"><paramtype>const RealType &amp;</paramtype><default>0.5</default></parameter><description><para>Contructs a new <link linkend="doxygen.headers.classboost_1_1random_1_1geometric__distribution">geometric_distribution</link> with the paramter <computeroutput>p</computeroutput>.</para><para>Requires: 0 &lt; p &lt; 1 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1ac3f2bacb976b733d31bdba1dbc7953a2" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs a new <link linkend="doxygen.headers.classboost_1_1random_1_1geometric__distribution">geometric_distribution</link> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1a77b445f20b6b357a1ff5ac54c92f7405" name="p" cv="const"><type>RealType</type><description><para>Returns: the distribution parameter <computeroutput>p</computeroutput> <sbr/>
 </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1a15b214a0e76e04e478143fe1c2a4dda4" name="min" cv="const"><type>IntType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1a686a3f499cdd9f96fcd11f5a5340a081" name="max" cv="const"><type>IntType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1a8184747bc10cc1d557c9d238365ed257" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1af7f5fae1a6055db216545b34d6c7299d" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1ad57976d8e735dd491b172cc73e19d659" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1a1e9d62ae49bc73a002599cf6a6f17fc6" name="operator()" cv="const"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the <link linkend="doxygen.headers.classboost_1_1random_1_1geometric__distribution">geometric_distribution</link>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1a5118ad4603d0359a59f6077e77b6bb4e" name="operator()" cv="const"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the geometric distribution with parameters specified by param. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1ab0d0a1e7e75f559ec5ac83bf852f3aaa" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="gd"><paramtype>const <classname>geometric_distribution</classname> &amp;</paramtype></parameter><description><para>Writes the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1abaf4ccc211222c3f17f7293f6abae8be" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="gd"><paramtype>const <classname>geometric_distribution</classname> &amp;</paramtype></parameter><description><para>Reads the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1a0cf3832c962a60648b2c07a30acacf3a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>geometric_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>geometric_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will produce identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1geometric__distribution_1ae4bdc2d369dad611c8f549834caa47e0" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>geometric_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>geometric_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions may produce different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.hyperexponential__distribution_8hpp" name="boost/random/hyperexponential_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution" name="hyperexponential_distribution"><template>
      <template-type-parameter name="RealT"><default>double</default></template-type-parameter>
    </template><description><para>The hyperexponential distribution is a real-valued continuous distribution with two parameters, the <emphasis>phase probability vector</emphasis> <computeroutput>probs</computeroutput> and the <emphasis>rate vector</emphasis> <computeroutput>rates</computeroutput>.</para><para>A <inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation>-phase hyperexponential distribution is a mixture of <inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation> exponential distributions. For this reason, it is also referred to as <emphasis>mixed exponential distribution</emphasis> or <emphasis>parallel <inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation>-phase exponential distribution</emphasis>.</para><para>A <inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation>-phase hyperexponential distribution is characterized by two parameters, namely a <emphasis>phase probability vector</emphasis> <inlineequation><alt>$\mathbf{\alpha}=(\alpha_1,\ldots,\alpha_k)$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_16.png"/></imageobject><textobject role="tex"><phrase>$\mathbf{\alpha}=(\alpha_1,\ldots,\alpha_k)$</phrase></textobject></inlinemediaobject></inlineequation> and a <emphasis>rate vector</emphasis> <inlineequation><alt>$\mathbf{\lambda}=(\lambda_1,\ldots,\lambda_k)$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_17.png"/></imageobject><textobject role="tex"><phrase>$\mathbf{\lambda}=(\lambda_1,\ldots,\lambda_k)$</phrase></textobject></inlinemediaobject></inlineequation>.</para><para>A <inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation>-phase hyperexponential distribution is frequently used in <emphasis>queueing theory</emphasis> to model the distribution of the superposition of <inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation> independent events, like, for instance, the service time distribution of a queueing station with <inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation> servers in parallel where the <inlineequation><alt>$i$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_18.png"/></imageobject><textobject role="tex"><phrase>$i$</phrase></textobject></inlinemediaobject></inlineequation>-th server is chosen with probability <inlineequation><alt>$\alpha_i$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_19.png"/></imageobject><textobject role="tex"><phrase>$\alpha_i$</phrase></textobject></inlinemediaobject></inlineequation> and its service time distribution is an exponential distribution with rate <inlineequation><alt>$\lambda_i$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_20.png"/></imageobject><textobject role="tex"><phrase>$\lambda_i$</phrase></textobject></inlinemediaobject></inlineequation> (Allen,1990; Papadopolous et al.,1993; Trivedi,2002).</para><para>For instance, CPUs service-time distribution in a computing system has often been observed to possess such a distribution (Rosin,1965). Also, the arrival of different types of customer to a single queueing station is often modeled as a hyperexponential distribution (Papadopolous et al.,1993). Similarly, if a product manufactured in several parallel assemply lines and the outputs are merged, the failure density of the overall product is likely to be hyperexponential (Trivedi,2002).</para><para>Finally, since the hyperexponential distribution exhibits a high Coefficient of Variation (CoV), that is a CoV &gt; 1, it is especially suited to fit empirical data with large CoV (Feitelson,2014; Wolski et al.,2013) and to approximate <emphasis>long-tail probability distributions</emphasis> (Feldmann et al.,1998).</para><para>See (Boost,2014) for more information and examples.</para><para>A <inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation>-phase hyperexponential distribution has a probability density function   <equation><title/><alt>\[
 f(x) = \sum_{i=1}^k \alpha_i \lambda_i e^{-x\lambda_i}
\]</alt><mediaobject><imageobject role="html"><imagedata format="PNG" align="center" fileref="images/random//form_21.png"/></imageobject><textobject role="tex"><phrase>\[
 f(x) = \sum_{i=1}^k \alpha_i \lambda_i e^{-x\lambda_i}
\]</phrase></textobject></mediaobject></equation> where:<itemizedlist>
<listitem><para><inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation> is the <emphasis>number of phases</emphasis> and also the size of the input vector parameters,</para>
</listitem><listitem><para><inlineequation><alt>$\mathbf{\alpha}=(\alpha_1,\ldots,\alpha_k)$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_16.png"/></imageobject><textobject role="tex"><phrase>$\mathbf{\alpha}=(\alpha_1,\ldots,\alpha_k)$</phrase></textobject></inlinemediaobject></inlineequation> is the <emphasis>phase probability vector</emphasis> parameter, and</para>
</listitem><listitem><para><inlineequation><alt>$\mathbf{\lambda}=(\lambda_1,\ldots,\lambda_k)$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_17.png"/></imageobject><textobject role="tex"><phrase>$\mathbf{\lambda}=(\lambda_1,\ldots,\lambda_k)$</phrase></textobject></inlinemediaobject></inlineequation> is the <emphasis>rate vector</emphasis> parameter.</para>
</listitem></itemizedlist>
Given a <inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation>-phase hyperexponential distribution with phase probability vector <inlineequation><alt>$\mathbf{\alpha}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_22.png"/></imageobject><textobject role="tex"><phrase>$\mathbf{\alpha}$</phrase></textobject></inlinemediaobject></inlineequation> and rate vector <inlineequation><alt>$\mathbf{\lambda}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_23.png"/></imageobject><textobject role="tex"><phrase>$\mathbf{\lambda}$</phrase></textobject></inlinemediaobject></inlineequation>, the random variate generation algorithm consists of the following steps (Tyszer,1999):<orderedlist>
<listitem><para>Generate a random variable <inlineequation><alt>$U$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_24.png"/></imageobject><textobject role="tex"><phrase>$U$</phrase></textobject></inlinemediaobject></inlineequation> uniformly distribution on the interval <inlineequation><alt>$(0,1)$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_25.png"/></imageobject><textobject role="tex"><phrase>$(0,1)$</phrase></textobject></inlinemediaobject></inlineequation>.</para>
</listitem><listitem><para>Use <inlineequation><alt>$U$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_24.png"/></imageobject><textobject role="tex"><phrase>$U$</phrase></textobject></inlinemediaobject></inlineequation> to select the appropriate <inlineequation><alt>$\lambda_i$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_20.png"/></imageobject><textobject role="tex"><phrase>$\lambda_i$</phrase></textobject></inlinemediaobject></inlineequation> (e.g., the <emphasis>alias method</emphasis> can possibly be used for this step).</para>
</listitem><listitem><para>Generate an exponentially distributed random variable <inlineequation><alt>$X$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_26.png"/></imageobject><textobject role="tex"><phrase>$X$</phrase></textobject></inlinemediaobject></inlineequation> with rate parameter <inlineequation><alt>$\lambda_i$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_20.png"/></imageobject><textobject role="tex"><phrase>$\lambda_i$</phrase></textobject></inlinemediaobject></inlineequation>.</para>
</listitem><listitem><para>Return <inlineequation><alt>$X$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_26.png"/></imageobject><textobject role="tex"><phrase>$X$</phrase></textobject></inlinemediaobject></inlineequation>.</para>
</listitem></orderedlist>
References:<orderedlist>
<listitem><para>A.O. Allen, <emphasis>Probability, Statistics, and Queuing Theory with Computer Science Applications, Second Edition</emphasis>, Academic Press, 1990.</para>
</listitem><listitem><para>Boost C++ Libraries, <emphasis>Boost.Math / Statistical Distributions: Hyperexponential Distribution</emphasis>, Online: <ulink url="http://www.boost.org/doc/libs/release/libs/math/doc/html/dist.html">http://www.boost.org/doc/libs/release/libs/math/doc/html/dist.html</ulink> , 2014.</para>
</listitem><listitem><para>D.G. Feitelson, <emphasis>Workload Modeling for Computer Systems Performance Evaluation</emphasis>, Cambridge University Press, 2014</para>
</listitem><listitem><para>A. Feldmann and W. Whitt, <emphasis>Fitting mixtures of exponentials to long-tail distributions to analyze network performance models</emphasis>, Performance Evaluation 31(3-4):245, doi:10.1016/S0166-5316(97)00003-5, 1998.</para>
</listitem><listitem><para>H.T. Papadopolous, C. Heavey and J. Browne, <emphasis>Queueing Theory in Manufacturing Systems Analysis and Design</emphasis>, Chapman &amp; Hall/CRC, 1993, p. 35.</para>
</listitem><listitem><para>R.F. Rosin, <emphasis>Determining a computing center environment</emphasis>, Communications of the ACM 8(7):463-468, 1965.</para>
</listitem><listitem><para>K.S. Trivedi, <emphasis>Probability and Statistics with Reliability, Queueing, and Computer Science Applications</emphasis>, John Wiley &amp; Sons, Inc., 2002.</para>
</listitem><listitem><para>J. Tyszer, <emphasis>Object-Oriented Computer Simulation of Discrete-Event Systems</emphasis>, Springer, 1999.</para>
</listitem><listitem><para>Wikipedia, <emphasis>Hyperexponential Distribution</emphasis>, Online: <ulink url="http://en.wikipedia.org/wiki/Hyperexponential_distribution">http://en.wikipedia.org/wiki/Hyperexponential_distribution</ulink> , 2014.</para>
</listitem><listitem><para>Wolfram Mathematica, <emphasis>Hyperexponential Distribution</emphasis>, Online: <ulink url="http://reference.wolfram.com/language/ref/HyperexponentialDistribution.html">http://reference.wolfram.com/language/ref/HyperexponentialDistribution.html</ulink> , 2014.</para>
</listitem></orderedlist>
<para>Marco Guazzone (<ulink url="mailto:marco.guazzone@gmail.com">marco.guazzone@gmail.com</ulink>) </para>

</para></description><class id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type" name="param_type"><description><para>The parameters of a hyperexponential distribution.</para><para>Stores the <emphasis>phase probability vector</emphasis> and the <emphasis>rate vector</emphasis> of the hyperexponential distribution.</para><para><para>Marco Guazzone (<ulink url="mailto:marco.guazzone@gmail.com">marco.guazzone@gmail.com</ulink>) </para>

</para></description><typedef id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1ad0c3ba1a952094d45e8477e479d4bc35" name="distribution_type"><type><classname>hyperexponential_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1a7beaa29e8c65d77683b5949cdfb8724c"><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type">param_type</link></computeroutput> with the default parameters of the distribution. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1a2b085b721eedfec42fe93ee7fe59f74f"><template>
          <template-type-parameter name="ProbIterT"><purpose><para>Must meet the requirements of <computeroutput>InputIterator</computeroutput> concept (ISO,2014,sec. 24.2.3 [input.iterators]). </para></purpose></template-type-parameter>
          <template-type-parameter name="RateIterT"><purpose><para>Must meet the requirements of <computeroutput>InputIterator</computeroutput> concept (ISO,2014,sec. 24.2.3 [input.iterators]).</para></purpose></template-type-parameter>
        </template><parameter name="prob_first"><paramtype>ProbIterT</paramtype><description><para>The iterator to the beginning of the range of non-negative real elements representing the phase probabilities; if elements don't sum to 1, they are normalized. </para></description></parameter><parameter name="prob_last"><paramtype>ProbIterT</paramtype><description><para>The iterator to the ending of the range of non-negative real elements representing the phase probabilities; if elements don't sum to 1, they are normalized. </para></description></parameter><parameter name="rate_first"><paramtype>RateIterT</paramtype><description><para>The iterator to the beginning of the range of non-negative real elements representing the rates. </para></description></parameter><parameter name="rate_last"><paramtype>RateIterT</paramtype><description><para>The iterator to the ending of the range of non-negative real elements representing the rates.</para></description></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type">param_type</link></computeroutput> from the <emphasis>phase probability vector</emphasis> and <emphasis>rate vector</emphasis> parameters of the distribution.</para><para>The <emphasis>phase probability vector</emphasis> parameter is given by the range defined by [<emphasis>prob_first</emphasis>, <emphasis>prob_last</emphasis>) iterator pair, and the <emphasis>rate vector</emphasis> parameter is given by the range defined by [<emphasis>rate_first</emphasis>, <emphasis>rate_last</emphasis>) iterator pair.</para><para>

References:<orderedlist>
<listitem><para>ISO, <emphasis>ISO/IEC 14882-2014: Information technology - Programming languages - C++</emphasis>, 2014</para>
</listitem></orderedlist>
</para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1ad6c8123b46bcf09daa3eb8740d1b14d5"><template>
          <template-type-parameter name="ProbRangeT"><purpose><para>Must meet the requirements of <ulink url="boost:/libs/range/doc/html/range/concepts.html">Range</ulink> concept. </para></purpose></template-type-parameter>
          <template-type-parameter name="RateRangeT"><purpose><para>Must meet the requirements of <ulink url="boost:/libs/range/doc/html/range/concepts.html">Range</ulink> concept.</para></purpose></template-type-parameter>
        </template><parameter name="prob_range"><paramtype>ProbRangeT const &amp;</paramtype><description><para>The range of non-negative real elements representing the phase probabilities; if elements don't sum to 1, they are normalized. </para></description></parameter><parameter name="rate_range"><paramtype>RateRangeT const &amp;</paramtype><description><para>The range of positive real elements representing the rates.</para></description></parameter><parameter name=""><paramtype>typename boost::disable_if_c&lt; boost::has_pre_increment&lt; ProbRangeT &gt;::value||boost::has_pre_increment&lt; RateRangeT &gt;::value &gt;::type *</paramtype><default>0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type">param_type</link></computeroutput> from the <emphasis>phase probability vector</emphasis> and <emphasis>rate vector</emphasis> parameters of the distribution.</para><para>The <emphasis>phase probability vector</emphasis> parameter is given by the range defined by <emphasis>prob_range</emphasis>, and the <emphasis>rate vector</emphasis> parameter is given by the range defined by <emphasis>rate_range</emphasis>.</para><para>

<note><para>The final <computeroutput>disable_if</computeroutput> parameter is an implementation detail that differentiates between this two argument constructor and the iterator-based two argument constructor described below. </para>
</note>
</para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1ad319c36fba4c625327a54df2ff0397dc"><template>
          <template-type-parameter name="RateIterT"><purpose><para>Must meet the requirements of <computeroutput>InputIterator</computeroutput> concept (ISO,2014,sec. 24.2.3 [input.iterators]). </para></purpose></template-type-parameter>
        </template><parameter name="rate_first"><paramtype>RateIterT</paramtype><description><para>The iterator to the beginning of the range of non-negative real elements representing the rates. </para></description></parameter><parameter name="rate_last"><paramtype>RateIterT</paramtype><description><para>The iterator to the ending of the range of non-negative real elements representing the rates.</para></description></parameter><parameter name=""><paramtype>typename boost::enable_if_c&lt; boost::has_pre_increment&lt; RateIterT &gt;::value &gt;::type *</paramtype><default>0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type">param_type</link></computeroutput> from the <emphasis>rate vector</emphasis> parameter of the distribution and with equal phase probabilities.</para><para>The <emphasis>rate vector</emphasis> parameter is given by the range defined by [<emphasis>rate_first</emphasis>, <emphasis>rate_last</emphasis>) iterator pair, and the <emphasis>phase probability vector</emphasis> parameter is set to the equal phase probabilities (i.e., to a vector of the same length <inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation> of the <emphasis>rate vector</emphasis> and with each element set to <inlineequation><alt>$1.0/k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_27.png"/></imageobject><textobject role="tex"><phrase>$1.0/k$</phrase></textobject></inlinemediaobject></inlineequation>).</para><para>

<note><para>The final <computeroutput>disable_if</computeroutput> parameter is an implementation detail that differentiates between this two argument constructor and the range-based two argument constructor described above.</para>
</note>
References:<orderedlist>
<listitem><para>ISO, <emphasis>ISO/IEC 14882-2014: Information technology - Programming languages - C++</emphasis>, 2014</para>
</listitem></orderedlist>
</para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1aac157c92b8943ee8a2eef8a1520ec82b"><template>
          <template-type-parameter name="RateRangeT"><purpose><para>Must meet the requirements of <ulink url="boost:/libs/range/doc/html/range/concepts.html">Range</ulink> concept.</para></purpose></template-type-parameter>
        </template><parameter name="rate_range"><paramtype>RateRangeT const &amp;</paramtype><description><para>The range of positive real elements representing the rates. </para></description></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type">param_type</link></computeroutput> from the "rates" parameters of the distribution and with equal phase probabilities.</para><para>The <emphasis>rate vector</emphasis> parameter is given by the range defined by <emphasis>rate_range</emphasis>, and the <emphasis>phase probability vector</emphasis> parameter is set to the equal phase probabilities (i.e., to a vector of the same length <inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation> of the <emphasis>rate vector</emphasis> and with each element set to <inlineequation><alt>$1.0/k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_27.png"/></imageobject><textobject role="tex"><phrase>$1.0/k$</phrase></textobject></inlinemediaobject></inlineequation>).</para><para>

</para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1a198751fd58af370ab7065451f9828cec"><parameter name="l1"><paramtype>std::initializer_list&lt; RealT &gt;</paramtype><description><para>The initializer list for inizializing the phase probability vector. </para></description></parameter><parameter name="l2"><paramtype>std::initializer_list&lt; RealT &gt;</paramtype><description><para>The initializer list for inizializing the rate vector.</para></description></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type">param_type</link></computeroutput> from the <emphasis>phase probability vector</emphasis> and <emphasis>rate vector</emphasis> parameters of the distribution.</para><para>The <emphasis>phase probability vector</emphasis> parameter is given by the <emphasis>brace-init-list</emphasis> (ISO,2014,sec. 8.5.4 [dcl.init.list]) defined by <emphasis>l1</emphasis>, and the <emphasis>rate vector</emphasis> parameter is given by the <emphasis>brace-init-list</emphasis> (ISO,2014,sec. 8.5.4 [dcl.init.list]) defined by <emphasis>l2</emphasis>.</para><para>
References:<orderedlist>
<listitem><para>ISO, <emphasis>ISO/IEC 14882-2014: Information technology - Programming languages - C++</emphasis>, 2014</para>
</listitem></orderedlist>
</para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1abeeb8500d8d66be9ee1a73e9ebfc9d3c"><parameter name="l1"><paramtype>std::initializer_list&lt; RealT &gt;</paramtype><description><para>The initializer list for inizializing the rate vector.</para></description></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type">param_type</link></computeroutput> from the <emphasis>rate vector</emphasis> parameter of the distribution and with equal phase probabilities.</para><para>The <emphasis>rate vector</emphasis> parameter is given by the <emphasis>brace-init-list</emphasis> (ISO,2014,sec. 8.5.4 [dcl.init.list]) defined by <emphasis>l1</emphasis>, and the <emphasis>phase probability vector</emphasis> parameter is set to the equal phase probabilities (i.e., to a vector of the same length <inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation> of the <emphasis>rate vector</emphasis> and with each element set to <inlineequation><alt>$1.0/k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_27.png"/></imageobject><textobject role="tex"><phrase>$1.0/k$</phrase></textobject></inlinemediaobject></inlineequation>).</para><para>
References:<orderedlist>
<listitem><para>ISO, <emphasis>ISO/IEC 14882-2014: Information technology - Programming languages - C++</emphasis>, 2014</para>
</listitem></orderedlist>
</para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1a0be87b1b008134ef6a923a5f6775a1ec" name="probabilities" cv="const"><type>std::vector&lt; RealT &gt;</type><description><para>Gets the <emphasis>phase probability vector</emphasis> parameter of the distribtuion.</para><para>
<note><para>The returned probabilities are the normalized version of the ones passed at construction time. </para>
</note>
</para></description><returns><para>The <emphasis>phase probability vector</emphasis> parameter of the distribution.</para>
</returns></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1a3d50b4e6b96b5f62fc2f10667b1f5092" name="rates" cv="const"><type>std::vector&lt; RealT &gt;</type><description><para>Gets the <emphasis>rate vector</emphasis> parameter of the distribtuion.</para><para>
</para></description><returns><para>The <emphasis>rate vector</emphasis> parameter of the distribution. </para>
</returns></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type">param_type</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type">param_type</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the same. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1aea0e0680b172602e04485f889f0ac68b" name="result_type"><type>RealT</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a32e5168ba965fea9b649101edf7770f5" name="input_type"><type>RealT</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a24d4b4b604013622d320fb1e5a9cd8f1"><description><para>Constructs a 1-phase <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution">hyperexponential_distribution</link></computeroutput> (i.e., an exponential distribution) with rate 1. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a4dee1c0522210d48fb52632bd60b26a4"><template>
          <template-type-parameter name="ProbIterT"><purpose><para>Must meet the requirements of <computeroutput>InputIterator</computeroutput> concept (ISO,2014,sec. 24.2.3 [input.iterators]). </para></purpose></template-type-parameter>
          <template-type-parameter name="RateIterT"><purpose><para>Must meet the requirements of <computeroutput>InputIterator</computeroutput> concept (ISO,2014,sec. 24.2.3 [input.iterators]).</para></purpose></template-type-parameter>
        </template><parameter name="prob_first"><paramtype>ProbIterT</paramtype><description><para>The iterator to the beginning of the range of non-negative real elements representing the phase probabilities; if elements don't sum to 1, they are normalized. </para></description></parameter><parameter name="prob_last"><paramtype>ProbIterT</paramtype><description><para>The iterator to the ending of the range of non-negative real elements representing the phase probabilities; if elements don't sum to 1, they are normalized. </para></description></parameter><parameter name="rate_first"><paramtype>RateIterT</paramtype><description><para>The iterator to the beginning of the range of non-negative real elements representing the rates. </para></description></parameter><parameter name="rate_last"><paramtype>RateIterT</paramtype><description><para>The iterator to the ending of the range of non-negative real elements representing the rates.</para></description></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution">hyperexponential_distribution</link></computeroutput> from the <emphasis>phase probability vector</emphasis> and <emphasis>rate vector</emphasis> parameters of the distribution.</para><para>The <emphasis>phase probability vector</emphasis> parameter is given by the range defined by [<emphasis>prob_first</emphasis>, <emphasis>prob_last</emphasis>) iterator pair, and the <emphasis>rate vector</emphasis> parameter is given by the range defined by [<emphasis>rate_first</emphasis>, <emphasis>rate_last</emphasis>) iterator pair.</para><para>

References:<orderedlist>
<listitem><para>ISO, <emphasis>ISO/IEC 14882-2014: Information technology - Programming languages - C++</emphasis>, 2014</para>
</listitem></orderedlist>
</para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a203748c2c7193830b7e8881dba827900"><template>
          <template-type-parameter name="ProbRangeT"><purpose><para>Must meet the requirements of <ulink url="boost:/libs/range/doc/html/range/concepts.html">Range</ulink> concept. </para></purpose></template-type-parameter>
          <template-type-parameter name="RateRangeT"><purpose><para>Must meet the requirements of <ulink url="boost:/libs/range/doc/html/range/concepts.html">Range</ulink> concept.</para></purpose></template-type-parameter>
        </template><parameter name="prob_range"><paramtype>ProbRangeT const &amp;</paramtype><description><para>The range of non-negative real elements representing the phase probabilities; if elements don't sum to 1, they are normalized. </para></description></parameter><parameter name="rate_range"><paramtype>RateRangeT const &amp;</paramtype><description><para>The range of positive real elements representing the rates.</para></description></parameter><parameter name=""><paramtype>typename boost::disable_if_c&lt; boost::has_pre_increment&lt; ProbRangeT &gt;::value||boost::has_pre_increment&lt; RateRangeT &gt;::value &gt;::type *</paramtype><default>0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution">hyperexponential_distribution</link></computeroutput> from the <emphasis>phase probability vector</emphasis> and <emphasis>rate vector</emphasis> parameters of the distribution.</para><para>The <emphasis>phase probability vector</emphasis> parameter is given by the range defined by <emphasis>prob_range</emphasis>, and the <emphasis>rate vector</emphasis> parameter is given by the range defined by <emphasis>rate_range</emphasis>.</para><para>

<note><para>The final <computeroutput>disable_if</computeroutput> parameter is an implementation detail that differentiates between this two argument constructor and the iterator-based two argument constructor described below. </para>
</note>
</para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a1e2aebcff5262696573b9e01a2466297"><template>
          <template-type-parameter name="RateIterT"><purpose><para>Must meet the requirements of <computeroutput>InputIterator</computeroutput> concept (ISO,2014,sec. 24.2.3 [input.iterators]). </para></purpose></template-type-parameter>
        </template><parameter name="rate_first"><paramtype>RateIterT</paramtype><description><para>The iterator to the beginning of the range of non-negative real elements representing the rates. </para></description></parameter><parameter name="rate_last"><paramtype>RateIterT</paramtype><description><para>The iterator to the ending of the range of non-negative real elements representing the rates.</para></description></parameter><parameter name=""><paramtype>typename boost::enable_if_c&lt; boost::has_pre_increment&lt; RateIterT &gt;::value &gt;::type *</paramtype><default>0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution">hyperexponential_distribution</link></computeroutput> from the <emphasis>rate vector</emphasis> parameter of the distribution and with equal phase probabilities.</para><para>The <emphasis>rate vector</emphasis> parameter is given by the range defined by [<emphasis>rate_first</emphasis>, <emphasis>rate_last</emphasis>) iterator pair, and the <emphasis>phase probability vector</emphasis> parameter is set to the equal phase probabilities (i.e., to a vector of the same length <inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation> of the <emphasis>rate vector</emphasis> and with each element set to <inlineequation><alt>$1.0/k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_27.png"/></imageobject><textobject role="tex"><phrase>$1.0/k$</phrase></textobject></inlinemediaobject></inlineequation>).</para><para>

<note><para>The final <computeroutput>disable_if</computeroutput> parameter is an implementation detail that differentiates between this two argument constructor and the range-based two argument constructor described above.</para>
</note>
References:<orderedlist>
<listitem><para>ISO, <emphasis>ISO/IEC 14882-2014: Information technology - Programming languages - C++</emphasis>, 2014</para>
</listitem></orderedlist>
</para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a4848cda473fed3e6235b5a8f83054e0c"><template>
          <template-type-parameter name="RateRangeT"><purpose><para>Must meet the requirements of <ulink url="boost:/libs/range/doc/html/range/concepts.html">Range</ulink> concept.</para></purpose></template-type-parameter>
        </template><parameter name="rate_range"><paramtype>RateRangeT const &amp;</paramtype><description><para>The range of positive real elements representing the rates. </para></description></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1_1param__type">param_type</link></computeroutput> from the "rates" parameters of the distribution and with equal phase probabilities.</para><para>The <emphasis>rate vector</emphasis> parameter is given by the range defined by <emphasis>rate_range</emphasis>, and the <emphasis>phase probability vector</emphasis> parameter is set to the equal phase probabilities (i.e., to a vector of the same length <inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation> of the <emphasis>rate vector</emphasis> and with each element set to <inlineequation><alt>$1.0/k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_27.png"/></imageobject><textobject role="tex"><phrase>$1.0/k$</phrase></textobject></inlinemediaobject></inlineequation>).</para><para>

</para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a2dcf3ad5944f38f3bb8c853525b4dd25" specifiers="explicit"><parameter name="param"><paramtype><classname>param_type</classname> const &amp;</paramtype><description><para>The parameters of the distribution. </para></description></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution">hyperexponential_distribution</link></computeroutput> from its parameters.</para><para>
</para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1aedbc4cec021842cbaf9c5c12433ad825"><parameter name="l1"><paramtype>std::initializer_list&lt; RealT &gt; const &amp;</paramtype><description><para>The initializer list for inizializing the phase probability vector. </para></description></parameter><parameter name="l2"><paramtype>std::initializer_list&lt; RealT &gt; const &amp;</paramtype><description><para>The initializer list for inizializing the rate vector.</para></description></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution">hyperexponential_distribution</link></computeroutput> from the <emphasis>phase probability vector</emphasis> and <emphasis>rate vector</emphasis> parameters of the distribution.</para><para>The <emphasis>phase probability vector</emphasis> parameter is given by the <emphasis>brace-init-list</emphasis> (ISO,2014,sec. 8.5.4 [dcl.init.list]) defined by <emphasis>l1</emphasis>, and the <emphasis>rate vector</emphasis> parameter is given by the <emphasis>brace-init-list</emphasis> (ISO,2014,sec. 8.5.4 [dcl.init.list]) defined by <emphasis>l2</emphasis>.</para><para>
References:<orderedlist>
<listitem><para>ISO, <emphasis>ISO/IEC 14882-2014: Information technology - Programming languages - C++</emphasis>, 2014</para>
</listitem></orderedlist>
</para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a3ea25e56ee9e621f09be6deb284a6e92"><parameter name="l1"><paramtype>std::initializer_list&lt; RealT &gt; const &amp;</paramtype><description><para>The initializer list for inizializing the rate vector.</para></description></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution">hyperexponential_distribution</link></computeroutput> from the <emphasis>rate vector</emphasis> parameter of the distribution and with equal phase probabilities.</para><para>The <emphasis>rate vector</emphasis> parameter is given by the <emphasis>brace-init-list</emphasis> (ISO,2014,sec. 8.5.4 [dcl.init.list]) defined by <emphasis>l1</emphasis>, and the <emphasis>phase probability vector</emphasis> parameter is set to the equal phase probabilities (i.e., to a vector of the same length <inlineequation><alt>$k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_15.png"/></imageobject><textobject role="tex"><phrase>$k$</phrase></textobject></inlinemediaobject></inlineequation> of the <emphasis>rate vector</emphasis> and with each element set to <inlineequation><alt>$1.0/k$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_27.png"/></imageobject><textobject role="tex"><phrase>$1.0/k$</phrase></textobject></inlinemediaobject></inlineequation>).</para><para>
References:<orderedlist>
<listitem><para>ISO, <emphasis>ISO/IEC 14882-2014: Information technology - Programming languages - C++</emphasis>, 2014</para>
</listitem></orderedlist>
</para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a87691d35ce91ee743ed144ee2e3b3879" name="operator()" cv="const"><type>RealT</type><template>
          <template-type-parameter name="URNG"><purpose><para>Must meet the requirements of  <link linkend="boost_random.reference.concepts.uniform_random_number_generator">uniform random number generator</link> .</para></purpose></template-type-parameter>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype><description><para>A uniform random number generator object.</para></description></parameter><description><para>Gets a random variate distributed according to the hyperexponential distribution.</para><para>


</para></description><returns><para>A random variate distributed according to the hyperexponential distribution. </para>
</returns></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1ab8cf131a35d675fe3837a17c4b70873b" name="operator()" cv="const"><type>RealT</type><template>
          <template-type-parameter name="URNG"><purpose><para>Must meet the requirements of  <link linkend="boost_random.reference.concepts.uniform_random_number_generator">uniform random number generator</link> .</para></purpose></template-type-parameter>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype><description><para>A uniform random number generator object. </para></description></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype><description><para>A distribution parameter object.</para></description></parameter><description><para>Gets a random variate distributed according to the hyperexponential distribution with parameters specified by <computeroutput>param</computeroutput>.</para><para>


</para></description><returns><para>A random variate distributed according to the hyperexponential distribution. distribution with parameters specified by <computeroutput>param</computeroutput>. </para>
</returns></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a13e5b222112f26735031a8631a5b833b" name="num_phases" cv="const"><type>std::size_t</type><description><para>Returns the number of phases of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1ae019614cc9cd91ec2dff306459289437" name="probabilities" cv="const"><type>std::vector&lt; RealT &gt;</type><description><para>Returns the <emphasis>phase probability vector</emphasis> parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a91e61293608aa905762ad27262cb48af" name="rates" cv="const"><type>std::vector&lt; RealT &gt;</type><description><para>Returns the <emphasis>rate vector</emphasis> parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1ad274da384a55786719dd3ecab8967f84" name="min" cv="const"><type>RealT</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1ae2b2e1ce0c3d4ce7ba36cfe49c9c6b88" name="max" cv="const"><type>RealT</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a0ae4ddc40714698ef0f77af68e825914" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a9179d63f1a4b7cb8c2ef8f440e2c1c03" name="param"><type>void</type><parameter name="param"><paramtype><classname>param_type</classname> const &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a64670d7145c552ae917e439054c51319" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1aa06dc41983022d0c078cf8524420d963" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="hd"><paramtype>const <classname>hyperexponential_distribution</classname> &amp;</paramtype></parameter><description><para>Writes an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution">hyperexponential_distribution</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1ad02f9fcbccc124a8d9b3444166860641" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="hd"><paramtype>const <classname>hyperexponential_distribution</classname> &amp;</paramtype></parameter><description><para>Reads an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution">hyperexponential_distribution</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a6657878b0ad3c40bb3d25b4ff7da6c3b" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>hyperexponential_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>hyperexponential_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution">hyperexponential_distribution</link></computeroutput> will return identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution_1a8ec524e4c493bb9376cf0df0898f6058" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>hyperexponential_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>hyperexponential_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1hyperexponential__distribution">hyperexponential_distribution</link></computeroutput> will return different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.independent__bits_8hpp" name="boost/random/independent_bits.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine" name="independent_bits_engine"><template>
      <template-type-parameter name="Engine"/>
      <template-nontype-parameter name="w"><type>std::size_t</type></template-nontype-parameter>
      <template-type-parameter name="UIntType"/>
    </template><description><para>An instantiation of class template <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1independent__bits__engine">independent_bits_engine</link></computeroutput> model a  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link> . It generates random numbers distributed between [0, 2^w) by combining one or more invocations of the base engine.</para><para>Requires: 0 &lt; w &lt;= std::numeric_limits&lt;UIntType&gt;::digits </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1a3dcc94ccf45be06e100e4f9344cca226" name="base_type"><type>Engine</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1ab707c8c58453ca4f96d28282c12572a2" name="result_type"><type>UIntType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1a5cd75f80f31d17af6189cec901eb4839" name="base_result_type"><type>Engine::result_type</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1ae610b31494b26f74ded350682fb727d1" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1a5ac02bfca124e1690f02589a528bbcee" name="min" specifiers="static"><type>result_type</type><description><para>Returns the smallest value that the generator can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1aa810e9f67b52eceb84e1904d25327eae" name="max" specifiers="static"><type>result_type</type><description><para>Returns the largest value that the generator can produce. </para></description></method>
</method-group>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1a505e2a187367307c58129f14dddfbcbf"><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1independent__bits__engine">independent_bits_engine</link></computeroutput> using the default constructor of the base generator. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1a7032f006a2629f996a0c0363efcb0480" specifiers="explicit"><parameter name="seed"><paramtype>base_result_type</paramtype></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1independent__bits__engine">independent_bits_engine</link></computeroutput>, using seed as the constructor argument for both base generators. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1a018dac6fd0427c37673876312082311e" specifiers="explicit"><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1independent__bits__engine">independent_bits_engine</link></computeroutput>, using seq as the constructor argument for the base generator. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1a3c001453d3d687ce40a6ec43913f7e9d"><parameter name="base_arg"><paramtype>const base_type &amp;</paramtype></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1independent__bits__engine">independent_bits_engine</link></computeroutput> by copying <computeroutput>base</computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1a472dc74603eb8275c1bf5c4457b68d36"><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Contructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1independent__bits__engine">independent_bits_engine</link></computeroutput> with values from the range defined by the input iterators first and last. first will be modified to point to the element after the last one used.</para><para>Throws: <computeroutput>std::invalid_argument</computeroutput> if the input range is too small.</para><para>Exception Safety: Basic </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1add71dc930e19dab7c13d1d93d9b0d398" name="seed"><type>void</type><description><para>Seeds an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1independent__bits__engine">independent_bits_engine</link></computeroutput> using the default seed of the base generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1a05427d15647c2c9c47801df1a7e5b739" name="seed"><type>void</type><parameter name="seed"><paramtype>base_result_type</paramtype></parameter><description><para>Seeds an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1independent__bits__engine">independent_bits_engine</link></computeroutput>, using <computeroutput>seed</computeroutput> as the seed for the base generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1a0c7c7a5aef2b30df7379229abf879b57" name="seed"><type>void</type><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Seeds an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1independent__bits__engine">independent_bits_engine</link></computeroutput>, using <computeroutput>seq</computeroutput> to seed the base generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1ae6219552edde9c919d743a34fa9be9ed" name="seed"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Seeds an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1independent__bits__engine">independent_bits_engine</link></computeroutput> with values from the range defined by the input iterators first and last. first will be modified to point to the element after the last one used.</para><para>Throws: <computeroutput>std::invalid_argument</computeroutput> if the input range is too small.</para><para>Exception Safety: Basic </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1a491a9f367d4aae50b69d21546e45ab89" name="operator()"><type>result_type</type><description><para>Returns the next value of the generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1ac4b5539aa93637e89659d6d27a985e6a" name="generate"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Fills a range with random values </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1af64be62f5811be396be33128f74b3771" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Advances the state of the generator by <computeroutput>z</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1aad1b918a0d080ad453cdc45ad311394e" name="base" cv="const"><type>const base_type &amp;</type></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1a17f8bef620bc88aed389cb42063cc7b5" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="r"><paramtype>const <classname>independent_bits_engine</classname> &amp;</paramtype></parameter><description><para>Writes the textual representation if the generator to a <computeroutput>std::ostream</computeroutput>. The textual representation of the engine is the textual representation of the base engine. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1a3b41869e6a87f3ff336b3421195966e5" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="r"><paramtype>const <classname>independent_bits_engine</classname> &amp;</paramtype></parameter><description><para>Reads the state of an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1independent__bits__engine">independent_bits_engine</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1a75231dbd66015d3a5644a5ff56fae27a" name="operator=="><type>bool</type><parameter name="x"><paramtype>const <classname>independent_bits_engine</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const <classname>independent_bits_engine</classname> &amp;</paramtype></parameter><description><para>Returns: true iff the two <computeroutput>independent_bits_engines</computeroutput> will produce the same sequence of values. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1independent__bits__engine_1a91620cd2d6bfd236f946c372a0416564" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>independent_bits_engine</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>independent_bits_engine</classname> &amp;</paramtype></parameter><description><para>Returns: true iff the two <computeroutput>independent_bits_engines</computeroutput> will produce different sequences of values. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.inverse__gaussian__distribution_8hpp" name="boost/random/inverse_gaussian_distribution.hpp">
<namespace name="boost">
<namespace name="random">

</namespace>
</namespace>
</header>
<header id="doxygen.headers.inversive__congruential_8hpp" name="boost/random/inversive_congruential.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine" name="inversive_congruential_engine"><template>
      <template-type-parameter name="IntType"/>
      <template-nontype-parameter name="a"><type>IntType</type></template-nontype-parameter>
      <template-nontype-parameter name="b"><type>IntType</type></template-nontype-parameter>
      <template-nontype-parameter name="p"><type>IntType</type></template-nontype-parameter>
    </template><description><para>Instantiations of class template <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine">inversive_congruential_engine</link></computeroutput> model a  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link> . It uses the inversive congruential algorithm (ICG) described in</para><para> <blockquote><para>  "Inversive pseudorandom number generators: concepts, results and links", Peter Hellekalek, In: "Proceedings of the 1995 Winter Simulation
 Conference", C. Alexopoulos, K. Kang, W.R. Lilegdon, and D. Goldsman (editors), 1995, pp. 255-262. <ulink url="ftp://random.mat.sbg.ac.at/pub/data/wsc95.ps">ftp://random.mat.sbg.ac.at/pub/data/wsc95.ps</ulink>  </para></blockquote> </para><para>The output sequence is defined by x(n+1) = (a*inv(x(n)) - b) (mod p), where x(0), a, b, and the prime number p are parameters of the generator. The expression inv(k) denotes the multiplicative inverse of k in the field of integer numbers modulo p, with inv(0) := 0.</para><para>The template parameter IntType shall denote a signed integral type large enough to hold p; a, b, and p are the parameters of the generators. The template parameter val is the validation value checked by validation.</para><para> <note><para>  The implementation currently uses the Euclidian Algorithm to compute the multiplicative inverse. Therefore, the inversive generators are about 10-20 times slower than the others (see section"performance"). However, the paper talks of only 3x slowdown, so the Euclidian Algorithm is probably not optimal for calculating the multiplicative inverse.  </para></note>  </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1a76a55e5a0f0437be23179465ef378518" name="result_type"><type>IntType</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1a1a7744e7ee21243a0d23cb5ddad3bcfe" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1af7b539f0a8691c4c114d92df66d5b74a" name="multiplier" specifiers="static"><type>const result_type</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1ac7ea9c2529d5524912576af84e1fc00b" name="increment" specifiers="static"><type>const result_type</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1a2f7fd1f244846c28ce508d5445415857" name="modulus" specifiers="static"><type>const result_type</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1a9542d4f5b5be06358046e5797eb7a702" name="default_seed" specifiers="static"><type>const IntType</type></data-member>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1a188c23f9c6c1d99f036dfc1e28f545da" name="min" specifiers="static"><type>result_type</type></method>
<method id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1ac87bd38f50703a2df393aae1ef09c01c" name="max" specifiers="static"><type>result_type</type></method>
</method-group>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1a4df22ea45cecbb6d241082a9ee6c45e5"><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine">inversive_congruential_engine</link></computeroutput>, seeding it with the default seed. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1a24ab446b538bb7a8e340f778ce7f93e8" specifiers="explicit"><parameter name="x0"><paramtype>IntType</paramtype></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine">inversive_congruential_engine</link></computeroutput>, seeding it with <computeroutput>x0</computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1accbf48672ab9b3ce1e1c52f992ea6f8d" specifiers="explicit"><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine">inversive_congruential_engine</link></computeroutput>, seeding it with values produced by a call to <computeroutput>seq.generate()</computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1ac5b1dd5eeacfe0bca195cf681760888b"><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine">inversive_congruential_engine</link></computeroutput>, seeds it with values taken from the itrator range [first, last), and adjusts first to point to the element after the last one used. If there are not enough elements, throws <computeroutput>std::invalid_argument</computeroutput>.</para><para>first and last must be input iterators. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1abeb333952cea11d4a87226642fc37c7d" name="seed"><type>void</type><description><para>Calls seed(default_seed) </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1a762bee3bebf1be7afc48c62acb2ea36d" name="seed"><type>void</type><parameter name="x0"><paramtype>IntType</paramtype></parameter><description><para>If c mod m is zero and x0 mod m is zero, changes the current value of the generator to 1. Otherwise, changes it to x0 mod m. If c is zero, distinct seeds in the range [1,m) will leave the generator in distinct states. If c is not zero, the range is [0,m). </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1afa3b3a56d2bf5a562926bcf3de7449ee" name="seed"><type>void</type><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Seeds an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine">inversive_congruential_engine</link></computeroutput> using values from a SeedSeq. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1a054685e76353132afbcabfd207fc3f13" name="seed"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>seeds an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine">inversive_congruential_engine</link></computeroutput> with values taken from the itrator range [first, last) and adjusts <computeroutput>first</computeroutput> to point to the element after the last one used. If there are not enough elements, throws <computeroutput>std::invalid_argument</computeroutput>.</para><para><computeroutput>first</computeroutput> and <computeroutput>last</computeroutput> must be input iterators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1a038e10a676cea67a23f04978fbcb94ff" name="operator()"><type>IntType</type><description><para>Returns the next output of the generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1abf6b7a74185c857470a148a833edca43" name="generate"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Fills a range with random values </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1aeec133826f9bf769c1f69f2610e48db7" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Advances the state of the generator by <computeroutput>z</computeroutput>. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1ad6a9202f1eb4b0e37f549a605f4dc2f7" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="x"><paramtype>const <classname>inversive_congruential_engine</classname> &amp;</paramtype></parameter><description><para>Writes the textual representation of the generator to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1a02b377108499ed23bd7b82d32c5658fe" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="x"><paramtype>const <classname>inversive_congruential_engine</classname> &amp;</paramtype></parameter><description><para>Reads the textual representation of the generator from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1a5c8f6050fc67b48f1cf187bd092ff2ee" name="operator=="><type>bool</type><parameter name="x"><paramtype>const <classname>inversive_congruential_engine</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const <classname>inversive_congruential_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce identical sequences of outputs. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1inversive__congruential__engine_1a050602f7a4ad511b67aefabbe16623ae" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>inversive_congruential_engine</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>inversive_congruential_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce different sequences of outputs. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.inversive__congruential_8hpp_1a70fd194ea5f8599d76496e98cb0412a5" name="hellekalek1995"><description><para>The specialization hellekalek1995 was suggested in</para><para> <blockquote><para>  "Inversive pseudorandom number generators: concepts, results and links", Peter Hellekalek, In: "Proceedings of the 1995 Winter Simulation
 Conference", C. Alexopoulos, K. Kang, W.R. Lilegdon, and D. Goldsman (editors), 1995, pp. 255-262. <ulink url="ftp://random.mat.sbg.ac.at/pub/data/wsc95.ps">ftp://random.mat.sbg.ac.at/pub/data/wsc95.ps</ulink>  </para></blockquote>  </para></description><type><classname>inversive_congruential_engine</classname>&lt; uint32_t, 9102, 2147483647-36884165, 2147483647 &gt;</type></typedef>

</namespace>
</namespace>
</header>
<header id="doxygen.headers.lagged__fibonacci_8hpp" name="boost/random/lagged_fibonacci.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine" name="lagged_fibonacci_01_engine"><template>
      <template-type-parameter name="RealType"/>
      <template-nontype-parameter name="w"><type>int</type></template-nontype-parameter>
      <template-nontype-parameter name="p"><type>unsigned int</type></template-nontype-parameter>
      <template-nontype-parameter name="q"><type>unsigned int</type></template-nontype-parameter>
    </template><description><para>Instantiations of class template <computeroutput>lagged_fibonacci_01</computeroutput> model a  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link> . It uses a lagged Fibonacci algorithm with two lags <computeroutput>p</computeroutput> and <computeroutput>q</computeroutput>, evaluated in floating-point arithmetic: x(i) = x(i-p) + x(i-q) (mod 1) with p &gt; q. See</para><para> <blockquote><para>  "Uniform random number generators for supercomputers", Richard Brent, Proc. of Fifth Australian Supercomputer Conference, Melbourne, Dec. 1992, pp. 704-706.  </para></blockquote> </para><para> <note><para>  The quality of the generator crucially depends on the choice of the parameters. User code should employ one of the sensibly parameterized generators such as  <classname alt="boost::random::lagged_fibonacci607">lagged_fibonacci607</classname>  instead.  </para></note> </para><para>The generator requires considerable amounts of memory for the storage of its state array. For example,  <classname alt="boost::random::lagged_fibonacci607">lagged_fibonacci607</classname>  requires about 4856 bytes and  <classname alt="boost::random::lagged_fibonacci44497">lagged_fibonacci44497</classname>  requires about 350 KBytes. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1ae47ae99d6295279d65f22817d50c34cb" name="result_type"><type>RealType</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1abb6860e53e49994e4eb6d19a12b8a991" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a30bc1c5557df699bb8efb5ad18290d17" name="word_size" specifiers="static"><type>const int</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a6f9d7c082dd02a8fc07e3cfedf14fed5" name="long_lag" specifiers="static"><type>const unsigned int</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a116712f4ba5882fb8ad40e8c4dbc058b" name="short_lag" specifiers="static"><type>const unsigned int</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a5ad0077e8eed44068b86bc8be706a205" name="default_seed" specifiers="static"><type>const boost::uint32_t</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a8d499207383e79363161432249dd493b"><description><para>Constructs a <computeroutput>lagged_fibonacci_01</computeroutput> generator and calls <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a8d78f4687cdd6a14c2e6b76efc1bac37">seed()</link></computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a56409ab17cdff6b274a654d2d5d2b822" specifiers="explicit"><parameter name="value"><paramtype>uint32_t</paramtype></parameter><description><para>Constructs a <computeroutput>lagged_fibonacci_01</computeroutput> generator and calls <computeroutput>seed(value)</computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a7ce7f3c5e8a921693eb7443d66bfdf38" specifiers="explicit"><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Constructs a <computeroutput>lagged_fibonacci_01</computeroutput> generator and calls <computeroutput>seed(gen)</computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a5ea267d4479c07980b2a8601714e2aed"><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a8d78f4687cdd6a14c2e6b76efc1bac37" name="seed"><type>void</type><description><para>Calls seed(default_seed). </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a6ce9dc30ce927f866bcde1402bc76426" name="seed"><type>void</type><parameter name="value"><paramtype>boost::uint32_t</paramtype></parameter><description><para>Constructs a  <classname alt="boost::random::minstd_rand0">minstd_rand0</classname>  generator with the constructor parameter value and calls seed with it. Distinct seeds in the range [1, 2147483647) will produce generators with different states. Other seeds will be equivalent to some seed within this range. See  <classname alt="boost::random::linear_congruential_engine">linear_congruential_engine</classname> for details. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1aa99d174759973cd1f09f76c6173b541c" name="seed"><type>void</type><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Seeds this <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine">lagged_fibonacci_01_engine</link></computeroutput> using values produced by <computeroutput>seq.generate</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a604d63c6d04a2cf489cf349e5c1a17af" name="seed"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Seeds this <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine">lagged_fibonacci_01_engine</link></computeroutput> using values from the iterator range [first, last). If there are not enough elements in the range, throws <computeroutput>std::invalid_argument</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a9241ff8593d4a63c0d50d3d97a4ad83f" name="operator()"><type>result_type</type><description><para>Returns the next value of the generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1aa6582f23ff792ead5d749b04dc757798" name="generate"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Fills a range with random values </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1aff63cb15e5f1dcedb6e1602609d363d8" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Advances the state of the generator by <computeroutput>z</computeroutput>. </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a7550033e605fdb9d5b498619b067109c" name="min" specifiers="static"><type>result_type</type><description><para>Returns the smallest value that the generator can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1ac0d14d8e19db88f6f21e4614696a9089" name="max" specifiers="static"><type>result_type</type><description><para>Returns the upper bound of the generators outputs. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a8f7bf5401dfcc900b244992caf65f09e" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="f"><paramtype>const <classname>lagged_fibonacci_01_engine</classname> &amp;</paramtype></parameter><description><para>Writes the textual representation of the generator to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1ae09f552a451dff361de1ed981b29e098" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="f"><paramtype>const <classname>lagged_fibonacci_01_engine</classname> &amp;</paramtype></parameter><description><para>Reads the textual representation of the generator from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a3e7291a52c117a1089fa303f09612bf4" name="operator=="><type>bool</type><parameter name="x_"><paramtype>const <classname>lagged_fibonacci_01_engine</classname> &amp;</paramtype></parameter><parameter name="y_"><paramtype>const <classname>lagged_fibonacci_01_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce identical sequences of outputs. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__01__engine_1a83ca87f7534c4a26806a50ca9a0b6afd" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>lagged_fibonacci_01_engine</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>lagged_fibonacci_01_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce different sequences of outputs. </para></description></method>
</method-group>
</class><class id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine" name="lagged_fibonacci_engine"><template>
      <template-type-parameter name="UIntType"/>
      <template-nontype-parameter name="w"><type>int</type></template-nontype-parameter>
      <template-nontype-parameter name="p"><type>unsigned int</type></template-nontype-parameter>
      <template-nontype-parameter name="q"><type>unsigned int</type></template-nontype-parameter>
    </template><description><para>Instantiations of class template  <classname alt="boost::random::lagged_fibonacci_engine">lagged_fibonacci_engine</classname> model a  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link> . It uses a lagged Fibonacci algorithm with two lags <computeroutput>p</computeroutput> and <computeroutput>q:</computeroutput> x(i) = x(i-p) + x(i-q) (mod 2<superscript>w</superscript>) with p &gt; q. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1ac6a61f95c677e32c78896a7dc869af32" name="result_type"><type>UIntType</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a71f72306254567a67788ef6e40899a5c" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a786e1d56dd2ba99cff4057ee77546bb5" name="word_size" specifiers="static"><type>const int</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1ac8dc6ece4c4a716baf9348833e513cbf" name="long_lag" specifiers="static"><type>const unsigned int</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a38788f559e9bd27eb3e0dcc6b672a1cd" name="short_lag" specifiers="static"><type>const unsigned int</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a78dfc773918eb7bf8404749a99f5fd2b" name="default_seed" specifiers="static"><type>const UIntType</type></data-member>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1aeb6238dc7b95b8b1ca65f3c3f599713c" name="min" specifiers="static"><type>result_type</type><description><para>Returns the smallest value that the generator can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1abcfb16d7a8c6536443b5d28cfc373fd6" name="max" specifiers="static"><type>result_type</type><description><para>Returns the largest value that the generator can produce. </para></description></method>
</method-group>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a08d4dc9ca4281f6c6dc3823757e49041"><description><para>Creates a new <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine">lagged_fibonacci_engine</link></computeroutput> and calls <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a631afad8123b77d4948de04c111f29e2">seed()</link></computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a217014d7d759a8847d89042568d948d2" specifiers="explicit"><parameter name="value"><paramtype>UIntType</paramtype></parameter><description><para>Creates a new <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine">lagged_fibonacci_engine</link></computeroutput> and calls <computeroutput>seed(value)</computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a175e5c1f12ff8be1b81bf9c51b0c1a77" specifiers="explicit"><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Creates a new <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine">lagged_fibonacci_engine</link></computeroutput> and calls <computeroutput>seed(seq)</computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a1d6ee752e2a765ffac6f218155964e74"><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Creates a new <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine">lagged_fibonacci_engine</link></computeroutput> and calls <computeroutput>seed(first, last)</computeroutput>. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a631afad8123b77d4948de04c111f29e2" name="seed"><type>void</type><description><para>Calls <computeroutput>seed(default_seed)</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a14bfe6fe27da6a707437477ee2be504c" name="seed"><type>void</type><parameter name="value"><paramtype>UIntType</paramtype></parameter><description><para>Sets the state of the generator to values produced by a  <classname alt="boost::random::minstd_rand0">minstd_rand0</classname>  generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1ae9289b65d5e4fcc8f0cadf1b9973bd1b" name="seed"><type>void</type><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Sets the state of the generator using values produced by seq. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1adba6871fcfce0df768e17d88aea607ff" name="seed"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Sets the state of the generator to values from the iterator range [first, last). If there are not enough elements in the range [first, last) throws <computeroutput>std::invalid_argument</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a819e7657f570a37d904467bcfaed447c" name="operator()"><type>result_type</type><description><para>Returns the next value of the generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a05990155eab57fe2146620c91b8f3855" name="generate"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Fills a range with random values </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a62a11cbff391c264e9b9970577386640" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Advances the state of the generator by <computeroutput>z</computeroutput>. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a8dfd1ec3c24ac82be890815fe1e58a50" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="f"><paramtype>const <classname>lagged_fibonacci_engine</classname> &amp;</paramtype></parameter><description><para>Writes the textual representation of the generator to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1ab2e5945bc5616566ddb03c47c07cf6d4" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="f"><paramtype>const <classname>lagged_fibonacci_engine</classname> &amp;</paramtype></parameter><description><para>Reads the textual representation of the generator from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1ae65f545a77414d7a60360ddfd10c3456" name="operator=="><type>bool</type><parameter name="x_"><paramtype>const <classname>lagged_fibonacci_engine</classname> &amp;</paramtype></parameter><parameter name="y_"><paramtype>const <classname>lagged_fibonacci_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce identical sequences of outputs. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lagged__fibonacci__engine_1a9d62305f7fdc640e034825b32a28e883" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>lagged_fibonacci_engine</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>lagged_fibonacci_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce different sequences of outputs. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.lagged__fibonacci_8hpp_1a638258aa37c381afde036154b21dd8f7" name="lagged_fibonacci607"><description><para>The specializations lagged_fibonacci607 ... lagged_fibonacci44497 use well tested lags.</para><para>See</para><para> <blockquote><para>  "On the Periods of Generalized Fibonacci Recurrences", Richard P. Brent Computer Sciences Laboratory Australian National University, December 1992  </para></blockquote> </para><para>The lags used here can be found in</para><para> <blockquote><para>  "Uniform random number generators for supercomputers", Richard Brent, Proc. of Fifth Australian Supercomputer Conference, Melbourne, Dec. 1992, pp. 704-706.  </para></blockquote>     </para></description><type><classname>lagged_fibonacci_01_engine</classname>&lt; double, 48, 607, 273 &gt;</type></typedef>
<typedef id="doxygen.headers.lagged__fibonacci_8hpp_1aacc9daef963c25f84644d3991c018dc3" name="lagged_fibonacci1279"><description><para>The specializations lagged_fibonacci607 ... lagged_fibonacci44497 use well tested lags.</para><para>See</para><para> <blockquote><para>  "On the Periods of Generalized Fibonacci Recurrences", Richard P. Brent Computer Sciences Laboratory Australian National University, December 1992  </para></blockquote> </para><para>The lags used here can be found in</para><para> <blockquote><para>  "Uniform random number generators for supercomputers", Richard Brent, Proc. of Fifth Australian Supercomputer Conference, Melbourne, Dec. 1992, pp. 704-706.  </para></blockquote>     </para></description><type><classname>lagged_fibonacci_01_engine</classname>&lt; double, 48, 1279, 418 &gt;</type></typedef>
<typedef id="doxygen.headers.lagged__fibonacci_8hpp_1ae59d68f77b7c061a6f1f82343f0b9595" name="lagged_fibonacci2281"><description><para>The specializations lagged_fibonacci607 ... lagged_fibonacci44497 use well tested lags.</para><para>See</para><para> <blockquote><para>  "On the Periods of Generalized Fibonacci Recurrences", Richard P. Brent Computer Sciences Laboratory Australian National University, December 1992  </para></blockquote> </para><para>The lags used here can be found in</para><para> <blockquote><para>  "Uniform random number generators for supercomputers", Richard Brent, Proc. of Fifth Australian Supercomputer Conference, Melbourne, Dec. 1992, pp. 704-706.  </para></blockquote>     </para></description><type><classname>lagged_fibonacci_01_engine</classname>&lt; double, 48, 2281, 1252 &gt;</type></typedef>
<typedef id="doxygen.headers.lagged__fibonacci_8hpp_1a0b3b3d84ccad8aa706be3f8d0d0871eb" name="lagged_fibonacci3217"><description><para>The specializations lagged_fibonacci607 ... lagged_fibonacci44497 use well tested lags.</para><para>See</para><para> <blockquote><para>  "On the Periods of Generalized Fibonacci Recurrences", Richard P. Brent Computer Sciences Laboratory Australian National University, December 1992  </para></blockquote> </para><para>The lags used here can be found in</para><para> <blockquote><para>  "Uniform random number generators for supercomputers", Richard Brent, Proc. of Fifth Australian Supercomputer Conference, Melbourne, Dec. 1992, pp. 704-706.  </para></blockquote>     </para></description><type><classname>lagged_fibonacci_01_engine</classname>&lt; double, 48, 3217, 576 &gt;</type></typedef>
<typedef id="doxygen.headers.lagged__fibonacci_8hpp_1acd5d88d8c8ee5742a1c13495b3c8b429" name="lagged_fibonacci4423"><description><para>The specializations lagged_fibonacci607 ... lagged_fibonacci44497 use well tested lags.</para><para>See</para><para> <blockquote><para>  "On the Periods of Generalized Fibonacci Recurrences", Richard P. Brent Computer Sciences Laboratory Australian National University, December 1992  </para></blockquote> </para><para>The lags used here can be found in</para><para> <blockquote><para>  "Uniform random number generators for supercomputers", Richard Brent, Proc. of Fifth Australian Supercomputer Conference, Melbourne, Dec. 1992, pp. 704-706.  </para></blockquote>     </para></description><type><classname>lagged_fibonacci_01_engine</classname>&lt; double, 48, 4423, 2098 &gt;</type></typedef>
<typedef id="doxygen.headers.lagged__fibonacci_8hpp_1adf91aa0546157037dfe3b0d989def99f" name="lagged_fibonacci9689"><description><para>The specializations lagged_fibonacci607 ... lagged_fibonacci44497 use well tested lags.</para><para>See</para><para> <blockquote><para>  "On the Periods of Generalized Fibonacci Recurrences", Richard P. Brent Computer Sciences Laboratory Australian National University, December 1992  </para></blockquote> </para><para>The lags used here can be found in</para><para> <blockquote><para>  "Uniform random number generators for supercomputers", Richard Brent, Proc. of Fifth Australian Supercomputer Conference, Melbourne, Dec. 1992, pp. 704-706.  </para></blockquote>     </para></description><type><classname>lagged_fibonacci_01_engine</classname>&lt; double, 48, 9689, 5502 &gt;</type></typedef>
<typedef id="doxygen.headers.lagged__fibonacci_8hpp_1a71a9b29dc0d63356f371c0f98cd76587" name="lagged_fibonacci19937"><description><para>The specializations lagged_fibonacci607 ... lagged_fibonacci44497 use well tested lags.</para><para>See</para><para> <blockquote><para>  "On the Periods of Generalized Fibonacci Recurrences", Richard P. Brent Computer Sciences Laboratory Australian National University, December 1992  </para></blockquote> </para><para>The lags used here can be found in</para><para> <blockquote><para>  "Uniform random number generators for supercomputers", Richard Brent, Proc. of Fifth Australian Supercomputer Conference, Melbourne, Dec. 1992, pp. 704-706.  </para></blockquote>     </para></description><type><classname>lagged_fibonacci_01_engine</classname>&lt; double, 48, 19937, 9842 &gt;</type></typedef>
<typedef id="doxygen.headers.lagged__fibonacci_8hpp_1a9bfeb53f8901db50a0c4554c9204c108" name="lagged_fibonacci23209"><description><para>The specializations lagged_fibonacci607 ... lagged_fibonacci44497 use well tested lags.</para><para>See</para><para> <blockquote><para>  "On the Periods of Generalized Fibonacci Recurrences", Richard P. Brent Computer Sciences Laboratory Australian National University, December 1992  </para></blockquote> </para><para>The lags used here can be found in</para><para> <blockquote><para>  "Uniform random number generators for supercomputers", Richard Brent, Proc. of Fifth Australian Supercomputer Conference, Melbourne, Dec. 1992, pp. 704-706.  </para></blockquote>     </para></description><type><classname>lagged_fibonacci_01_engine</classname>&lt; double, 48, 23209, 13470 &gt;</type></typedef>
<typedef id="doxygen.headers.lagged__fibonacci_8hpp_1a19cae9c64fd97bb1c8e464351cdb3e7a" name="lagged_fibonacci44497"><description><para>The specializations lagged_fibonacci607 ... lagged_fibonacci44497 use well tested lags.</para><para>See</para><para> <blockquote><para>  "On the Periods of Generalized Fibonacci Recurrences", Richard P. Brent Computer Sciences Laboratory Australian National University, December 1992  </para></blockquote> </para><para>The lags used here can be found in</para><para> <blockquote><para>  "Uniform random number generators for supercomputers", Richard Brent, Proc. of Fifth Australian Supercomputer Conference, Melbourne, Dec. 1992, pp. 704-706.  </para></blockquote>     </para></description><type><classname>lagged_fibonacci_01_engine</classname>&lt; double, 48, 44497, 21034 &gt;</type></typedef>

</namespace>
</namespace>
</header>
<header id="doxygen.headers.laplace__distribution_8hpp" name="boost/random/laplace_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1laplace__distribution" name="laplace_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The laplace distribution is a real-valued distribution with two parameters, mean and beta.</para><para>It has <inlineequation><alt>$\displaystyle p(x) = \frac{e^-{\frac{|x-\mu|}{\beta}}}{2\beta}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_28.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p(x) = \frac{e^-{\frac{|x-\mu|}{\beta}}}{2\beta}$</phrase></textobject></inlinemediaobject></inlineequation>. </para></description><class id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1_1param__type_1a597836169bb59c6dd98c07609fbe442d" name="distribution_type"><type><classname>laplace_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1_1param__type_1a9e8aac8fa2546d2f6065e3124dd672fb" specifiers="explicit"><parameter name="mean"><paramtype>RealType</paramtype><default>0.0</default></parameter><parameter name="beta"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1_1param__type">param_type</link></computeroutput> from the "mean" and "beta" parameters of the distribution. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1_1param__type_1a43fe6a23570eeff04c109f1a3b23dbf0" name="mean" cv="const"><type>RealType</type><description><para>Returns the "mean" parameter of the distribtuion. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1_1param__type_1a3708f3da2b7210096b08225d83f28e31" name="beta" cv="const"><type>RealType</type><description><para>Returns the "beta" parameter of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1_1param__type">param_type</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1_1param__type">param_type</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the same. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1aa5fcc9b89db120c21cd2f06da353694d" name="result_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1a90970aa2fedec38daf94d2984d244392" name="input_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1aa8b3ce69b6afde04ebfd4dfc66d4c8b1" specifiers="explicit"><parameter name="mean"><paramtype>RealType</paramtype><default>0.0</default></parameter><parameter name="beta"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1laplace__distribution">laplace_distribution</link></computeroutput> from its "mean" and "beta" parameters. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1abec013c6a77eb0f3247ed0b6913a8a47" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1laplace__distribution">laplace_distribution</link></computeroutput> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1a677ecc7213cf2a304166c7ac06c59e42" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the laplace distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1a474c4575449c4eec094d63cb18b4d367" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed accordint to the laplace distribution with parameters specified by <computeroutput>param</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1ae1d1bfd9fc0ababe50faf1dfa520dccb" name="mean" cv="const"><type>RealType</type><description><para>Returns the "mean" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1a83c175617129aac8fda3cee830a90eac" name="beta" cv="const"><type>RealType</type><description><para>Returns the "beta" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1aabc4d8aaf678b81621048857566a38df" name="min" cv="const"><type>RealType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1ac58520ae2659356b5f919433b9d2c047" name="max" cv="const"><type>RealType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1a3f1c25c22c2c6313f0323e35bf7ddf41" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1a1946489fcd3a8db897b234af4752abcf" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1ab53c6159ab8d80e7c10fc8f11d271f6c" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1aaf51dd7b5b749e977471dd8fe485b07f" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="wd"><paramtype>const <classname>laplace_distribution</classname> &amp;</paramtype></parameter><description><para>Writes an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1laplace__distribution">laplace_distribution</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1a09305aac6263bb1420df21cb55d69c57" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="wd"><paramtype>const <classname>laplace_distribution</classname> &amp;</paramtype></parameter><description><para>Reads an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1laplace__distribution">laplace_distribution</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1a9b8849ccb6358b9c855798fee5ca5ad7" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>laplace_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>laplace_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1laplace__distribution">laplace_distribution</link></computeroutput> will return identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1laplace__distribution_1a3bb5211059b3c832b2e3caaf7a663467" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>laplace_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>laplace_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1laplace__distribution">laplace_distribution</link></computeroutput> will return different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.linear__congruential_8hpp" name="boost/random/linear_congruential.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine" name="linear_congruential_engine"><template>
      <template-type-parameter name="IntType"/>
      <template-nontype-parameter name="a"><type>IntType</type></template-nontype-parameter>
      <template-nontype-parameter name="c"><type>IntType</type></template-nontype-parameter>
      <template-nontype-parameter name="m"><type>IntType</type></template-nontype-parameter>
    </template><description><para>Instantiations of class template <link linkend="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine">linear_congruential_engine</link> model a  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link> . Linear congruential pseudo-random number generators are described in:</para><para> <blockquote><para>  "Mathematical methods in large-scale computing units", D. H. Lehmer, Proc. 2nd Symposium on Large-Scale Digital Calculating Machines, Harvard University Press, 1951, pp. 141-146  </para></blockquote> </para><para>Let x(n) denote the sequence of numbers returned by some pseudo-random number generator. Then for the linear congruential generator, x(n+1) := (a * x(n) + c) mod m. Parameters for the generator are x(0), a, c, m. The template parameter IntType shall denote an integral type. It must be large enough to hold values a, c, and m. The template parameters a and c must be smaller than m.</para><para>Note: The quality of the generator crucially depends on the choice of the parameters. User code should use one of the sensibly parameterized generators such as minstd_rand instead. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1a01eafe03ce5166f43ae56d347e8d4286" name="result_type"><type>IntType</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1aa323e86fa3f0c755439f230a9f2553b2" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1a9ea7c62433dd4b6e6cadc891582cbbd2" name="multiplier" specifiers="static"><type>const IntType</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1ab1d04e3499df81c8d95a1c013d181946" name="increment" specifiers="static"><type>const IntType</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1a581c6b3a1cb9a9fbb3d54ca37035df23" name="modulus" specifiers="static"><type>const IntType</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1ad81a1e01780a5d2268dd5163216aa3be" name="default_seed" specifiers="static"><type>const IntType</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1a7ba1c7ea6051b711530e252d16ece7df"><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine">linear_congruential_engine</link></computeroutput>, using the default seed </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1ae4bbd4fef372bbde81b9b3bd7e0d5266" specifiers="explicit"><parameter name="x0"><paramtype>IntType</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine">linear_congruential_engine</link></computeroutput>, seeding it with <computeroutput>x0</computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1a8e30bcb76d3ce33194267e88a4aaeaa5" specifiers="explicit"><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine">linear_congruential_engine</link></computeroutput>, seeding it with values produced by a call to <computeroutput>seq.generate()</computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1ac5eabebdfd0eb356820b7592037a9c1a"><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine">linear_congruential_engine</link></computeroutput> and seeds it with values taken from the itrator range [first, last) and adjusts first to point to the element after the last one used. If there are not enough elements, throws <computeroutput>std::invalid_argument</computeroutput>.</para><para>first and last must be input iterators. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1ad93f7a599811bd7a453edabe9673769e" name="seed"><type>void</type><description><para>Calls seed(default_seed) </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1aecf65e4c191295119bacfdf9c40b2169" name="seed"><type>void</type><parameter name="x0_"><paramtype>IntType</paramtype></parameter><description><para>If c mod m is zero and x0 mod m is zero, changes the current value of the generator to 1. Otherwise, changes it to x0 mod m. If c is zero, distinct seeds in the range [1,m) will leave the generator in distinct states. If c is not zero, the range is [0,m). </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1a78c0a48ec8f717c987281d9c2731fafc" name="seed"><type>void</type><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Seeds a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine">linear_congruential_engine</link></computeroutput> using values from a SeedSeq. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1a0d3fb46455d7d44e3535655752207dc4" name="seed"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>seeds a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine">linear_congruential_engine</link></computeroutput> with values taken from the itrator range [first, last) and adjusts <computeroutput>first</computeroutput> to point to the element after the last one used. If there are not enough elements, throws <computeroutput>std::invalid_argument</computeroutput>.</para><para><computeroutput>first</computeroutput> and <computeroutput>last</computeroutput> must be input iterators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1a966d0d6a8789db29983e98034c6c0282" name="operator()"><type>IntType</type><description><para>Returns the next value of the <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine">linear_congruential_engine</link></computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1ab0fedc415e34e2fb7985dd8c34733006" name="generate"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Fills a range with random values </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1afe8a858b2d608f6872efcb14d5dd4d5c" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Advances the state of the generator by <computeroutput>z</computeroutput>. </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1a8e2287fc30588ee4d51fdc2258c49a4a" name="min" specifiers="static"><type>result_type</type><description><para>Returns the smallest value that the <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine">linear_congruential_engine</link></computeroutput> can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1a88d9f2dd0ef26f5b36cd9ef09b68471a" name="max" specifiers="static"><type>result_type</type><description><para>Returns the largest value that the <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine">linear_congruential_engine</link></computeroutput> can produce. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1a8187965ca589574f8ca657b41df52faf" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="lcg"><paramtype>const <classname>linear_congruential_engine</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine">linear_congruential_engine</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine_1a8f45b74cfb994a8ca359f02175aa451b" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="lcg"><paramtype><classname>linear_congruential_engine</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__congruential__engine">linear_congruential_engine</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
</method-group>
</class><class id="doxygen.headers.classboost_1_1random_1_1rand48" name="rand48"><description><para>Class <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1rand48">rand48</link></computeroutput> models a  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link> . It uses the linear congruential algorithm with the parameters a = 0x5DEECE66D, c = 0xB, m = 2**48. It delivers identical results to the <computeroutput>lrand48()</computeroutput> function available on some systems (assuming lcong48 has not been called).</para><para>It is only available on systems where <computeroutput>uint64_t</computeroutput> is provided as an integral type, so that for example static in-class constants and/or enum definitions with large <computeroutput>uint64_t</computeroutput> numbers work. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1rand48_1a914011f02e7764360601bfe02b902fda" name="result_type"><type>boost::uint32_t</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1rand48_1aaee776c41e268503bdb1a173e2f56edd" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1rand48_1a9d993f16ee35c7ec1bac30172fbb7a65" name="min" specifiers="static"><type>uint32_t</type><description><para>Returns the smallest value that the generator can produce </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1rand48_1aa73ccc74fddbce60ec84c7d1be4f167e" name="max" specifiers="static"><type>uint32_t</type><description><para>Returns the largest value that the generator can produce </para></description></method>
</method-group>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1rand48_1a77bc2858807fa56d021e1e120e37c70c"><description><para>Seeds the generator with the default seed. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1rand48_1a809101f639286bf4477cf8d5b922da62" specifiers="explicit"><parameter name="x0"><paramtype>result_type</paramtype></parameter><description><para>Constructs a  <classname alt="boost::random::rand48">rand48</classname>  generator with x(0) := (x0 &lt;&lt; 16) | 0x330e. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1rand48_1a35cb51917e74deea856e1fea9913892d" specifiers="explicit"><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Seeds the generator with values produced by <computeroutput>seq.generate()</computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1rand48_1a519aa7adaec3c13ee7a82fbf305b89a0"><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Seeds the generator using values from an iterator range, and updates first to point one past the last value consumed. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1rand48_1ab8326c1b82bb7678321ff1d1086cb0f5" name="seed"><type>void</type><description><para>Seeds the generator with the default seed. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1rand48_1a0d2254160d5e4f5cdbe21b65b6cecc8a" name="seed"><type>void</type><parameter name="x0"><paramtype>result_type</paramtype></parameter><description><para>Changes the current value x(n) of the generator to (x0 &lt;&lt; 16) | 0x330e. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1rand48_1ad145008e8045410b45237104379d2858" name="seed"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Seeds the generator using values from an iterator range, and updates first to point one past the last value consumed. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1rand48_1adaead8b7d5001de9b330d4fa9e413346" name="seed"><type>void</type><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Seeds the generator with values produced by <computeroutput>seq.generate()</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1rand48_1ae48c2737b1b6dfebc1ebaca206d4739e" name="operator()"><type>uint32_t</type><description><para>Returns the next value of the generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1rand48_1a96d6eb23571f2715ff42f663832db8a4" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Advances the state of the generator by <computeroutput>z</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1rand48_1a0ef8390f308476ef2e9723a23b04e6e4" name="generate"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Fills a range with random values </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1rand48_1a71ac944f2f32f913cd4aca445238be6f" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="r"><paramtype>const <classname>rand48</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1rand48">rand48</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1rand48_1a37fac642eb6a57d55be2a8c6806f84dc" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="r"><paramtype><classname>rand48</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1rand48">rand48</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1rand48_1a0e033e22f48e2fd092b4ca7c9bc1de58" name="operator=="><type>bool</type><parameter name="x"><paramtype>const <classname>rand48</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const <classname>rand48</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce identical sequences of values. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1rand48_1abde37cb79b96515216380a6a11de7e11" name="operator!="><type>bool</type><parameter name="x"><paramtype>const <classname>rand48</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const <classname>rand48</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce different sequences of values. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.linear__congruential_8hpp_1a6009d4fb4d0382ebf16a5ff5fb58596a" name="minstd_rand0"><description><para>The specialization  <classname alt="boost::random::minstd_rand0">minstd_rand0</classname>  was originally suggested in</para><para> <blockquote><para>  A pseudo-random number generator for the System/360, P.A. Lewis, A.S. Goodman, J.M. Miller, IBM Systems Journal, Vol. 8, No. 2, 1969, pp. 136-146  </para></blockquote> </para><para>It is examined more closely together with  <classname alt="boost::random::minstd_rand">minstd_rand</classname>  in</para><para> <blockquote><para>  "Random Number Generators: Good ones are hard to find", Stephen K. Park and Keith W. Miller, Communications of the ACM, Vol. 31, No. 10, October 1988, pp. 1192-1201  </para></blockquote>  </para></description><type><classname>linear_congruential_engine</classname>&lt; uint32_t, 16807, 0, 2147483647 &gt;</type></typedef>
<typedef id="doxygen.headers.linear__congruential_8hpp_1a695b4dc833a7eefcae8bd4eaf651af9a" name="minstd_rand"><description><para>The specialization  <classname alt="boost::random::minstd_rand">minstd_rand</classname>  was suggested in</para><para> <blockquote><para>  "Random Number Generators: Good ones are hard to find", Stephen K. Park and Keith W. Miller, Communications of the ACM, Vol. 31, No. 10, October 1988, pp. 1192-1201  </para></blockquote>  </para></description><type><classname>linear_congruential_engine</classname>&lt; uint32_t, 48271, 0, 2147483647 &gt;</type></typedef>

</namespace>
</namespace>
</header>
<header id="doxygen.headers.linear__feedback__shift_8hpp" name="boost/random/linear_feedback_shift.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine" name="linear_feedback_shift_engine"><template>
      <template-type-parameter name="UIntType"/>
      <template-nontype-parameter name="w"><type>int</type></template-nontype-parameter>
      <template-nontype-parameter name="k"><type>int</type></template-nontype-parameter>
      <template-nontype-parameter name="q"><type>int</type></template-nontype-parameter>
      <template-nontype-parameter name="s"><type>int</type></template-nontype-parameter>
    </template><description><para>Instatiations of <computeroutput>linear_feedback_shift</computeroutput> model a  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link> . It was originally proposed in</para><para> <blockquote><para>  "Random numbers generated by linear recurrence modulo two.", Tausworthe, R. C.(1965), Mathematics of Computation 19, 201-209.  </para></blockquote>  </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1ae7b57f21eb25c1a348c104111c330358" name="result_type"><type>UIntType</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1a6f968452f035549220535e47f69dc8e6" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1a82041816875fbf226ef166d10d45836e" name="word_size" specifiers="static"><type>const int</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1a7ea661ebc5f1f5ff0d2dbb91078c6f7f" name="exponent1" specifiers="static"><type>const int</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1a25c7ec516979334d104299a8ff4e79bf" name="exponent2" specifiers="static"><type>const int</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1a68f636ddd9b89c4bcde6553503bb94a7" name="step_size" specifiers="static"><type>const int</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1a26a5f669dc0f755343944103810cab60" name="default_seed" specifiers="static"><type>const UIntType</type></data-member>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1a429670160d92952a818ebaa0b6339207" name="min" specifiers="static"><type>result_type</type><description><para>Returns the smallest value that the generator can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1a6d6372d94b67db197a96bc418f0b8d4f" name="max" specifiers="static"><type>result_type</type><description><para>Returns the largest value that the generator can produce. </para></description></method>
</method-group>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1a3d36430ca157f09b016cae9681762028"><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine">linear_feedback_shift_engine</link></computeroutput>, using the default seed. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1a51f78ec18ec74d6f7303680ddc095d43" specifiers="explicit"><parameter name="s0"><paramtype>UIntType</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine">linear_feedback_shift_engine</link></computeroutput>, seeding it with s0. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1a8b38ec4b4ed1d7e5c769765fb3d78c03" specifiers="explicit"><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine">linear_feedback_shift_engine</link></computeroutput>, seeding it with seq. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1aa23cf21a834bed24aeabaa20282b57cd"><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine">linear_feedback_shift_engine</link></computeroutput>, seeding it with values from the range [first, last). </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1af264f4d0915c2026ecc08e135aa34995" name="seed"><type>void</type><description><para>Seeds a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine">linear_feedback_shift_engine</link></computeroutput> with the default seed. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1a61d47e8c8e6ef54bb5974673e8f9bb6f" name="seed"><type>void</type><parameter name="s0"><paramtype>UIntType</paramtype></parameter><description><para>Seeds a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine">linear_feedback_shift_engine</link></computeroutput> with <computeroutput>s0</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1ad39c95a70e35c7202f74cdb3b3252575" name="seed"><type>void</type><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Seeds a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine">linear_feedback_shift_engine</link></computeroutput> with values produced by <computeroutput>seq.generate()</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1ac1c93a52dfc2001b398ccfa04eaf9c2e" name="seed"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Seeds a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine">linear_feedback_shift_engine</link></computeroutput> with values from the range [first, last). </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1addb26302af646350cdf091b85947d8a4" name="operator()"><type>result_type</type><description><para>Returns the next value of the generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1a4affb846d5387b6a34eee13a0b8208bf" name="generate"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Fills a range with random values </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1ad6e28f43efad1341ee30c81e1bddfb70" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Advances the state of the generator by <computeroutput>z</computeroutput>. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1a59d0defcd3e6aa2e995344e7fa06b7d4" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="x"><paramtype>const <classname>linear_feedback_shift_engine</classname> &amp;</paramtype></parameter><description><para>Writes the textual representation of the generator to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1ac07335c02e54cbb984d0fbbd44ca6695" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="x"><paramtype>const <classname>linear_feedback_shift_engine</classname> &amp;</paramtype></parameter><description><para>Reads the textual representation of the generator from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1a7d20700fc16990732942cdccb6d9601a" name="operator=="><type>bool</type><parameter name="x"><paramtype>const <classname>linear_feedback_shift_engine</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const <classname>linear_feedback_shift_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce identical sequences of outputs. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1linear__feedback__shift__engine_1aa04072b132ec9c46bb2c1ce5c7ac3cbe" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>linear_feedback_shift_engine</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>linear_feedback_shift_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce different sequences of outputs. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.lognormal__distribution_8hpp" name="boost/random/lognormal_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution" name="lognormal_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>Instantiations of class template <link linkend="doxygen.headers.classboost_1_1random_1_1lognormal__distribution">lognormal_distribution</link> model a  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link> . Such a distribution produces random numbers with <inlineequation><alt>$\displaystyle p(x) = \frac{1}{x s \sqrt{2\pi}} e^{\frac{-\left(\log(x)-m\right)^2}{2s^2}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_29.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p(x) = \frac{1}{x s \sqrt{2\pi}} e^{\frac{-\left(\log(x)-m\right)^2}{2s^2}}$</phrase></textobject></inlinemediaobject></inlineequation> for x &gt; 0.</para><para> <warning><para>  This distribution has been updated to match the C++ standard. Its behavior has changed from the original boost::lognormal_distribution. A backwards compatible version is provided in namespace boost.  </para></warning>  </para></description><class id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1_1param__type_1a5f58feb2955e9ee25a072ead9bce3329" name="distribution_type"><type><classname>lognormal_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1_1param__type_1aa2fbc0f30496d1cbc667bf84b2d6e01b" specifiers="explicit"><parameter name="m"><paramtype>RealType</paramtype><default>0.0</default></parameter><parameter name="s"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs the parameters of a <link linkend="doxygen.headers.classboost_1_1random_1_1lognormal__distribution">lognormal_distribution</link>. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1_1param__type_1a97df404e832249bb034e1871367d4475" name="m" cv="const"><type>RealType</type><description><para>Returns the "m" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1_1param__type_1a33d7531bf2336495dac84a8294fac73d" name="s" cv="const"><type>RealType</type><description><para>Returns the "s" parameter of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters to a std::ostream. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters from a std::istream. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are equal. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1a14e6925d4b1f644b5d83d1751e1dbfd6" name="input_type"><type><classname>normal_distribution</classname>&lt; RealType &gt;::input_type</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1ad7786d624139427109a5094f0110e385" name="result_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1a00b68e7b13eb0a895d7cccff9713fbdf" specifiers="explicit"><parameter name="m"><paramtype>RealType</paramtype><default>0.0</default></parameter><parameter name="s"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1lognormal__distribution">lognormal_distribution</link>. <computeroutput>m</computeroutput> and <computeroutput>s</computeroutput> are the parameters of the distribution. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1ae890a2bd090e6153e5ef7b4063d50895" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1lognormal__distribution">lognormal_distribution</link> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1a86fb0bd859d3d0084c29541ec458b96d" name="m" cv="const"><type>RealType</type><description><para>Returns the m parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1ab85ba78a06b81b02c51d16945a4e493c" name="s" cv="const"><type>RealType</type><description><para>Returns the s parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1a3bf6323b2a8b7412939d17fc8e7231be" name="min" cv="const"><type>RealType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1af8fe6240128969ed916b1c66d6ba0728" name="max" cv="const"><type>RealType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1a5b67dec26b76fa5b9d30f1bb82f23603" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1ab56d409fbfc13e014876d56e5f62569d" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1aa0a256259fac9292e594f864f9a777da" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1a61af690f5b32b5a81b4bcff4f0daa5ec" name="operator()"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the lognormal distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1a29602312b55f7e82e9629d0d4214c446" name="operator()"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the lognormal distribution with parameters specified by param. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1a9843fad49fbbcf9a3ad6292bbc747d22" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="ld"><paramtype>const <classname>lognormal_distribution</classname> &amp;</paramtype></parameter><description><para>Writes the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1a331123fac809f02a0b6d4fb535c87379" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="ld"><paramtype>const <classname>lognormal_distribution</classname> &amp;</paramtype></parameter><description><para>Reads the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1acb971a2bb5333dc6f396add21d986242" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>lognormal_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>lognormal_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will produce identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1lognormal__distribution_1a67397e71ff2e6b2552e75fe24f28de10" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>lognormal_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>lognormal_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions may produce different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.mersenne__twister_8hpp" name="boost/random/mersenne_twister.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine" name="mersenne_twister_engine"><template>
      <template-type-parameter name="UIntType"/>
      <template-nontype-parameter name="w"><type>std::size_t</type></template-nontype-parameter>
      <template-nontype-parameter name="n"><type>std::size_t</type></template-nontype-parameter>
      <template-nontype-parameter name="m"><type>std::size_t</type></template-nontype-parameter>
      <template-nontype-parameter name="r"><type>std::size_t</type></template-nontype-parameter>
      <template-nontype-parameter name="a"><type>UIntType</type></template-nontype-parameter>
      <template-nontype-parameter name="u"><type>std::size_t</type></template-nontype-parameter>
      <template-nontype-parameter name="d"><type>UIntType</type></template-nontype-parameter>
      <template-nontype-parameter name="s"><type>std::size_t</type></template-nontype-parameter>
      <template-nontype-parameter name="b"><type>UIntType</type></template-nontype-parameter>
      <template-nontype-parameter name="t"><type>std::size_t</type></template-nontype-parameter>
      <template-nontype-parameter name="c"><type>UIntType</type></template-nontype-parameter>
      <template-nontype-parameter name="l"><type>std::size_t</type></template-nontype-parameter>
      <template-nontype-parameter name="f"><type>UIntType</type></template-nontype-parameter>
    </template><description><para>Instantiations of class template <link linkend="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine">mersenne_twister_engine</link> model a  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link> . It uses the algorithm described in</para><para> <blockquote><para>  "Mersenne Twister: A 623-dimensionally equidistributed uniform
 pseudo-random number generator", Makoto Matsumoto and Takuji Nishimura, ACM Transactions on Modeling and Computer Simulation: Special Issue on Uniform Random Number Generation, Vol. 8, No. 1, January 1998, pp. 3-30.  </para></blockquote> </para><para> <note><para>  The boost variant has been implemented from scratch and does not derive from or use mt19937.c provided on the above WWW site. However, it was verified that both produce identical output.  </para></note> </para><para>The seeding from an integer was changed in April 2005 to address a <ulink url="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html">weakness</ulink>.</para><para>The quality of the generator crucially depends on the choice of the parameters. User code should employ one of the sensibly parameterized generators such as  <classname alt="boost::random::mt19937">mt19937</classname>  instead.</para><para>The generator requires considerable amounts of memory for the storage of its state array. For example,  <classname alt="boost::random::mt11213b">mt11213b</classname>  requires about 1408 bytes and  <classname alt="boost::random::mt19937">mt19937</classname>  requires about 2496 bytes. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a25a8836cb8d83b29ad80a8f2edc59380" name="result_type"><type>UIntType</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a016e710569abf3f09ae52ecc164c45cf" name="word_size" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1ac5ac4762eb9569e7a87cc2d777e8a008" name="state_size" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a0568c9db7c8ef8dfddce9f0cfa6c1341" name="shift_size" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a187c3b239ed3314f611987df2585b9f7" name="mask_bits" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1af57f6279c06546c4292819762398a11a" name="xor_mask" specifiers="static"><type>const UIntType</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1aa768c9865f4a1f20167bcd287680f426" name="tempering_u" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a7189a1cdf093d192ff45711318b01431" name="tempering_d" specifiers="static"><type>const UIntType</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a5ab282a3ceb344408e71b8b8f11aaf5d" name="tempering_s" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a0f5b3082f4de490fbb6c6fed04ea48ff" name="tempering_b" specifiers="static"><type>const UIntType</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a6b5aa02a5e9c7f4cadc23f805f268c72" name="tempering_t" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1acee56fd5519c94d8eaa78b5494f2449e" name="tempering_c" specifiers="static"><type>const UIntType</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a77c1e42d8759487c892aee909074f7ec" name="tempering_l" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a983cd1e0aa3bc49c8e3323b53a16264e" name="initialization_multiplier" specifiers="static"><type>const UIntType</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a570fffa7edc79617dc278f1f8ed997d8" name="default_seed" specifiers="static"><type>const UIntType</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a2ccfd77bee087bb9c4855573e21bd972" name="parameter_a" specifiers="static"><type>const UIntType</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a358546d35993f596dc65703821e1ada0" name="output_u" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a5eca7f94212b6776e12a4c61958bda65" name="output_s" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1ad7eb88374a5180d23feeed5f22ed75e2" name="output_b" specifiers="static"><type>const UIntType</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a3d2332c45af5f6355cc32feb977ed4b9" name="output_t" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1ab2669d096d8a34be9ec01e03517516e0" name="output_c" specifiers="static"><type>const UIntType</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a58caaedbcb56c24200b83e8ca9807449" name="output_l" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1ac2412c2122290d2670edb5eb0ca94c8d" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a7cdb248af95f439f51d4ff9000e00951"><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine">mersenne_twister_engine</link></computeroutput> and calls <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1ad23be64fabb51af2cd479674bcdc52ef">seed()</link></computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a59d009ba622a06a884f8918c778c802f" specifiers="explicit"><parameter name="value"><paramtype>UIntType</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine">mersenne_twister_engine</link></computeroutput> and calls <computeroutput>seed(value)</computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a1c245b2e6226d0cc39311609e6da3a57"><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a717a830404920c484e7b40a57636d08a" specifiers="explicit"><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine">mersenne_twister_engine</link> and calls <computeroutput>seed(gen)</computeroutput>.</para><para> <note><para>  The copy constructor will always be preferred over the templated constructor.  </para></note>  </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1ad23be64fabb51af2cd479674bcdc52ef" name="seed"><type>void</type><description><para>Calls <computeroutput>seed(default_seed)</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a49fd0c15de055b5e47ce472f95bbd2de" name="seed"><type>void</type><parameter name="value"><paramtype>UIntType</paramtype></parameter><description><para>Sets the state x(0) to v mod 2w. Then, iteratively, sets x(i) to (i + f * (x(i-1) xor (x(i-1) rshift w-2))) mod 2<superscript>w</superscript> for i = 1 .. n-1. x(n) is the first value to be returned by operator(). </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1abfe86170bf0006c1b699a6d870e2e80e" name="seed"><type>void</type><template>
          <template-type-parameter name="SeeqSeq"/>
        </template><parameter name="seq"><paramtype>SeeqSeq &amp;</paramtype></parameter><description><para>Seeds a <link linkend="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine">mersenne_twister_engine</link> using values produced by seq.generate(). </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1ad182d02f99aa5a31750fb260ee676757" name="seed"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Sets the state of the generator using values from an iterator range. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a4110a3caa93c4705cff8f31fd92941ae" name="operator()"><type>result_type</type><description><para>Produces the next value of the generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a6cfdae85c30f8b298c9b38e506bed615" name="generate"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Fills a range with random values </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a27f967901f14dc73f4db1b13ee8d888a" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Advances the state of the generator by <computeroutput>z</computeroutput> steps. Equivalent to</para><para><programlisting language="c++">for(unsigned long long i = 0; i &lt; z; ++i) {
    gen();
}
</programlisting> </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a19eb2d3911f13dedb04715396aa9d2e1" name="min" specifiers="static"><type>result_type</type><description><para>Returns the smallest value that the generator can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1abd14deba50bc988f6681ec94456dbeb0" name="max" specifiers="static"><type>result_type</type><description><para>Returns the largest value that the generator can produce. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a937365cff39092ea7c192b563b9dff80" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="mt"><paramtype>const <classname>mersenne_twister_engine</classname> &amp;</paramtype></parameter><description><para>Writes a <link linkend="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine">mersenne_twister_engine</link> to a <computeroutput>std::ostream</computeroutput> </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1afeccc06ed48e9db4cc4accccb26ac13b" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="mt"><paramtype><classname>mersenne_twister_engine</classname> &amp;</paramtype></parameter><description><para>Reads a <link linkend="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine">mersenne_twister_engine</link> from a <computeroutput>std::istream</computeroutput> </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1ad6eea3d74f66178fbd663b6c95a0b4a8" name="operator=="><type>bool</type><parameter name="x_"><paramtype>const <classname>mersenne_twister_engine</classname> &amp;</paramtype></parameter><parameter name="y_"><paramtype>const <classname>mersenne_twister_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators are in the same state, and will thus produce identical sequences. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1mersenne__twister__engine_1a01598bbbed4d5d0ea3f583599ee4ed4b" name="operator!="><type>bool</type><parameter name="x_"><paramtype>const <classname>mersenne_twister_engine</classname> &amp;</paramtype></parameter><parameter name="y_"><paramtype>const <classname>mersenne_twister_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators are in different states. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.mersenne__twister_8hpp_1a29ac4e21d84adda27beb1803a0525ca5" name="mt11213b"><description><para>The specializations  <classname alt="boost::random::mt11213b">mt11213b</classname>  and  <classname alt="boost::random::mt19937">mt19937</classname>  are from</para><para> <blockquote><para>  "Mersenne Twister: A 623-dimensionally equidistributed
 uniform pseudo-random number generator", Makoto Matsumoto and Takuji Nishimura, ACM Transactions on Modeling and Computer Simulation: Special Issue on Uniform Random Number Generation, Vol. 8, No. 1, January 1998, pp. 3-30.  </para></blockquote>  </para></description><type><classname>mersenne_twister_engine</classname>&lt; uint32_t, 32, 351, 175, 19, 0xccab8ee7, 11, 0xffffffff, 7, 0x31b6ab00, 15, 0xffe50000, 17, 1812433253 &gt;</type></typedef>
<typedef id="doxygen.headers.mersenne__twister_8hpp_1a313d63e0721b6a6bba3a1be507e9e6a2" name="mt19937"><description><para>The specializations  <classname alt="boost::random::mt11213b">mt11213b</classname>  and  <classname alt="boost::random::mt19937">mt19937</classname>  are from</para><para> <blockquote><para>  "Mersenne Twister: A 623-dimensionally equidistributed
 uniform pseudo-random number generator", Makoto Matsumoto and Takuji Nishimura, ACM Transactions on Modeling and Computer Simulation: Special Issue on Uniform Random Number Generation, Vol. 8, No. 1, January 1998, pp. 3-30.  </para></blockquote>  </para></description><type><classname>mersenne_twister_engine</classname>&lt; uint32_t, 32, 624, 397, 31, 0x9908b0df, 11, 0xffffffff, 7, 0x9d2c5680, 15, 0xefc60000, 18, 1812433253 &gt;</type></typedef>
<typedef id="doxygen.headers.mersenne__twister_8hpp_1a8e5f4c469e0d6ddf305dcac72157cdd8" name="mt19937_64"><type><classname>mersenne_twister_engine</classname>&lt; uint64_t, 64, 312, 156, 31, 0xb5026f5aa96619e9ull,29, 0x5555555555555555ull,17, 0x71d67fffeda60000ull,37, 0xfff7eee000000000ull,43, 6364136223846793005ull &gt;</type></typedef>

</namespace>
</namespace>
<macro id="doxygen.headers.mersenne__twister_8hpp_1a63e3fde252955e5618d17c49451ece7e" name="BOOST_RANDOM_MERSENNE_TWISTER_DISCARD_THRESHOLD"/>
</header>
<header id="doxygen.headers.mixmax_8hpp" name="boost/random/mixmax.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1mixmax__engine" name="mixmax_engine"><template>
      <template-nontype-parameter name="Ndim"><type>int</type></template-nontype-parameter>
      <template-nontype-parameter name="SPECIALMUL"><type>unsigned int</type></template-nontype-parameter>
      <template-nontype-parameter name="SPECIAL"><type>std::int64_t</type></template-nontype-parameter>
    </template><description><para>Instantiations of class template <link linkend="doxygen.headers.classboost_1_1random_1_1mixmax__engine">mixmax_engine</link> model,  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link>  . It uses the MIXMAX generator algorithms from:</para><para> <blockquote><para>  G.K.Savvidy and N.G.Ter-Arutyunian, On the Monte Carlo simulation of physical systems, J.Comput.Phys. 97, 566 (1991); Preprint EPI-865-16-86, Yerevan, Jan. 1986 <ulink url="http://dx.doi.org/10.1016/0021-9991(91)90015-D">http://dx.doi.org/10.1016/0021-9991(91)90015-D</ulink></para>
<para>K.Savvidy The MIXMAX random number generator Comp. Phys. Commun. 196 (2015), pp 161–165 <ulink url="http://dx.doi.org/10.1016/j.cpc.2015.06.003">http://dx.doi.org/10.1016/j.cpc.2015.06.003</ulink></para>
<para>K.Savvidy and G.Savvidy Spectrum and Entropy of C-systems. MIXMAX random number generator Chaos, Solitons &amp; Fractals, Volume 91, (2016) pp. 33–38 <ulink url="http://dx.doi.org/10.1016/j.chaos.2016.05.003">http://dx.doi.org/10.1016/j.chaos.2016.05.003</ulink>  </para></blockquote> </para><para>The generator crucially depends on the choice of the parameters. The valid sets of parameters are from the published papers above. </para></description><struct id="doxygen.headers.structboost_1_1random_1_1mixmax__engine_1_1rng__state__st" name="rng_state_st"><data-member id="doxygen.headers.structboost_1_1random_1_1mixmax__engine_1_1rng__state__st_1a911bd781055da452e57ef8bebf2b47a8" name="V"><type>std::array&lt; std::uint64_t, Ndim &gt;</type></data-member>
<data-member id="doxygen.headers.structboost_1_1random_1_1mixmax__engine_1_1rng__state__st_1a6420aae869e15ef99a8790cc2925ef69" name="sumtot"><type>std::uint64_t</type></data-member>
<data-member id="doxygen.headers.structboost_1_1random_1_1mixmax__engine_1_1rng__state__st_1a9694dbf6adf6ca648f724670de746163" name="counter"><type>int</type></data-member>
</struct><typedef id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1ab6935a8253c2314519776cc44840d486" name="result_type"><type>std::uint64_t</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1acd74e094c8f798f43b82440f13007e91" name="mixmax_min" specifiers="static"><type>const std::uint64_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a79400da286d33f50218f75902f1ecdae" name="mixmax_max" specifiers="static"><type>const std::uint64_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a00ca4caaf8ef3f071b704e7d90285b50" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a099a8031acc2af85bf609626d02c2209" name="N" specifiers="static"><type>const int</type><purpose>The main internal parameter, size of the defining MIXMAX matrix. </purpose></data-member>
<method-group name="public member functions">
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a17117d3842d01e39ea49f0eca389ef4d" name="min"><type>BOOST_STATIC_CONSTEXPR result_type</type></method>
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1af102702e2681b2f4b578b14aa94308b4" name="max"><type>BOOST_STATIC_CONSTEXPR result_type</type></method>
<constructor id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a1c5cbb3649e80a1b608e58458d675165" specifiers="explicit"><purpose>Constructor, unit vector as initial state, acted on by A^2^512. </purpose></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a7b1fba7ad67743d52a9393f63a236784" specifiers="explicit"><parameter name=""><paramtype>std::uint64_t</paramtype></parameter><purpose>Constructor, one 64-bit seed. </purpose><description><para>&lt; constructor, one uint64_t seed, random numbers are statistically independent from any two distinct seeds, e.g. consecutive seeds are ok</para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1ae5295fd3a0399fad5e91e9f90672513f" specifiers="explicit"><parameter name="clusterID"><paramtype>uint32_t</paramtype></parameter><parameter name="machineID"><paramtype>uint32_t</paramtype></parameter><parameter name="runID"><paramtype>uint32_t</paramtype></parameter><parameter name="streamID"><paramtype>uint32_t</paramtype></parameter><purpose>Constructor, four 32-bit seeds for 128-bit seeding flexibility. </purpose></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a93a9deb37cf7fdeb1c8bb03ac23a45e9" name="seed"><type>void</type><parameter name="seedval"><paramtype>std::uint64_t</paramtype><default>default_seed</default></parameter><purpose>seed with one 64-bit seed </purpose></method>
<constructor id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a92aeeb588066438e9ceceee1b653b170"><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a1affcd969c03b6a3e1792549bd719a2d" specifiers="explicit"><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1aada84925f03bcd68703a30a67382a9e8" name="seed"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Sets the state of the generator using values from an iterator range. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1aa34f9ac4f03dec28e9889dcaf8a8040b" name="seed"><type>void</type><template>
          <template-type-parameter name="SeeqSeq"/>
        </template><parameter name="seq"><paramtype>SeeqSeq &amp;</paramtype></parameter><description><para>Sets the state of the generator using values from a <link linkend="doxygen.headers.classboost_1_1random_1_1seed__seq">seed_seq</link>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a44dd1848d9aa68f4077fcf85b0698e40" name="operator()"><type>std::uint64_t</type><description><para>return one uint64 between min=0 and max=2^61-1 </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a48cf6412a716754bcfab9d1d305fe0cc" name="generate"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Fills a range with random values </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a577ec807d3c330eefe381d5c0cbc190d" name="discard"><type>void</type><parameter name="nsteps"><paramtype>std::uint64_t</paramtype></parameter><purpose>discard n steps, required in boost::random </purpose></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1ac0d03eb39f51438a6ecb6a1c9c637bf3" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="ost"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="me"><paramtype>const <classname>mixmax_engine</classname> &amp;</paramtype></parameter><description><para>save the state of the RNG to a stream </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a0a6fe4d27b964cc9a5bca662ed1c98a1" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="in"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="me"><paramtype><classname>mixmax_engine</classname> &amp;</paramtype></parameter><description><para>read the state of the RNG from a stream </para></description></method>
</method-group>
<method-group name="private member functions">
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a96e04555d4f357528a981e40bfba91de" name="MOD_MERSENNE"><type>std::uint64_t</type><parameter name="k"><paramtype>std::uint64_t</paramtype></parameter></method>
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1adb9e2194a50f239c905a4e960ab9349d" name="MULWU"><type>std::uint64_t</type><parameter name="k"><paramtype>std::uint64_t</paramtype></parameter></method>
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a0f1632a12a1a8286a10ef0399a18f00b" name="seed_vielbein"><type>void</type><parameter name="X"><paramtype>rng_state_t *</paramtype></parameter><parameter name="i"><paramtype>unsigned int</paramtype></parameter></method>
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1afd327da138ae010708e1eb30915440f0" name="seed_uniquestream"><type>void</type><parameter name="Xin"><paramtype>rng_state_t *</paramtype></parameter><parameter name="clusterID"><paramtype>uint32_t</paramtype></parameter><parameter name="machineID"><paramtype>uint32_t</paramtype></parameter><parameter name="runID"><paramtype>uint32_t</paramtype></parameter><parameter name="streamID"><paramtype>uint32_t</paramtype></parameter></method>
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a6ae45c463669b31b70b03669165d9c9a" name="iterate_raw_vec"><type>std::uint64_t</type><parameter name="Y"><paramtype>std::uint64_t *</paramtype></parameter><parameter name="sumtotOld"><paramtype>std::uint64_t</paramtype></parameter></method>
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a90be10825c4c60d03ab9a1ccff0e9d4b" name="apply_bigskip"><type>std::uint64_t</type><parameter name="Vout"><paramtype>std::uint64_t *</paramtype></parameter><parameter name="Vin"><paramtype>std::uint64_t *</paramtype></parameter><parameter name="clusterID"><paramtype>uint32_t</paramtype></parameter><parameter name="machineID"><paramtype>uint32_t</paramtype></parameter><parameter name="runID"><paramtype>uint32_t</paramtype></parameter><parameter name="streamID"><paramtype>uint32_t</paramtype></parameter></method>
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1ad2f5d73a4a07120d892ee45c2dadc6e7" name="modadd"><type>std::uint64_t</type><parameter name="foo"><paramtype>std::uint64_t</paramtype></parameter><parameter name="bar"><paramtype>std::uint64_t</paramtype></parameter></method>
<method id="doxygen.headers.classboost_1_1random_1_1mixmax__engine_1a0aa5442645b4094c4485c01d71c82a94" name="fmodmulM61"><type>std::uint64_t</type><parameter name="cum"><paramtype>std::uint64_t</paramtype></parameter><parameter name="s"><paramtype>std::uint64_t</paramtype></parameter><parameter name="a"><paramtype>std::uint64_t</paramtype></parameter></method>
</method-group>
</class><typedef id="doxygen.headers.mixmax_8hpp_1a36615ac97c022873de935ce4b1374318" name="mixmax"><description><para>Instantiation with a valid parameter set. </para></description><type><classname>mixmax_engine</classname>&lt; 17, 36, 0 &gt;</type></typedef>

</namespace>
</namespace>
</header>
<header id="doxygen.headers.negative__binomial__distribution_8hpp" name="boost/random/negative_binomial_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution" name="negative_binomial_distribution"><template>
      <template-type-parameter name="IntType"><default>int</default></template-type-parameter>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The negative binomial distribution is an integer valued distribution with two parameters, <computeroutput>k</computeroutput> and <computeroutput>p</computeroutput>. The distribution produces non-negative values.</para><para>The distribution function is <inlineequation><alt>$\displaystyle P(i) = {k+i-1\choose i}p^k(1-p)^i$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_30.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle P(i) = {k+i-1\choose i}p^k(1-p)^i$</phrase></textobject></inlinemediaobject></inlineequation>.</para><para>This implementation uses a gamma-poisson mixture. </para></description><class id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1_1param__type_1afb7f14b543571b6abfd9e023f562e696" name="distribution_type"><type><classname>negative_binomial_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1_1param__type_1ac872ad60b8cf1a230fde5df6763f45ae" specifiers="explicit"><parameter name="k"><paramtype>IntType</paramtype><default>1</default></parameter><parameter name="p"><paramtype>RealType</paramtype><default>0.5</default></parameter><description><para>Construct a <link linkend="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1_1param__type">param_type</link> object. <computeroutput>k</computeroutput> and <computeroutput>p</computeroutput> are the parameters of the distribution.</para><para>Requires: k &gt;=0 &amp;&amp; 0 &lt;= p &lt;= 1 </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1_1param__type_1a9bc1c4255cda8feda5feb6a750b25124" name="k" cv="const"><type>IntType</type><description><para>Returns the <computeroutput>k</computeroutput> parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1_1param__type_1aa517bf4390079645945a7e3274724c34" name="p" cv="const"><type>RealType</type><description><para>Returns the <computeroutput>p</computeroutput> parameter of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters of the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1_1param__type_1a95ac9818d02462ff9019342dd2f057c8" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype><classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters of the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the parameters have the same values. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the parameters have different values. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1a6c00897b30b65375d3a49886554b2610" name="result_type"><type>IntType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1ac1caf0b7a36227a41b20d08bb673ecfa" name="input_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1a1fc646d03f7550a37db97c1b0719514a" specifiers="explicit"><parameter name="k"><paramtype>IntType</paramtype><default>1</default></parameter><parameter name="p"><paramtype>RealType</paramtype><default>0.5</default></parameter><description><para>Construct a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution">negative_binomial_distribution</link></computeroutput> object. <computeroutput>k</computeroutput> and <computeroutput>p</computeroutput> are the parameters of the distribution.</para><para>Requires: k &gt;=0 &amp;&amp; 0 &lt;= p &lt;= 1 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1a90a5f70ce07b494fcee201985d437204" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Construct an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution">negative_binomial_distribution</link></computeroutput> object from the parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1a577c2c6319577f6c5fba4b111efd747a" name="operator()" cv="const"><type>IntType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the negative binomial distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1aaf37556aa8c9d63f266d3931e73c5d5d" name="operator()" cv="const"><type>IntType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the negative binomial distribution with parameters specified by <computeroutput>param</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1a41cd7deb2589481376ff8347c8520f2d" name="k" cv="const"><type>IntType</type><description><para>Returns the <computeroutput>k</computeroutput> parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1a3f810b187bf87d75eca66185816b720c" name="p" cv="const"><type>RealType</type><description><para>Returns the <computeroutput>p</computeroutput> parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1af8d471a7ab6bd547c1254b764007bc45" name="min" cv="const"><type>IntType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1a156764075e79fa7e4bddd90231d1ba24" name="max" cv="const"><type>IntType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1a461c9643f5b23be87859172131a1f8f6" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1a2d391db500b107779aea0e8395d72fd2" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1a19341617735cc67c531dcd4330ab844d" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1aa4743d9ef9a4fe1e552e63bf591461ee" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="bd"><paramtype>const <classname>negative_binomial_distribution</classname> &amp;</paramtype></parameter><description><para>Writes the parameters of the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1a5d8c4e33f2b4a555de4de373c7eb1c56" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="bd"><paramtype><classname>negative_binomial_distribution</classname> &amp;</paramtype></parameter><description><para>Reads the parameters of the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1aa9a7b93862964879c202d666c6bebe3d" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>negative_binomial_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>negative_binomial_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will produce the same sequence of values, given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1negative__binomial__distribution_1adefd5eb7bcea7b31a967fa4afbf0949f" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>negative_binomial_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>negative_binomial_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions could produce different sequences of values, given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.niederreiter__base2_8hpp" name="boost/random/niederreiter_base2.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine" name="niederreiter_base2_engine"><template>
      <template-type-parameter name="UIntType"/>
      <template-nontype-parameter name="w"><type>unsigned</type></template-nontype-parameter>
      <template-type-parameter name="Nb2Table"><default>default_niederreiter_base2_table</default></template-type-parameter>
    </template><description><para>Instantiations of class template <link linkend="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine">niederreiter_base2_engine</link> model a  <link linkend="boost_random.reference.concepts.quasi_random_number_generator">quasi-random number generator</link> . The <link linkend="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine">niederreiter_base2_engine</link> uses the algorithm described in  <blockquote><para>  Bratley, Fox, Niederreiter, ACM Trans. Model. Comp. Sim. 2, 195 (1992).  </para></blockquote> </para><para><important><para><link linkend="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine">niederreiter_base2_engine</link> skips trivial zeroes at the start of the sequence. For example, the beginning of the 2-dimensional Niederreiter base 2 sequence in <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1uniform__01">uniform_01</link></computeroutput> distribution will look like this: <programlisting language="c++">0.5, 0.5,
0.75, 0.25,
0.25, 0.75,
0.375, 0.375,
0.875, 0.875,
...
</programlisting></para>
</important>
In the following documentation <computeroutput>X</computeroutput> denotes the concrete class of the template <link linkend="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine">niederreiter_base2_engine</link> returning objects of type <computeroutput>UIntType</computeroutput>, u and v are the values of <computeroutput>X</computeroutput>.</para><para>Some member functions may throw exceptions of type std::range_error. This happens when the quasi-random domain is exhausted and the generator cannot produce any more values. The length of the low discrepancy sequence is given by <inlineequation><alt>$L=Dimension \times (2^{w} - 1)$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_31.png"/></imageobject><textobject role="tex"><phrase>$L=Dimension \times (2^{w} - 1)$</phrase></textobject></inlinemediaobject></inlineequation>. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine_1a8339fb36794d7789b19a1597c4970c72" name="result_type"><type>UIntType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine_1a6c79a07c933f759450fa7b958e4c1e3f" specifiers="explicit"><parameter name="s"><paramtype>std::size_t</paramtype></parameter><description><para>Effects: Constructs the default <computeroutput>s</computeroutput>-dimensional Niederreiter base 2 quasi-random number generator.</para><para>Throws: bad_alloc, invalid_argument, range_error. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine_1a3310360edf228854c1ac6371f880f3aa" name="dimension" cv="const"><type>std::size_t</type><description><para>Returns: The dimension of of the quasi-random domain.</para><para>Throws: nothing. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine_1a6b479ef979b4181da12223380befbd0e" name="seed"><type>void</type><purpose>Throws: nothing. </purpose><description><para>Effects: Resets the quasi-random number generator state to the one given by the default construction. Equivalent to u.seed(0). </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine_1a45d5cae7b0363da036cb0a8bcb5761cd" name="seed"><type>void</type><parameter name="init"><paramtype>UIntType</paramtype></parameter><purpose>Throws: range_error. </purpose><description><para>Effects: Effectively sets the quasi-random number generator state to the <computeroutput>init</computeroutput>-th vector in the <computeroutput>s</computeroutput>-dimensional quasi-random domain, where <computeroutput>s</computeroutput> == X::dimension(). <programlisting language="c++">X u, v;
for(int i = 0; i &lt; N; ++i)
    for( std::size_t j = 0; j &lt; u.dimension(); ++j )
        u();
v.seed(N);
assert(u() == v());
</programlisting> </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine_1a8df8fbd99f62a0b63d5d2f3bd4f8ae5a" name="operator()"><type>result_type</type><description><para>Returns: Returns a successive element of an <computeroutput>s</computeroutput>-dimensional (s = X::dimension()) vector at each invocation. When all elements are exhausted, X::operator() begins anew with the starting element of a subsequent <computeroutput>s</computeroutput>-dimensional vector.</para><para>Throws: range_error. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine_1af708c083696ae18f74d0d4d8e0147887" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Effects: Advances *this state as if <computeroutput>z</computeroutput> consecutive X::operator() invocations were executed. <programlisting language="c++">X u = v;
for(int i = 0; i &lt; N; ++i)
    u();
v.discard(N);
assert(u() == v());
</programlisting></para><para>Throws: range_error. </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine_1a1aec46fdbd9ecd199e286fdef7d7ef49" name="min" specifiers="static"><type>result_type</type><description><para>Returns: Tight lower bound on the set of values returned by operator().</para><para>Throws: nothing. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine_1a4fd99203f5284fdd1aee542a1b7e74ee" name="max" specifiers="static"><type>result_type</type><description><para>Returns: Tight upper bound on the set of values returned by operator().</para><para>Throws: nothing. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine_1a3066d39bb00fc3ca0002cc0557a613ea" name="operator=="><type>bool</type><parameter name="x"><paramtype>const <classname>niederreiter_base2_engine</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const <classname>niederreiter_base2_engine</classname> &amp;</paramtype></parameter><purpose>Returns true if the two generators will produce identical sequences of outputs. </purpose></method>
<method id="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine_1ac562571ff895da5ea487ce520c869124" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>niederreiter_base2_engine</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>niederreiter_base2_engine</classname> &amp;</paramtype></parameter><purpose>Returns true if the two generators will produce different sequences of outputs. </purpose></method>
<method id="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine_1ad4baa823c79a6c16a65b409488ec362e" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="s"><paramtype>const <classname>niederreiter_base2_engine</classname> &amp;</paramtype></parameter><purpose>Writes the textual representation of the generator to a <computeroutput>std::ostream</computeroutput>. </purpose></method>
<method id="doxygen.headers.classboost_1_1random_1_1niederreiter__base2__engine_1ad653b089f57c32378dfec2d677ffc7e4" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="s"><paramtype>const <classname>niederreiter_base2_engine</classname> &amp;</paramtype></parameter><purpose>Reads the textual representation of the generator from a <computeroutput>std::istream</computeroutput>. </purpose></method>
</method-group>
</class><typedef id="doxygen.headers.niederreiter__base2_8hpp_1a3772b4064e1b25e840878144df3951b2" name="niederreiter_base2"><description><para><important><para>This specialization of  <classname alt="boost::random::niederreiter_base2_engine">niederreiter_base2_engine</classname>  supports up to 4720 dimensions.</para>
</important>
Binary irreducible polynomials (primes in the ring <computeroutput>GF(2)[X]</computeroutput>, evaluated at <computeroutput>X=2</computeroutput>) were generated while condition <computeroutput>max(prime)</computeroutput> &lt; 2<superscript>16</superscript> was satisfied.</para><para>There are exactly 4720 such primes, which yields a Niederreiter base 2 table for 4720 dimensions.</para><para>However, it is possible to provide your own table to  <classname alt="boost::random::niederreiter_base2_engine">niederreiter_base2_engine</classname>  should the default one be insufficient. </para></description><type><classname>niederreiter_base2_engine</classname>&lt; boost::uint_least64_t, 64u, default_niederreiter_base2_table &gt;</type></typedef>

</namespace>
</namespace>
</header>
<header id="doxygen.headers.non__central__chi__squared__distribution_8hpp" name="boost/random/non_central_chi_squared_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution" name="non_central_chi_squared_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The noncentral chi-squared distribution is a real valued distribution with two parameter, <computeroutput>k</computeroutput> and <computeroutput>lambda</computeroutput>. The distribution produces values &gt; 0.</para><para>This is the distribution of the sum of squares of k Normal distributed variates each with variance one and <inlineequation><alt>$\lambda$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_32.png"/></imageobject><textobject role="tex"><phrase>$\lambda$</phrase></textobject></inlinemediaobject></inlineequation> the sum of squares of the normal means.</para><para>The distribution function is <inlineequation><alt>$\displaystyle P(x) = \frac{1}{2} e^{-(x+\lambda)/2} \left( \frac{x}{\lambda} \right)^{k/4-1/2} I_{k/2-1}( \sqrt{\lambda x} )$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_33.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle P(x) = \frac{1}{2} e^{-(x+\lambda)/2} \left( \frac{x}{\lambda} \right)^{k/4-1/2} I_{k/2-1}( \sqrt{\lambda x} )$</phrase></textobject></inlinemediaobject></inlineequation>. where <inlineequation><alt>$\displaystyle I_\nu(z)$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_34.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle I_\nu(z)$</phrase></textobject></inlinemediaobject></inlineequation> is a modified Bessel function of the first kind.</para><para>The algorithm is taken from</para><para> <blockquote><para>  "Monte Carlo Methods in Financial Engineering", Paul Glasserman, 2003, XIII, 596 p, Stochastic Modelling and Applied Probability, Vol. 53, ISBN 978-0-387-21617-1, p 124, Fig. 3.5.  </para></blockquote>  </para></description><class id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1_1param__type_1a8f1d3094ed3f104ebdf8c6d099914eb3" name="distribution_type"><type><classname>non_central_chi_squared_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1_1param__type_1a2103260b26d8988cbf4a5560a567c539" specifiers="explicit"><parameter name="k"><paramtype>RealType</paramtype><default>1</default></parameter><parameter name="lambda"><paramtype>RealType</paramtype><default>1</default></parameter><description><para>Constructs the parameters of a <link linkend="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution">non_central_chi_squared_distribution</link>. <computeroutput>k</computeroutput> and <computeroutput>lambda</computeroutput> are the parameter of the distribution.</para><para>Requires: k &gt; 0 &amp;&amp; lambda &gt; 0 </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1_1param__type_1a5cc1055267d957c0b3e603b30e083cf9" name="k" cv="const"><type>RealType</type><description><para>Returns the <computeroutput>k</computeroutput> parameter of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1_1param__type_1a22281f4b7fdbce22f20376873a36832e" name="lambda" cv="const"><type>RealType</type><description><para>Returns the <computeroutput>lambda</computeroutput> parameter of the distribution </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters of the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters of the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the parameters have the same values. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the parameters have different values. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1a0450d31cf90fd8db4fe0e7d3a8597588" name="result_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1a9d2c5ade17998fea60676eb51ed313af" name="input_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1a280ff8db3119c3ec7331f129351a2e8f" specifiers="explicit"><parameter name="k"><paramtype>RealType</paramtype><default>1</default></parameter><parameter name="lambda"><paramtype>RealType</paramtype><default>1</default></parameter><description><para>Construct a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution">non_central_chi_squared_distribution</link></computeroutput> object. <computeroutput>k</computeroutput> and <computeroutput>lambda</computeroutput> are the parameter of the distribution.</para><para>Requires: k &gt; 0 &amp;&amp; lambda &gt; 0 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1a9b212448512b7e2c9e38dcf5b54191fa" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Construct a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution">non_central_chi_squared_distribution</link></computeroutput> object from the parameter. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1a373c94cd608f3828e95ccf9045b82ddb" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="eng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the non central chi squared distribution specified by <computeroutput>param</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1a209a4d730a214aa769d287619348ae4b" name="operator()"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="eng"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the non central chi squared distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1a87a9420789d6d56c61734cc54fd89180" name="k" cv="const"><type>RealType</type><description><para>Returns the <computeroutput>k</computeroutput> parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1a394027ac654aa59ac61a277efebf97df" name="lambda" cv="const"><type>RealType</type><description><para>Returns the <computeroutput>lambda</computeroutput> parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1ab5e5c33b56791305e33881226c7a117b" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1a58e5affc1c6659e22414ae0e9e64e648" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1a27aa8e5416b696476440aac2dc5997f3" name="reset"><type>void</type><description><para>Resets the distribution, so that subsequent uses does not depend on values already produced by it. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1addfdda7e45ed23f7999d5de4fb08cb9e" name="min" cv="const"><type>RealType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1a426339e6cd0a3e81ae0229f95936e18f" name="max" cv="const"><type>RealType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1a016706059c2f60eae7e7dcf1b09f9b54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="dist"><paramtype>const <classname>non_central_chi_squared_distribution</classname> &amp;</paramtype></parameter><description><para>Writes the parameters of the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1a70ba5bd91f2880f20d5f7497486550cb" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="dist"><paramtype>const <classname>non_central_chi_squared_distribution</classname> &amp;</paramtype></parameter><description><para>reads the parameters of the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1aa1e0c119e064f187c296af9d8d2be081" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>non_central_chi_squared_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>non_central_chi_squared_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if two distributions have the same parameters and produce the same sequence of random numbers given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1non__central__chi__squared__distribution_1af3556cd746f9356c9d1b64b4969388b9" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>non_central_chi_squared_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>non_central_chi_squared_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if two distributions have different parameters and/or can produce different sequences of random numbers given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.normal__distribution_8hpp" name="boost/random/normal_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1normal__distribution" name="normal_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>Instantiations of class template <link linkend="doxygen.headers.classboost_1_1random_1_1normal__distribution">normal_distribution</link> model a  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link> . Such a distribution produces random numbers <computeroutput>x</computeroutput> distributed with probability density function   <inlineequation><alt>$\displaystyle p(x) =
  \frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{(x-\mu)^2}{2\sigma^2}}
$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_35.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p(x) =
  \frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{(x-\mu)^2}{2\sigma^2}}
$</phrase></textobject></inlinemediaobject></inlineequation>, where mean and sigma are the parameters of the distribution.</para><para>The implementation uses the "ziggurat" algorithm, as described in</para><para> <blockquote><para>  "The Ziggurat Method for Generating Random Variables", George Marsaglia and Wai Wan Tsang, Journal of Statistical Software, Volume 5, Number 8 (2000), 1-7.  </para></blockquote>  </para></description><class id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1_1param__type_1add63185834d1312ac52031ba6f8fcd10" name="distribution_type"><type><classname>normal_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1_1param__type_1a386f6badcb802201a7f06c21a0dd039f" specifiers="explicit"><parameter name="mean"><paramtype>RealType</paramtype><default>0.0</default></parameter><parameter name="sigma"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1normal__distribution_1_1param__type">param_type</link></computeroutput> with a given mean and standard deviation.</para><para>Requires: sigma &gt;= 0 </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1_1param__type_1a6175acc747cfe9afcc09be4709348681" name="mean" cv="const"><type>RealType</type><description><para>Returns the mean of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1_1param__type_1a6b7d98b4d98e0e2416f7c045e278b562" name="sigma" cv="const"><type>RealType</type><description><para>Returns the standand deviation of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1normal__distribution_1_1param__type">param_type</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1normal__distribution_1_1param__type">param_type</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the same. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1ac680c9eba10038e43f5f96e6792cf59e" name="input_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1a02dada66a469a6642ee3a8840b879675" name="result_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1ae8dde95d8c3c661a9511d914f7258599" specifiers="explicit"><parameter name="mean"><paramtype>const RealType &amp;</paramtype><default>0.0</default></parameter><parameter name="sigma"><paramtype>const RealType &amp;</paramtype><default>1.0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1normal__distribution">normal_distribution</link></computeroutput> object. <computeroutput>mean</computeroutput> and <computeroutput>sigma</computeroutput> are the parameters for the distribution.</para><para>Requires: sigma &gt;= 0 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1a051c89cd7d6c1000d7b96d81e65c3671" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1normal__distribution">normal_distribution</link></computeroutput> object from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1aee3f0262971ed65bbce68443568fce10" name="mean" cv="const"><type>RealType</type><description><para>Returns the mean of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1a4a57c163b51490dd4c005c61dfda57a2" name="sigma" cv="const"><type>RealType</type><description><para>Returns the standard deviation of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1a08b6fba3199ef6c6bf86b01faa46894b" name="min" cv="const"><type>RealType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1aec5d66645418b7e07c91a53deb0ed3d1" name="max" cv="const"><type>RealType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1a6076a29538e0c6e29e29c367193f9fa3" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1a3f307a2159176350a02e16036425a60c" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1a38c5de288a53aace757338ea67d32309" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1ae0f1c88c204b7f016a7806bd27b1ab45" name="operator()"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><description><para>Returns a normal variate. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1a2674d5b983bacfb46b53338299ad2c35" name="operator()"><type>result_type</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a normal variate with parameters specified by <computeroutput>param</computeroutput>. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1a7ae8fa24c51bbd91a58864ca8f00d944" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="nd"><paramtype>const <classname>normal_distribution</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1normal__distribution">normal_distribution</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1a57e5574d0c5801d772e223aa6e8b6edf" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="nd"><paramtype>const <classname>normal_distribution</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1normal__distribution">normal_distribution</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1a988896e9670b38e564703331f18fa170" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>normal_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>normal_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1normal__distribution">normal_distribution</link></computeroutput> will return identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1normal__distribution_1a364d9639aa2fbba730cb19a3d419bda4" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>normal_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>normal_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1normal__distribution">normal_distribution</link></computeroutput> will return different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.piecewise__constant__distribution_8hpp" name="boost/random/piecewise_constant_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution" name="piecewise_constant_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
      <template-type-parameter name="WeightType"><default>double</default></template-type-parameter>
    </template><description><para>The class <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution">piecewise_constant_distribution</link></computeroutput> models a  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link> . </para></description><class id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type_1a2a3065fc0346e37b2b48f748e409ff7b" name="distribution_type"><type><classname>piecewise_constant_distribution</classname></type></typedef>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the same. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are different. </para></description></method>
</method-group>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type_1a7f85fafd7eb31e9fe8d1fbd81c4461df"><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type">param_type</link></computeroutput> object, representing a distribution that produces values uniformly distributed in the range [0, 1). </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type_1aff82023c551dd23a00593f024ed83fd3"><template>
          <template-type-parameter name="IntervalIter"/>
          <template-type-parameter name="WeightIter"/>
        </template><parameter name="intervals_first"><paramtype>IntervalIter</paramtype></parameter><parameter name="intervals_last"><paramtype>IntervalIter</paramtype></parameter><parameter name="weight_first"><paramtype>WeightIter</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type">param_type</link></computeroutput> object from two iterator ranges containing the interval boundaries and the interval weights. If there are less than two boundaries, then this is equivalent to the default constructor and creates a single interval, [0, 1).</para><para>The values of the interval boundaries must be strictly increasing, and the number of weights must be one less than the number of interval boundaries. If there are extra weights, they are ignored. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type_1acbe3ff34f267e57b9cdce8abddf12fd3"><template>
          <template-type-parameter name="T"/>
          <template-type-parameter name="F"/>
        </template><parameter name="il"><paramtype>const std::initializer_list&lt; T &gt; &amp;</paramtype></parameter><parameter name="f"><paramtype>F</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type">param_type</link></computeroutput> object from an initializer_list containing the interval boundaries and a unary function specifying the weights. Each weight is determined by calling the function at the midpoint of the corresponding interval.</para><para>If the initializer_list contains less than two elements, this is equivalent to the default constructor and the distribution will produce values uniformly distributed in the range [0, 1). </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type_1a41e91efa9a22a61f97f186340aa3d626"><template>
          <template-type-parameter name="IntervalRange"/>
          <template-type-parameter name="WeightRange"/>
        </template><parameter name="intervals_arg"><paramtype>const IntervalRange &amp;</paramtype></parameter><parameter name="weights_arg"><paramtype>const WeightRange &amp;</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type">param_type</link></computeroutput> object from Boost.Range ranges holding the interval boundaries and the weights. If there are less than two interval boundaries, this is equivalent to the default constructor and the distribution will produce values uniformly distributed in the range [0, 1). The number of weights must be one less than the number of interval boundaries. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type_1adefe4ad99ec78042dfe301a7e9fe821e"><template>
          <template-type-parameter name="F"/>
        </template><parameter name="nw"><paramtype>std::size_t</paramtype></parameter><parameter name="xmin"><paramtype>RealType</paramtype></parameter><parameter name="xmax"><paramtype>RealType</paramtype></parameter><parameter name="f"><paramtype>F</paramtype></parameter><description><para>Constructs the parameters for a distribution that approximates a function. The range of the distribution is [xmin, xmax). This range is divided into nw equally sized intervals and the weights are found by calling the unary function f on the midpoints of the intervals. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type_1ad3f17f5c5ffb0725c494a453e840b5c3" name="intervals" cv="const"><type>std::vector&lt; RealType &gt;</type><description><para>Returns a vector containing the interval boundaries. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1_1param__type_1a17d55affa383872ad7ad0f32245d8f27" name="densities" cv="const"><type>std::vector&lt; RealType &gt;</type><description><para>Returns a vector containing the probability densities over all the intervals of the distribution. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1aa6069a8e601ceb503312c5d7d628e7e8" name="input_type"><type>std::size_t</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1a6f988323eda87a4e3f064bd06d748424" name="result_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1a76797fda1e5f8ae0f6f833e542a42f71"><description><para>Creates a new <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution">piecewise_constant_distribution</link></computeroutput> with a single interval, [0, 1). </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1acce63ef0ad9d3e70e7e36148990341f5"><template>
          <template-type-parameter name="IntervalIter"/>
          <template-type-parameter name="WeightIter"/>
        </template><parameter name="first_interval"><paramtype>IntervalIter</paramtype></parameter><parameter name="last_interval"><paramtype>IntervalIter</paramtype></parameter><parameter name="first_weight"><paramtype>WeightIter</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution">piecewise_constant_distribution</link> from two iterator ranges containing the interval boundaries and the interval weights. If there are less than two boundaries, then this is equivalent to the default constructor and creates a single interval, [0, 1).</para><para>The values of the interval boundaries must be strictly increasing, and the number of weights must be one less than the number of interval boundaries. If there are extra weights, they are ignored.</para><para>For example,</para><para><programlisting language="c++">double <link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1aedb2f7d9b85b28881b0b2113bd61de6b">intervals</link>[] = { 0.0, 1.0, 4.0 };
double weights[] = { 1.0, 1.0 };
<link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1a76797fda1e5f8ae0f6f833e542a42f71">piecewise_constant_distribution&lt;&gt;</link> dist(
    &amp;<link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1aedb2f7d9b85b28881b0b2113bd61de6b">intervals</link>[0], &amp;<link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1aedb2f7d9b85b28881b0b2113bd61de6b">intervals</link>[0] + 3, &amp;weights[0]);
</programlisting></para><para>The distribution has a 50% chance of producing a value between 0 and 1 and a 50% chance of producing a value between 1 and 4. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1abd80a326c224151118e703771a1c4ade"><template>
          <template-type-parameter name="T"/>
          <template-type-parameter name="F"/>
        </template><parameter name="il"><paramtype>std::initializer_list&lt; T &gt;</paramtype></parameter><parameter name="f"><paramtype>F</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution">piecewise_constant_distribution</link> from an initializer_list containing the interval boundaries and a unary function specifying the weights. Each weight is determined by calling the function at the midpoint of the corresponding interval.</para><para>If the initializer_list contains less than two elements, this is equivalent to the default constructor and the distribution will produce values uniformly distributed in the range [0, 1). </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1a396e85c8b1a4887ff778c9818ec8a142"><template>
          <template-type-parameter name="IntervalsRange"/>
          <template-type-parameter name="WeightsRange"/>
        </template><parameter name="intervals_arg"><paramtype>const IntervalsRange &amp;</paramtype></parameter><parameter name="weights_arg"><paramtype>const WeightsRange &amp;</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution">piecewise_constant_distribution</link> from Boost.Range ranges holding the interval boundaries and the weights. If there are less than two interval boundaries, this is equivalent to the default constructor and the distribution will produce values uniformly distributed in the range [0, 1). The number of weights must be one less than the number of interval boundaries. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1a2826da578a5c21fcda4fc1be1303ed93"><template>
          <template-type-parameter name="F"/>
        </template><parameter name="nw"><paramtype>std::size_t</paramtype></parameter><parameter name="xmin"><paramtype>RealType</paramtype></parameter><parameter name="xmax"><paramtype>RealType</paramtype></parameter><parameter name="f"><paramtype>F</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution">piecewise_constant_distribution</link> that approximates a function. The range of the distribution is [xmin, xmax). This range is divided into nw equally sized intervals and the weights are found by calling the unary function f on the midpoints of the intervals. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1aab344568fae8eef4ffe93a9892fa8b74" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution">piecewise_constant_distribution</link> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1a7866a8906328f58ad9d91db670574992" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a value distributed according to the parameters of the piecewist_constant_distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1a319c979ad3d33667693e16aa4577533d" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a value distributed according to the parameters specified by param. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1afb8bb114a4a3954e91fc5f5508836ee1" name="min" cv="const"><type>result_type</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1a1b4d07ae4cf3bde85c32676115f6e9d3" name="max" cv="const"><type>result_type</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1a1b462b2f1dbfc7b17b4689ecdfc87297" name="densities" cv="const"><type>std::vector&lt; RealType &gt;</type><description><para>Returns a vector containing the probability density over each interval. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1aedb2f7d9b85b28881b0b2113bd61de6b" name="intervals" cv="const"><type>std::vector&lt; RealType &gt;</type><description><para>Returns a vector containing the interval boundaries. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1abb6676dc506091682ebd9e9e7ea95322" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1a72b9cab43180898bee4df0423a5a7d0f" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1a5a327e5c63a2a6b47ce02b59a6b4ff49" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1a3789e8b3c98404bbf0c2d3dc1feb4824" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="pcd"><paramtype>const <classname>piecewise_constant_distribution</classname> &amp;</paramtype></parameter><description><para>Writes a distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1a4da5522051781602c861a47f38703072" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="pcd"><paramtype>const <classname>piecewise_constant_distribution</classname> &amp;</paramtype></parameter><description><para>Reads a distribution from a <computeroutput>std::istream</computeroutput> </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1a7f18e4078bb511b715fcadfcbbb1e2bd" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>piecewise_constant_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>piecewise_constant_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will return the same sequence of values, when passed equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__constant__distribution_1a0f1c705c06016aeb3211c717d2a21dea" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>piecewise_constant_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>piecewise_constant_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions may return different sequences of values, when passed equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.piecewise__linear__distribution_8hpp" name="boost/random/piecewise_linear_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution" name="piecewise_linear_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The class <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution">piecewise_linear_distribution</link></computeroutput> models a  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link> . </para></description><class id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type_1ad70d39e5c51750adb43f4243d189346c" name="distribution_type"><type><classname>piecewise_linear_distribution</classname></type></typedef>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the same. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are different. </para></description></method>
</method-group>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type_1a385b662953363197cb367a76ff4319f0"><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type">param_type</link></computeroutput> object, representing a distribution that produces values uniformly distributed in the range [0, 1). </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type_1a6fa4489df03f4455331512a4175eae27"><template>
          <template-type-parameter name="IntervalIter"/>
          <template-type-parameter name="WeightIter"/>
        </template><parameter name="intervals_first"><paramtype>IntervalIter</paramtype></parameter><parameter name="intervals_last"><paramtype>IntervalIter</paramtype></parameter><parameter name="weight_first"><paramtype>WeightIter</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type">param_type</link></computeroutput> object from two iterator ranges containing the interval boundaries and weights at the boundaries. If there are fewer than two boundaries, then this is equivalent to the default constructor and the distribution will produce values uniformly distributed in the range [0, 1).</para><para>The values of the interval boundaries must be strictly increasing, and the number of weights must be the same as the number of interval boundaries. If there are extra weights, they are ignored. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type_1ac217620c8402c723584fbba512352590"><template>
          <template-type-parameter name="T"/>
          <template-type-parameter name="F"/>
        </template><parameter name="il"><paramtype>const std::initializer_list&lt; T &gt; &amp;</paramtype></parameter><parameter name="f"><paramtype>F</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type">param_type</link></computeroutput> object from an initializer_list containing the interval boundaries and a unary function specifying the weights at the boundaries. Each weight is determined by calling the function at the corresponding point.</para><para>If the initializer_list contains fewer than two elements, this is equivalent to the default constructor and the distribution will produce values uniformly distributed in the range [0, 1). </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type_1a19a927f92b56eb9c2ff424dc5cef0cf1"><template>
          <template-type-parameter name="IntervalRange"/>
          <template-type-parameter name="WeightRange"/>
        </template><parameter name="intervals_arg"><paramtype>const IntervalRange &amp;</paramtype></parameter><parameter name="weights_arg"><paramtype>const WeightRange &amp;</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type">param_type</link></computeroutput> object from Boost.Range ranges holding the interval boundaries and the weights at the boundaries. If there are fewer than two interval boundaries, this is equivalent to the default constructor and the distribution will produce values uniformly distributed in the range [0, 1). The number of weights must be equal to the number of interval boundaries. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type_1a8613459ad33682256ff73777c477810d"><template>
          <template-type-parameter name="F"/>
        </template><parameter name="nw"><paramtype>std::size_t</paramtype></parameter><parameter name="xmin"><paramtype>RealType</paramtype></parameter><parameter name="xmax"><paramtype>RealType</paramtype></parameter><parameter name="f"><paramtype>F</paramtype></parameter><description><para>Constructs the parameters for a distribution that approximates a function. The range of the distribution is [xmin, xmax). This range is divided into nw equally sized intervals and the weights are found by calling the unary function f on the boundaries of the intervals. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type_1a142ade0a481868d2cf96a30cdec02992" name="intervals" cv="const"><type>std::vector&lt; RealType &gt;</type><description><para>Returns a vector containing the interval boundaries. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1_1param__type_1a9ba88d98a740c5070c6aa9bb92a7ba28" name="densities" cv="const"><type>std::vector&lt; RealType &gt;</type><description><para>Returns a vector containing the probability densities at all the interval boundaries. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1aebf08931c3b597d045a3675a138f250d" name="input_type"><type>std::size_t</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1aba8eef1de12173238fbfa5f3a7629c5d" name="result_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a5f3854fd20b766ed9e6f2b9e693d0278"><description><para>Creates a new <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution">piecewise_linear_distribution</link></computeroutput> that produces values uniformly distributed in the range [0, 1). </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1af722449823ad30ec26991580847a97c2"><template>
          <template-type-parameter name="IntervalIter"/>
          <template-type-parameter name="WeightIter"/>
        </template><parameter name="first_interval"><paramtype>IntervalIter</paramtype></parameter><parameter name="last_interval"><paramtype>IntervalIter</paramtype></parameter><parameter name="first_weight"><paramtype>WeightIter</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution">piecewise_linear_distribution</link> from two iterator ranges containing the interval boundaries and the weights at the boundaries. If there are fewer than two boundaries, then this is equivalent to the default constructor and creates a distribution that produces values uniformly distributed in the range [0, 1).</para><para>The values of the interval boundaries must be strictly increasing, and the number of weights must be equal to the number of interval boundaries. If there are extra weights, they are ignored.</para><para>For example,</para><para><programlisting language="c++">double <link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a0bf9d9204ea884e3c74a96bd5a2a3a00">intervals</link>[] = { 0.0, 1.0, 2.0 };
double weights[] = { 0.0, 1.0, 0.0 };
piecewise_constant_distribution&lt;&gt; dist(
    &amp;<link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a0bf9d9204ea884e3c74a96bd5a2a3a00">intervals</link>[0], &amp;<link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a0bf9d9204ea884e3c74a96bd5a2a3a00">intervals</link>[0] + 3, &amp;weights[0]);
</programlisting></para><para>produces a triangle distribution. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1af89a2f89fde0b4160c2a77cc19fea2bb"><template>
          <template-type-parameter name="T"/>
          <template-type-parameter name="F"/>
        </template><parameter name="il"><paramtype>std::initializer_list&lt; T &gt;</paramtype></parameter><parameter name="f"><paramtype>F</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution">piecewise_linear_distribution</link> from an initializer_list containing the interval boundaries and a unary function specifying the weights. Each weight is determined by calling the function at the corresponding interval boundary.</para><para>If the initializer_list contains fewer than two elements, this is equivalent to the default constructor and the distribution will produce values uniformly distributed in the range [0, 1). </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a8726942c9aabebf667d712daf2f7ae45"><template>
          <template-type-parameter name="IntervalsRange"/>
          <template-type-parameter name="WeightsRange"/>
        </template><parameter name="intervals_arg"><paramtype>const IntervalsRange &amp;</paramtype></parameter><parameter name="weights_arg"><paramtype>const WeightsRange &amp;</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution">piecewise_linear_distribution</link> from Boost.Range ranges holding the interval boundaries and the weights. If there are fewer than two interval boundaries, this is equivalent to the default constructor and the distribution will produce values uniformly distributed in the range [0, 1). The number of weights must be equal to the number of interval boundaries. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a8799381f4f79c65d2952623807436c0a"><template>
          <template-type-parameter name="F"/>
        </template><parameter name="nw"><paramtype>std::size_t</paramtype></parameter><parameter name="xmin"><paramtype>RealType</paramtype></parameter><parameter name="xmax"><paramtype>RealType</paramtype></parameter><parameter name="f"><paramtype>F</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution">piecewise_linear_distribution</link> that approximates a function. The range of the distribution is [xmin, xmax). This range is divided into nw equally sized intervals and the weights are found by calling the unary function f on the interval boundaries. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1ab5a30c6052bc6db8275693428665209f" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution">piecewise_linear_distribution</link> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1aa0c2ae1326a45141afc53a179e2fe98d" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a value distributed according to the parameters of the <link linkend="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution">piecewise_linear_distribution</link>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a1c66980cd4a0aeb88444a0f585be49a6" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a value distributed according to the parameters specified by param. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a3f5e9823b680bbb47892f9bfd3224060" name="min" cv="const"><type>result_type</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a44307d69515101818cad7c71cac74b25" name="max" cv="const"><type>result_type</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a421dd15f5f6a8f92b0d0df03bc2f0477" name="densities" cv="const"><type>std::vector&lt; RealType &gt;</type><description><para>Returns a vector containing the probability densities at the interval boundaries. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a0bf9d9204ea884e3c74a96bd5a2a3a00" name="intervals" cv="const"><type>std::vector&lt; RealType &gt;</type><description><para>Returns a vector containing the interval boundaries. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a924c2519f7a10c6530cd8efd1c14007f" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a2a82a1976136debf19a3963fdeabdbec" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a6926c2edcfce4d218b15f6b94eee5b94" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a9b806e7def3f687685b6d4175ce1f43d" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="pld"><paramtype>const <classname>piecewise_linear_distribution</classname> &amp;</paramtype></parameter><description><para>Writes a distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a81edc57443b46d3eb6631acd9de76c75" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="pld"><paramtype>const <classname>piecewise_linear_distribution</classname> &amp;</paramtype></parameter><description><para>Reads a distribution from a <computeroutput>std::istream</computeroutput> </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1aeb493d840ff6b17a9e6ef65abf29b127" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>piecewise_linear_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>piecewise_linear_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will return the same sequence of values, when passed equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1piecewise__linear__distribution_1a2e64d2b14939c4c20ad900bf42d1080c" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>piecewise_linear_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>piecewise_linear_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions may return different sequences of values, when passed equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.poisson__distribution_8hpp" name="boost/random/poisson_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1poisson__distribution" name="poisson_distribution"><template>
      <template-type-parameter name="IntType"><default>int</default></template-type-parameter>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>An instantiation of the class template <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1poisson__distribution">poisson_distribution</link></computeroutput> is a model of  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link> . The poisson distribution has <inlineequation><alt>$p(i) = \frac{e^{-\lambda}\lambda^i}{i!}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_36.png"/></imageobject><textobject role="tex"><phrase>$p(i) = \frac{e^{-\lambda}\lambda^i}{i!}$</phrase></textobject></inlinemediaobject></inlineequation></para><para>This implementation is based on the PTRD algorithm described</para><para> <blockquote><para>  "The transformed rejection method for generating Poisson random variables", Wolfgang Hormann, Insurance: Mathematics and Economics Volume 12, Issue 1, February 1993, Pages 39-45  </para></blockquote>  </para></description><class id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1_1param__type_1aa8a46b0e9a9f8dc470341baf62494c07" name="distribution_type"><type><classname>poisson_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1_1param__type_1a328be17fdcc2d77492ea81e131025637" specifiers="explicit"><parameter name="mean"><paramtype>RealType</paramtype><default>1</default></parameter><description><para>Construct a <link linkend="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1_1param__type">param_type</link> object with the parameter "mean"</para><para>Requires: mean &gt; 0 </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1_1param__type_1a05b7404c92986f3b4aa475f7e57d6002" name="mean" cv="const"><type>RealType</type></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters of the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1_1param__type_1a95ac9818d02462ff9019342dd2f057c8" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype><classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters of the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the parameters have the same values. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the parameters have different values. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1a658f97c720373d7e8d9bb4391e5f0023" name="result_type"><type>IntType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1a94ef75163c0631757dec05f7ffbf0911" name="input_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1a487d1926795947e6f282ad6daf5b8dd6" specifiers="explicit"><parameter name="mean"><paramtype>RealType</paramtype><default>1</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1poisson__distribution">poisson_distribution</link></computeroutput> with the parameter <computeroutput>mean</computeroutput>.</para><para>Requires: mean &gt; 0 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1a1cec8a2376e238839c0079cb2a83a187" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Construct an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1poisson__distribution">poisson_distribution</link></computeroutput> object from the parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1af66f4991bb65202e88e49a817cad2c85" name="operator()" cv="const"><type>IntType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the poisson distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1a144c10747a7d86317cab89a267cec05d" name="operator()" cv="const"><type>IntType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the poisson distribution with parameters specified by param. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1ac2b1450600ad7cca8452050b6e499c94" name="mean" cv="const"><type>RealType</type><description><para>Returns the "mean" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1a7d87b125c34289e99bca12e676139141" name="min" cv="const"><type>IntType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1ae80d605abdc5d6ca13cc07e99f0c394e" name="max" cv="const"><type>IntType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1a69ca3c31283a777b48d654f7852dcbc7" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1ad6b293091d197069bffcef0def9934a5" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1a8598e7d442dc88997d60cb808ca5aa11" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1a7ff9ca74a3bdc8253d210b04669f79f4" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="pd"><paramtype>const <classname>poisson_distribution</classname> &amp;</paramtype></parameter><description><para>Writes the parameters of the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1adc098c22a36620f08cb5e1af9cb1cf4e" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="pd"><paramtype><classname>poisson_distribution</classname> &amp;</paramtype></parameter><description><para>Reads the parameters of the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1a39213acd8b23b961c97addf3eb9c5bc6" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>poisson_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>poisson_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will produce the same sequence of values, given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1poisson__distribution_1a5c512acc1b0c2eb9e813d0409e7c78c6" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>poisson_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>poisson_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions could produce different sequences of values, given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.random__device_8hpp" name="boost/random/random_device.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1random__device" name="random_device"><inherit access="private">noncopyable</inherit><description><para>Class  <classname alt="boost::random::random_device">random_device</classname> models a  <link linkend="boost_random.reference.concepts.non_deterministic_uniform_random_number_generator">non-deterministic random number generator</link> . It uses one or more implementation-defined stochastic processes to generate a sequence of uniformly distributed non-deterministic random numbers. For those environments where a non-deterministic random number generator is not available, class <link linkend="doxygen.headers.classboost_1_1random_1_1random__device">random_device</link> must not be implemented. See</para><para> <blockquote><para>  "Randomness Recommendations for Security", D. Eastlake, S. Crocker, J. Schiller, Network Working Group, RFC 1750, December 1994  </para></blockquote> </para><para>for further discussions.</para><para> <note><para>  Some operating systems abstract the computer hardware enough to make it difficult to non-intrusively monitor stochastic processes. However, several do provide a special device for exactly this purpose. It seems to be impossible to emulate the functionality using Standard C++ only, so users should be aware that this class may not be available on all platforms.  </para></note> </para><para><emphasis role="bold">Implementation Note for Linux</emphasis></para><para>On the Linux operating system, token is interpreted as a filesystem path. It is assumed that this path denotes an operating system pseudo-device which generates a stream of non-deterministic random numbers. The pseudo-device should never signal an error or end-of-file. Otherwise, <computeroutput>std::ios_base::failure</computeroutput> is thrown. By default,  <classname alt="boost::random::random_device">random_device</classname> uses the /dev/urandom pseudo-device to retrieve the random numbers. Another option would be to specify the /dev/random pseudo-device, which blocks on reads if the entropy pool has no more random bits available.</para><para><emphasis role="bold">Implementation Note for Windows</emphasis></para><para>On the Windows operating system, token is interpreted as the name of a cryptographic service provider. By default  <classname alt="boost::random::random_device">random_device</classname> uses MS_DEF_PROV.</para><para><emphasis role="bold">Performance</emphasis></para><para>The test program <ulink url="../../libs/random/performance/nondet_random_speed.cpp">nondet_random_speed.cpp</ulink> measures the execution times of the <link linkend="doxygen.headers.random__device_8hpp_source">random_device.hpp</link> implementation of the above algorithms in a tight loop. The performance has been evaluated on an Intel(R) Core(TM) i7 CPU Q 840 @ 1.87GHz, 1867 Mhz with Visual C++ 2010, Microsoft Windows 7 Professional and with gcc 4.4.5, Ubuntu Linux 2.6.35-25-generic.</para><para><informaltable><tgroup cols="2"><tbody><row>
<entry><emphasis role="bold">Platform</emphasis></entry><entry><emphasis role="bold">time per invocation [microseconds] </emphasis></entry></row>
<row>
<entry>Windows </entry><entry>2.9 </entry></row>
<row>
<entry>Linux </entry><entry>1.7 </entry></row>
</tbody></tgroup></informaltable>
</para><para>The measurement error is estimated at +/- 1 usec. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1random__device_1abb659bba858a76c54aaf2a57fb1ddd30" name="result_type"><type>unsigned int</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1random__device_1a27bda859ca4b05f596a6d4f56224e021" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1random__device_1a17f637ce9a807f342978802ac7e0afd7" name="min" specifiers="static"><type>result_type</type><description><para>Returns the smallest value that the  <classname alt="boost::random::random_device">random_device</classname> can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1random__device_1a3760c3f8c0d9fd9e661656eff5ca72d7" name="max" specifiers="static"><type>result_type</type><description><para>Returns the largest value that the  <classname alt="boost::random::random_device">random_device</classname> can produce. </para></description></method>
</method-group>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1random__device_1ae40e31cc9446fbbecc7d63918dfa493c"><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1random__device">random_device</link></computeroutput>, optionally using the default device. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1random__device_1a54dd4c399a3cba50b3784c3fa0e9bf00" specifiers="explicit"><parameter name="token"><paramtype>const std::string &amp;</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1random__device">random_device</link></computeroutput>, optionally using the given token as an access specification (for example, a URL) to some implementation-defined service for monitoring a stochastic process. </para></description></constructor>
<destructor id="doxygen.headers.classboost_1_1random_1_1random__device_1acfa2ebfa987dab8e3eccb7034a5084fb"/>
<method id="doxygen.headers.classboost_1_1random_1_1random__device_1aac30aed524c1d2958b900f4cbcdca6fc" name="entropy" cv="const"><type>double</type><description><para>Returns: An entropy estimate for the random numbers returned by operator(), in the range <link linkend="doxygen.headers.classboost_1_1random_1_1random__device_1a17f637ce9a807f342978802ac7e0afd7">min()</link> to log2( <link linkend="doxygen.headers.classboost_1_1random_1_1random__device_1a3760c3f8c0d9fd9e661656eff5ca72d7">max()</link>+1). A deterministic random number generator (e.g. a pseudo-random number engine) has entropy 0.</para><para>Throws: Nothing. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1random__device_1aa45152ed89b4924b07ec09f6d595cb5e" name="operator()"><type>unsigned int</type><description><para>Returns a random value in the range [min, max]. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1random__device_1a724affff2feee3aa7adf56ddc1336589" name="generate"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="begin"><paramtype>Iter</paramtype></parameter><parameter name="end"><paramtype>Iter</paramtype></parameter><description><para>Fills a range with random 32-bit values. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.random__number__generator_8hpp" name="boost/random/random_number_generator.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1random__number__generator" name="random_number_generator"><template>
      <template-type-parameter name="URNG"/>
      <template-type-parameter name="IntType"><default>long</default></template-type-parameter>
    </template><description><para>Instantiations of class template <link linkend="doxygen.headers.classboost_1_1random_1_1random__number__generator">random_number_generator</link> model a RandomNumberGenerator (std:25.2.11 [lib.alg.random.shuffle]). On each invocation, it returns a uniformly distributed integer in the range [0..n).</para><para>The template parameter IntType shall denote some integer-like value type. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1random__number__generator_1ad18b3c2295e8003c507c2d002bad4689" name="base_type"><type>URNG</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1random__number__generator_1ae34b75bd2d34c83746deb3e70ee23e08" name="argument_type"><type>IntType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1random__number__generator_1a3c7d70e5be14e07d7f7042785b6f4bc0" name="result_type"><type>IntType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1random__number__generator_1ab5dfb5482830b949dc9ce0371d754747"><parameter name="rng"><paramtype>base_type &amp;</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1random__number__generator">random_number_generator</link> functor with the given  <link linkend="boost_random.reference.concepts.uniform_random_number_generator">uniform random number generator</link>  as the underlying source of random numbers. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1random__number__generator_1a6fcb991000ded175d566a0ccb171f7ed" name="operator()"><type>result_type</type><parameter name="n"><paramtype>argument_type</paramtype></parameter><description><para>Returns a value in the range [0, n) </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.ranlux_8hpp" name="boost/random/ranlux.hpp">
<namespace name="boost">
<namespace name="random">
<typedef id="doxygen.headers.ranlux_8hpp_1a2c9e260e53338d477d03d548117246e1" name="ranlux_base"><type><classname>subtract_with_carry_engine</classname>&lt; uint32_t, 24, 10, 24 &gt;</type></typedef>
<typedef id="doxygen.headers.ranlux_8hpp_1ac9c61777ad758f0d214f2d724bd7c8cd" name="ranlux_base_01"><type><classname>subtract_with_carry_01_engine</classname>&lt; float, 24, 10, 24 &gt;</type></typedef>
<typedef id="doxygen.headers.ranlux_8hpp_1a0577b8811d84912a4c6970b112ee2f01" name="ranlux64_base_01"><type><classname>subtract_with_carry_01_engine</classname>&lt; double, 48, 10, 24 &gt;</type></typedef>
<typedef id="doxygen.headers.ranlux_8hpp_1a87f29fa68674b423a9ce05df92c9c20c" name="ranlux3"><description><para>The ranlux family of generators are described in</para><para> <blockquote><para>  "A portable high-quality random number generator for lattice field theory
 calculations", M. Luescher, Computer Physics Communications, 79 (1994) pp 100-110.  </para></blockquote> </para><para>The levels are given in</para><para> <blockquote><para>  "RANLUX: A Fortran implementation of the high-quality
 pseudorandom number generator of Luescher", F. James, Computer Physics Communications 79 (1994) 111-114  </para></blockquote>     </para></description><type><classname>discard_block_engine</classname>&lt; <classname>ranlux_base</classname>, 223, 24 &gt;</type></typedef>
<typedef id="doxygen.headers.ranlux_8hpp_1af5bf2ff89414f1088a9c6e3306219311" name="ranlux4"><description><para>The ranlux family of generators are described in</para><para> <blockquote><para>  "A portable high-quality random number generator for lattice field theory
 calculations", M. Luescher, Computer Physics Communications, 79 (1994) pp 100-110.  </para></blockquote> </para><para>The levels are given in</para><para> <blockquote><para>  "RANLUX: A Fortran implementation of the high-quality
 pseudorandom number generator of Luescher", F. James, Computer Physics Communications 79 (1994) 111-114  </para></blockquote>     </para></description><type><classname>discard_block_engine</classname>&lt; <classname>ranlux_base</classname>, 389, 24 &gt;</type></typedef>
<typedef id="doxygen.headers.ranlux_8hpp_1a602f4137a9fe7a43e6ef0528fbbad3e0" name="ranlux3_01"><description><para>The ranlux family of generators are described in</para><para> <blockquote><para>  "A portable high-quality random number generator for lattice field theory
 calculations", M. Luescher, Computer Physics Communications, 79 (1994) pp 100-110.  </para></blockquote> </para><para>The levels are given in</para><para> <blockquote><para>  "RANLUX: A Fortran implementation of the high-quality
 pseudorandom number generator of Luescher", F. James, Computer Physics Communications 79 (1994) 111-114  </para></blockquote>     </para></description><type><classname>discard_block_engine</classname>&lt; <classname>ranlux_base_01</classname>, 223, 24 &gt;</type></typedef>
<typedef id="doxygen.headers.ranlux_8hpp_1ae3a69861b0a8725b27c3c6f2f09ee723" name="ranlux4_01"><description><para>The ranlux family of generators are described in</para><para> <blockquote><para>  "A portable high-quality random number generator for lattice field theory
 calculations", M. Luescher, Computer Physics Communications, 79 (1994) pp 100-110.  </para></blockquote> </para><para>The levels are given in</para><para> <blockquote><para>  "RANLUX: A Fortran implementation of the high-quality
 pseudorandom number generator of Luescher", F. James, Computer Physics Communications 79 (1994) 111-114  </para></blockquote>     </para></description><type><classname>discard_block_engine</classname>&lt; <classname>ranlux_base_01</classname>, 389, 24 &gt;</type></typedef>
<typedef id="doxygen.headers.ranlux_8hpp_1a890de1b9a477ef339a47299ecfe084ae" name="ranlux64_3_01"><description><para>The ranlux family of generators are described in</para><para> <blockquote><para>  "A portable high-quality random number generator for lattice field theory
 calculations", M. Luescher, Computer Physics Communications, 79 (1994) pp 100-110.  </para></blockquote> </para><para>The levels are given in</para><para> <blockquote><para>  "RANLUX: A Fortran implementation of the high-quality
 pseudorandom number generator of Luescher", F. James, Computer Physics Communications 79 (1994) 111-114  </para></blockquote>     </para></description><type><classname>discard_block_engine</classname>&lt; <classname>ranlux64_base_01</classname>, 223, 24 &gt;</type></typedef>
<typedef id="doxygen.headers.ranlux_8hpp_1ade866cea457458743800c8ca9f559f93" name="ranlux64_4_01"><description><para>The ranlux family of generators are described in</para><para> <blockquote><para>  "A portable high-quality random number generator for lattice field theory
 calculations", M. Luescher, Computer Physics Communications, 79 (1994) pp 100-110.  </para></blockquote> </para><para>The levels are given in</para><para> <blockquote><para>  "RANLUX: A Fortran implementation of the high-quality
 pseudorandom number generator of Luescher", F. James, Computer Physics Communications 79 (1994) 111-114  </para></blockquote>     </para></description><type><classname>discard_block_engine</classname>&lt; <classname>ranlux64_base_01</classname>, 389, 24 &gt;</type></typedef>
<typedef id="doxygen.headers.ranlux_8hpp_1ab61f730cf0d60d8a624825868159af17" name="ranlux64_base"><type><classname>subtract_with_carry_engine</classname>&lt; uint64_t, 48, 10, 24 &gt;</type></typedef>
<typedef id="doxygen.headers.ranlux_8hpp_1a1c822c80254716b260aa63b9f6ea84ee" name="ranlux64_3"><description><para>The ranlux family of generators are described in</para><para> <blockquote><para>  "A portable high-quality random number generator for lattice field theory
 calculations", M. Luescher, Computer Physics Communications, 79 (1994) pp 100-110.  </para></blockquote> </para><para>The levels are given in</para><para> <blockquote><para>  "RANLUX: A Fortran implementation of the high-quality
 pseudorandom number generator of Luescher", F. James, Computer Physics Communications 79 (1994) 111-114  </para></blockquote>     </para></description><type><classname>discard_block_engine</classname>&lt; <classname>ranlux64_base</classname>, 223, 24 &gt;</type></typedef>
<typedef id="doxygen.headers.ranlux_8hpp_1abbbf73f032d8bf9ea7f2b1048c6770b0" name="ranlux64_4"><description><para>The ranlux family of generators are described in</para><para> <blockquote><para>  "A portable high-quality random number generator for lattice field theory
 calculations", M. Luescher, Computer Physics Communications, 79 (1994) pp 100-110.  </para></blockquote> </para><para>The levels are given in</para><para> <blockquote><para>  "RANLUX: A Fortran implementation of the high-quality
 pseudorandom number generator of Luescher", F. James, Computer Physics Communications 79 (1994) 111-114  </para></blockquote>     </para></description><type><classname>discard_block_engine</classname>&lt; <classname>ranlux64_base</classname>, 389, 24 &gt;</type></typedef>
<typedef id="doxygen.headers.ranlux_8hpp_1addb5a0c141452dcce3a2cd6132b46b5d" name="ranlux24_base"><type><classname>subtract_with_carry_engine</classname>&lt; uint32_t, 24, 10, 24 &gt;</type></typedef>
<typedef id="doxygen.headers.ranlux_8hpp_1a56deaf6c392f77547b993c6591bb0bd2" name="ranlux48_base"><type><classname>subtract_with_carry_engine</classname>&lt; uint64_t, 48, 5, 12 &gt;</type></typedef>
<typedef id="doxygen.headers.ranlux_8hpp_1a9bfef468a89c0dc782dd361d8bf7cd30" name="ranlux24"><type><classname>discard_block_engine</classname>&lt; <classname>ranlux24_base</classname>, 223, 23 &gt;</type></typedef>
<typedef id="doxygen.headers.ranlux_8hpp_1a721855bf6f364d0c4078ae47d46f83b6" name="ranlux48"><type><classname>discard_block_engine</classname>&lt; <classname>ranlux48_base</classname>, 389, 11 &gt;</type></typedef>

</namespace>
</namespace>
</header>
<header id="doxygen.headers.seed__seq_8hpp" name="boost/random/seed_seq.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1seed__seq" name="seed_seq"><description><para>The class <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1seed__seq">seed_seq</link></computeroutput> stores a sequence of 32-bit words for seeding a  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link> . These words will be combined to fill the entire state of the generator. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1seed__seq_1a0619408f671cad4a3f880270c894ab87" name="result_type"><type>boost::uint_least32_t</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1seed__seq_1a85db7bcd6180ec1cd4b7a18b3746ca8d"><description><para>Initializes a <link linkend="doxygen.headers.classboost_1_1random_1_1seed__seq">seed_seq</link> to hold an empty sequence. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1seed__seq_1a0282650ee6ecaeaae9edf5798dae4925"><template>
          <template-type-parameter name="T"/>
        </template><parameter name="il"><paramtype>const std::initializer_list&lt; T &gt; &amp;</paramtype></parameter><description><para>Initializes the sequence from an initializer_list. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1seed__seq_1a035e44acdd4a69ec9509ae89bcde1714"><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Initializes the sequence from an iterator range. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1seed__seq_1a000a67badcb8c3f197aac1d01fd5baea" specifiers="explicit"><template>
          <template-type-parameter name="Range"/>
        </template><parameter name="range"><paramtype>const Range &amp;</paramtype></parameter><description><para>Initializes the sequence from Boost.Range range. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1seed__seq_1a85e3b3b288412b9b775d26cb8d922d90" name="generate" cv="const"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Fills a range with 32-bit values based on the stored sequence.</para><para>Requires: Iter must be a Random Access Iterator whose value type is an unsigned integral type at least 32 bits wide. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1seed__seq_1adfcc0943ee6534df56933701a2065ba8" name="size" cv="const"><type>std::size_t</type><description><para>Returns the size of the sequence. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1seed__seq_1a79d88752048f936b0f47b5cb946bc4f4" name="param"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="out"><paramtype>Iter</paramtype></parameter><description><para>Writes the stored sequence to iter. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.shuffle__order_8hpp" name="boost/random/shuffle_order.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine" name="shuffle_order_engine"><template>
      <template-type-parameter name="UniformRandomNumberGenerator"/>
      <template-nontype-parameter name="k"><type>std::size_t</type></template-nontype-parameter>
    </template><description><para>Instatiations of class template <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine">shuffle_order_engine</link></computeroutput> model a  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link> . It mixes the output of some (usually  <classname alt="boost::random::linear_congruential_engine">linear_congruential_engine</classname>)  <link linkend="boost_random.reference.concepts.uniform_random_number_generator">uniform random number generator</link>  to get better statistical properties. The algorithm is described in</para><para> <blockquote><para>  "Improving a poor random number generator", Carter Bays and S.D. Durham, ACM Transactions on Mathematical Software, Vol 2, No. 1, March 1976, pp. 59-64. <ulink url="http://doi.acm.org/10.1145/355666.355670">http://doi.acm.org/10.1145/355666.355670</ulink>  </para></blockquote> </para><para>The output of the base generator is buffered in an array of length k. Every output X(n) has a second role: It gives an index into the array where X(n+1) will be retrieved. Used array elements are replaced with fresh output from the base generator.</para><para>Template parameters are the base generator and the array length k, which should be around 100. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a43fc432fcb9bf426684d680810d4ce0f" name="base_type"><type>UniformRandomNumberGenerator</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a0e016fe061f9041524e614a885088241" name="result_type"><type>base_type::result_type</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1ae341324e965cc63b461b31d9e6d56323" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1aa367672f3ceb125d9c9b07014b3e32af" name="buffer_size" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1adf21ea942d7f6cdb4d103c2b0b8bb74f" name="table_size" specifiers="static"><type>const std::size_t</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a7bb7aad6db1ef7dc28cf6ef3879803ac"><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine">shuffle_order_engine</link></computeroutput> by invoking the default constructor of the base generator.</para><para>Complexity: Exactly k+1 invocations of the base generator. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1ae09cd5940e51b189dcb93d436d01172d" specifiers="explicit"><parameter name="s"><paramtype>result_type</paramtype></parameter><description><para>Constructs a <computeroutput>shuffle_output_engine</computeroutput> by invoking the one-argument constructor of the base generator with the parameter seed.</para><para>Complexity: Exactly k+1 invocations of the base generator. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a530627b21a4f3eb8a387f57683af3931" specifiers="explicit"><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a8bb5bb9a481cbe0583ecaf1f6796f34f" specifiers="explicit"><parameter name="rng"><paramtype>const base_type &amp;</paramtype></parameter><description><para>Constructs a <computeroutput>shuffle_output_engine</computeroutput> by using a copy of the provided generator.</para><para>Precondition: The template argument UniformRandomNumberGenerator shall denote a CopyConstructible type.</para><para>Complexity: Exactly k+1 invocations of the base generator. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a343f98db3bd690c4fe5cb7c2c4dfd0c5" specifiers="explicit"><parameter name="rng"><paramtype>base_type &amp;&amp;</paramtype></parameter></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1aeac297d431d4b9975efedec9a98d2167"><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a19d64b5fa9f8fc718b6fcbdfe2c32dc3" name="seed"><type>void</type></method>
<method id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a29cf0951bc68a088c9e1a44781990fc8" name="seed"><type>void</type><parameter name="seed"><paramtype>result_type</paramtype></parameter><description><para>Invokes the one-argument seed method of the base generator with the parameter seed and re-initializes the internal buffer array.</para><para>Complexity: Exactly k+1 invocations of the base generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a68c281b135080cc28d51acb5b88d6ec3" name="seed"><type>void</type><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Invokes the one-argument seed method of the base generator with the parameter seq and re-initializes the internal buffer array.</para><para>Complexity: Exactly k+1 invocations of the base generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1ab12c737e88d5f5f077c5fb1344a7fa0b" name="seed"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter></method>
<method id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a9343f25067b1d80c937a9611e49ef1f2" name="base" cv="const"><type>const base_type &amp;</type></method>
<method id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1acca439403195b123563c6932ae5c6e8f" name="operator()"><type>result_type</type></method>
<method id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a3e5350796e6004c76d5a2177e2603bcd" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Advances the generator by z steps. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a145980099565b40ef3bd3e4ae5ab9e67" name="generate"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Fills a range with pseudo-random values. </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a901f374bb3fa3386f8bd650310b3e8ba" name="min" specifiers="static"><type>result_type</type><description><para>Returns the smallest value that the generator can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1af77122efbe5c9d924ce4b023a2955ce0" name="max" specifiers="static"><type>result_type</type><description><para>Returns the largest value that the generator can produce. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a4ce8ef63f6b9d64141308afc665e8d71" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="s"><paramtype>const <classname>shuffle_order_engine</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine">shuffle_order_engine</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a3bcb8d95efa30aa5e1a8ee56c96a557a" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="s"><paramtype>const <classname>shuffle_order_engine</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine">shuffle_order_engine</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a483c2e10da56c40b2851f36cdbf82096" name="operator=="><type>bool</type><parameter name="x"><paramtype>const <classname>shuffle_order_engine</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const <classname>shuffle_order_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce identical sequences. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1shuffle__order__engine_1a2f62c6ef935a7e89299a86da7e13d8bd" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>shuffle_order_engine</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>shuffle_order_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce different sequences. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.shuffle__order_8hpp_1a8970fdb751bec3ae0871c81f6833fd21" name="kreutzer1986"><description><para>According to Harry Erwin (private e-mail), the specialization <computeroutput>kreutzer1986</computeroutput> was suggested in:</para><para> <blockquote><para>  "System Simulation: Programming Styles and Languages (International
Computer Science Series)", Wolfgang Kreutzer, Addison-Wesley, December 1986.  </para></blockquote>  </para></description><type><classname>shuffle_order_engine</classname>&lt; <classname>linear_congruential_engine</classname>&lt; uint32_t, 1366, 150889, 714025 &gt;, 97 &gt;</type></typedef>
<typedef id="doxygen.headers.shuffle__order_8hpp_1ab372a11e4e91090b178a7643f31e786c" name="knuth_b"><description><para>The specialization <computeroutput>knuth_b</computeroutput> is specified by the C++ standard. It is described in</para><para> <blockquote><para>  "The Art of Computer Programming, Second Edition, Volume 2,
Seminumerical Algorithms", Donald Knuth, Addison-Wesley, 1981.  </para></blockquote>  </para></description><type><classname>shuffle_order_engine</classname>&lt; <classname>minstd_rand0</classname>, 256 &gt;</type></typedef>

</namespace>
</namespace>
</header>
<header id="doxygen.headers.sobol_8hpp" name="boost/random/sobol.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1sobol__engine" name="sobol_engine"><template>
      <template-type-parameter name="UIntType"/>
      <template-nontype-parameter name="w"><type>unsigned</type></template-nontype-parameter>
      <template-type-parameter name="SobolTables"><default>default_sobol_table</default></template-type-parameter>
    </template><description><para>Instantiations of class template <link linkend="doxygen.headers.classboost_1_1random_1_1sobol__engine">sobol_engine</link> model a  <link linkend="boost_random.reference.concepts.quasi_random_number_generator">quasi-random number generator</link> . The <link linkend="doxygen.headers.classboost_1_1random_1_1sobol__engine">sobol_engine</link> uses the algorithm described in  <blockquote><para>  [Bratley+Fox, TOMS 14, 88 (1988)] and [Antonov+Saleev, USSR Comput. Maths. Math. Phys. 19, 252 (1980)]  </para></blockquote> </para><para><important><para><link linkend="doxygen.headers.classboost_1_1random_1_1sobol__engine">sobol_engine</link> skips trivial zeroes at the start of the sequence. For example, the beginning of the 2-dimensional Sobol sequence in <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1uniform__01">uniform_01</link></computeroutput> distribution will look like this: <programlisting language="c++">0.5, 0.5,
0.75, 0.25,
0.25, 0.75,
0.375, 0.375,
0.875, 0.875,
...
</programlisting></para>
</important>
In the following documentation <computeroutput>X</computeroutput> denotes the concrete class of the template <link linkend="doxygen.headers.classboost_1_1random_1_1sobol__engine">sobol_engine</link> returning objects of type <computeroutput>UIntType</computeroutput>, u and v are the values of <computeroutput>X</computeroutput>.</para><para>Some member functions may throw exceptions of type <computeroutput>std::range_error</computeroutput>. This happens when the quasi-random domain is exhausted and the generator cannot produce any more values. The length of the low discrepancy sequence is given by <inlineequation><alt>$L=Dimension \times (2^{w} - 1)$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_31.png"/></imageobject><textobject role="tex"><phrase>$L=Dimension \times (2^{w} - 1)$</phrase></textobject></inlinemediaobject></inlineequation>. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1sobol__engine_1a377ad89b1800bd082367f169b6e48695" name="result_type"><type>UIntType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1sobol__engine_1a4aa297a45f8cbdaf796028a8312062e1" specifiers="explicit"><parameter name="s"><paramtype>std::size_t</paramtype></parameter><description><para>Effects: Constructs the default <computeroutput>s</computeroutput>-dimensional Sobol quasi-random number generator.</para><para>Throws: bad_alloc, invalid_argument, range_error. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1sobol__engine_1abd4e6f4fdf43ab3927f22871453fe4d8" name="dimension" cv="const"><type>std::size_t</type><description><para>Returns: The dimension of of the quasi-random domain.</para><para>Throws: nothing.    </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1sobol__engine_1a406504b1534199f17027dbee5ab61159" name="seed"><type>void</type><purpose>Throws: nothing.    </purpose><description><para>Effects: Resets the quasi-random number generator state to the one given by the default construction. Equivalent to u.seed(0).    </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1sobol__engine_1a75e59f25c30646311aa7539647da3358" name="seed"><type>void</type><parameter name="init"><paramtype>UIntType</paramtype></parameter><purpose>Throws: range_error.    </purpose><description><para>Effects: Effectively sets the quasi-random number generator state to the <computeroutput>init</computeroutput>-th vector in the <computeroutput>s</computeroutput>-dimensional quasi-random domain, where <computeroutput>s</computeroutput> == X::dimension(). <programlisting language="c++">X u, v;
for(int i = 0; i &lt; N; ++i)
    for( std::size_t j = 0; j &lt; u.dimension(); ++j )
        u();
v.seed(N);
assert(u() == v());
</programlisting>    </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1sobol__engine_1a151b6d12d7e442d621bf1768528b6cbb" name="operator()"><type>result_type</type><description><para>Returns: Returns a successive element of an <computeroutput>s</computeroutput>-dimensional (s = X::dimension()) vector at each invocation. When all elements are exhausted, X::operator() begins anew with the starting element of a subsequent <computeroutput>s</computeroutput>-dimensional vector.</para><para>Throws: range_error.    </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1sobol__engine_1a8d1c26492b1684b7aac6021b1fa7785a" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Effects: Advances *this state as if <computeroutput>z</computeroutput> consecutive X::operator() invocations were executed. <programlisting language="c++">X u = v;
for(int i = 0; i &lt; N; ++i)
    u();
v.discard(N);
assert(u() == v());
</programlisting></para><para>Throws: range_error.    </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1sobol__engine_1a5da6318480feef8731117b95e4147152" name="min" specifiers="static"><type>result_type</type><description><para>Returns: Tight lower bound on the set of values returned by operator().</para><para>Throws: nothing.    </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1sobol__engine_1a21a7168daf4ab1216c1f76189bf9fbfb" name="max" specifiers="static"><type>result_type</type><description><para>Returns: Tight upper bound on the set of values returned by operator().</para><para>Throws: nothing.    </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1sobol__engine_1a20204569aa9008f208aaa83b8f6b77cb" name="operator=="><type>bool</type><parameter name="x"><paramtype>const <classname>sobol_engine</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const <classname>sobol_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce identical sequences of outputs. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1sobol__engine_1a42049da5a30a32947e730c6dd9e08dc3" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>sobol_engine</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>sobol_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce different sequences of outputs. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1sobol__engine_1a61c1964bfca95bc3915bc08c1bb961da" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="s"><paramtype>const <classname>sobol_engine</classname> &amp;</paramtype></parameter><description><para>Writes the textual representation of the generator to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1sobol__engine_1ae51f35edc3a20fcd0c81215623ce6411" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="s"><paramtype>const <classname>sobol_engine</classname> &amp;</paramtype></parameter><description><para>Reads the textual representation of the generator from a <computeroutput>std::istream</computeroutput>. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.sobol_8hpp_1aa5b0c5ac9d0b5f30aeec86300f90e403" name="sobol"><description><para><important><para>This specialization of  <classname alt="boost::random::sobol_engine">sobol_engine</classname>  supports up to 3667 dimensions.</para>
</important>
Data on the primitive binary polynomials <computeroutput>a</computeroutput> and the corresponding starting values <computeroutput>m</computeroutput> for Sobol sequences in up to 21201 dimensions was taken from</para><para> <blockquote><para>  S. Joe and F. Y. Kuo, Constructing Sobol sequences with better two-dimensional projections, SIAM J. Sci. Comput. 30, 2635-2654 (2008).  </para></blockquote> </para><para>See the original tables up to dimension 21201: <ulink url="https://web.archive.org/web/20170802022909/http://web.maths.unsw.edu.au/~fkuo/sobol/new-joe-kuo-6.21201">https://web.archive.org/web/20170802022909/http://web.maths.unsw.edu.au/~fkuo/sobol/new-joe-kuo-6.21201</ulink></para><para>For practical reasons the default table uses only the subset of binary polynomials <computeroutput>a</computeroutput> &lt; 2<superscript>16</superscript>.</para><para>However, it is possible to provide your own table to  <classname alt="boost::random::sobol_engine">sobol_engine</classname>  should the default one be insufficient. </para></description><type><classname>sobol_engine</classname>&lt; boost::uint_least64_t, 64u, default_sobol_table &gt;</type></typedef>

</namespace>
</namespace>
</header>
<header id="doxygen.headers.splitmix64_8hpp" name="boost/random/splitmix64.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1splitmix64" name="splitmix64"><description><para>This is a fixed-increment version of Java 8's SplittableRandom generator See <ulink url="http://dx.doi.org/10.1145/2714064.2660195">http://dx.doi.org/10.1145/2714064.2660195</ulink> and <ulink url="http://docs.oracle.com/javase/8/docs/api/java/util/SplittableRandom.html">http://docs.oracle.com/javase/8/docs/api/java/util/SplittableRandom.html</ulink> It is a very fast generator passing BigCrush, and it can be useful if for some reason you absolutely want 64 bits of state; otherwise, we rather suggest to use a xoroshiro128+ (for moderately parallel computations) or xorshift1024* (for massively parallel computations) generator. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1splitmix64_1a1eb45f2d3b66b0e178dcefd2cfe2e131" name="result_type"><type>std::uint64_t</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1splitmix64_1a712b93ad826651231292d535931b1991" name="seed_type"><type>std::uint64_t</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1splitmix64_1ae1166371f4bf799e3e4bf95e3fbe3547" name="has_fixed_range" specifiers="static"><type>bool</type></data-member>
<method-group name="private member functions">
<method id="doxygen.headers.classboost_1_1random_1_1splitmix64_1a31b5a216b3407fec37f7d152081c5b38" name="concatenate" cv="noexcept"><type>std::uint64_t</type><parameter name="word1"><paramtype>std::uint32_t</paramtype></parameter><parameter name="word2"><paramtype>std::uint32_t</paramtype></parameter></method>
</method-group>
<method-group name="public member functions">
<method id="doxygen.headers.classboost_1_1random_1_1splitmix64_1a5846115125bdcdf816000225b5d6e351" name="seed" cv="noexcept"><type>void</type><parameter name="value"><paramtype>result_type</paramtype><default>0</default></parameter><description><para>Seeds the generator with the default seed. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1splitmix64_1af10b7805fce8c1c4559a77878503c01a" name="seed"><type>void</type><template>
          <template-type-parameter name="Sseq"/>
          <template-type-parameter name="std::enable_if&lt;!std::is_convertible&lt; Sseq, std::uint64_t &gt;::value, bool &gt;::type"><default>true</default></template-type-parameter>
        </template><parameter name="seq"><paramtype>Sseq &amp;</paramtype></parameter><description><para>Seeds the generator with 32-bit values produced by <computeroutput>seq.generate()</computeroutput>. </para></description></method>
<constructor id="doxygen.headers.classboost_1_1random_1_1splitmix64_1a00826227091d19b6816abb1c36347038" specifiers="explicit"><template>
          <template-type-parameter name="Sseq"/>
          <template-type-parameter name="std::enable_if&lt;!std::is_convertible&lt; Sseq, splitmix64 &gt;::value, bool &gt;::type"><default>true</default></template-type-parameter>
        </template><parameter name="seq"><paramtype>Sseq &amp;</paramtype></parameter><description><para>Seeds the generator with 64-bit values produced by <computeroutput>seq.generate()</computeroutput>. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1splitmix64_1ae0e668c7da113c3cbf68dfce22f5d605" name="seed" cv="noexcept"><type>void</type><template>
          <template-type-parameter name="T"/>
          <template-type-parameter name="std::enable_if&lt; std::is_convertible&lt; T, std::uint64_t &gt;::value, bool &gt;::type"><default>true</default></template-type-parameter>
        </template><parameter name="value"><paramtype>T</paramtype><default>0</default></parameter><description><para>Seeds the generator with a user provided seed. </para></description></method>
<constructor id="doxygen.headers.classboost_1_1random_1_1splitmix64_1a6bdefb0876975873ad3524e67eb02f0c" specifiers="explicit" cv="noexcept"><parameter name="state"><paramtype>std::uint64_t</paramtype><default>0</default></parameter><description><para>Seeds the generator with a user provided seed. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1splitmix64_1a1f97258e2db25261b6b961c01f96e353" cv="= default"><parameter name="other"><paramtype>const <classname>splitmix64</classname> &amp;</paramtype></parameter></constructor>
<copy-assignment id="doxygen.headers.classboost_1_1random_1_1splitmix64_1ac5d390fcf2552b9907d0b755570ed9e6" cv="= default"><type><classname>splitmix64</classname> &amp;</type><parameter name="other"><paramtype>const <classname>splitmix64</classname> &amp;</paramtype></parameter></copy-assignment>
<method id="doxygen.headers.classboost_1_1random_1_1splitmix64_1a9a73b0603f832cd9ec215ea48a57b69f" name="next" cv="noexcept"><type>result_type</type><description><para>Returns the next value of the generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1splitmix64_1a49a3d1bc35523e757dd69c4f4ef60582" name="operator()" cv="noexcept"><type>result_type</type><description><para>Returns the next value of the generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1splitmix64_1aeb84e128a859b112e4f8087eaf978581" name="discard" cv="noexcept"><type>void</type><parameter name="z"><paramtype>std::uint64_t</paramtype></parameter><description><para>Advances the state of the generator by <computeroutput>z</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1splitmix64_1a5e363ab05442816007fac8e8fcd652eb" name="generate" cv="noexcept"><type>void</type><template>
          <template-type-parameter name="FIter"/>
        </template><parameter name="first"><paramtype>FIter</paramtype></parameter><parameter name="last"><paramtype>FIter</paramtype></parameter><description><para>Fills a range with random values </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1splitmix64_1a66af19da088d34f41c0c93502f190827" name="operator==" cv="noexcept"><type>bool</type><parameter name="lhs"><paramtype>const <classname>splitmix64</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>splitmix64</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce identical sequences of values. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1splitmix64_1a26871a97d5157b480f9a61194a66a408" name="operator!=" cv="noexcept"><type>bool</type><parameter name="lhs"><paramtype>const <classname>splitmix64</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>splitmix64</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce different sequences of values. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1splitmix64_1a7f06145ac0d45a666a33adee9f5195ba" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="ost"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="e"><paramtype>const <classname>splitmix64</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1splitmix64">splitmix64</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1splitmix64_1ac91be3047a919cae8c61a54f2cca9d39" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="ist"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="e"><paramtype><classname>splitmix64</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1splitmix64">splitmix64</link></computeroutput> to a <computeroutput>std::istream</computeroutput>. </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1splitmix64_1ae330673c2fc3528a9bb13c21b6a515f5" name="max" cv="noexcept" specifiers="static"><type>constexpr</type><description><para>Returns the largest value that the <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1splitmix64">splitmix64</link></computeroutput> can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1splitmix64_1a05d2f7d1a9bc69df50a2c85ac11a4ae2" name="min" cv="noexcept" specifiers="static"><type>constexpr</type><description><para>Returns the smallest value that the <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1splitmix64">splitmix64</link></computeroutput> can produce. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.student__t__distribution_8hpp" name="boost/random/student_t_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1student__t__distribution" name="student_t_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The Student t distribution is a real valued distribution with one parameter n, the number of degrees of freedom.</para><para>It has     <inlineequation><alt>$\displaystyle p(x) =
  \frac{1}{\sqrt{n\pi}}
  \frac{\Gamma((n+1)/2)}{\Gamma(n/2)}
  \left(1+\frac{x^2}{n}\right)^{-(n+1)/2}
$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_37.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p(x) =
  \frac{1}{\sqrt{n\pi}}
  \frac{\Gamma((n+1)/2)}{\Gamma(n/2)}
  \left(1+\frac{x^2}{n}\right)^{-(n+1)/2}
$</phrase></textobject></inlinemediaobject></inlineequation>. </para></description><class id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1_1param__type_1a7d7942e83858af0e0cd78642952d777f" name="distribution_type"><type><classname>student_t_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1_1param__type_1aeeed4c17770db74983bfd324601d6687" specifiers="explicit"><parameter name="n"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1_1param__type">param_type</link></computeroutput> with "n" degrees of freedom.</para><para>Requires: n &gt; 0 </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1_1param__type_1a47b95eb4c99f3113b3f7fd3c6789ed55" name="n" cv="const"><type>RealType</type><description><para>Returns the number of degrees of freedom of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1_1param__type">param_type</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1_1param__type">param_type</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the same. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1ad1aa94a2e4c1aa205ea7ef70db2a92fa" name="result_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1a2fb2e76cc4d310834ec5bf4e5f1ccaa6" name="input_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1a0dd172c5a126a0a4bd33069b6404bdf0" specifiers="explicit"><parameter name="n"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1student__t__distribution">student_t_distribution</link></computeroutput> with "n" degrees of freedom.</para><para>Requires: n &gt; 0 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1ae07319bcc4fcfe95bfa8fe8a2e0e90f5" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs an <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1student__t__distribution">student_t_distribution</link></computeroutput> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1ac198169822f59f03e2178d822f6bec0b" name="operator()"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the Student t distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1a235eb3f63fcbe817bd87948ce00ceb6e" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed accordint to the Student t distribution with parameters specified by <computeroutput>param</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1a5dc215f85530b64ad7c33205020543b9" name="n" cv="const"><type>RealType</type><description><para>Returns the number of degrees of freedom. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1ac0169a8200b1944eb0270fb07ecd2ad4" name="min" cv="const"><type>RealType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1a0d265e4c9f2f5ddd374c88e567647585" name="max" cv="const"><type>RealType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1a03511fbbfdcd8f4f55055fe77ed0e2e2" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1a998b1188315fa7bcae8ef2f26c28331f" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1ad57d01dc7afee92c98e8bf2cf3a8bf64" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1ad6d8ef01af3c22bd2298c9ef1243e796" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="td"><paramtype>const <classname>student_t_distribution</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1student__t__distribution">student_t_distribution</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1a021ad51df01740bbe7f87f78e5228d22" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="td"><paramtype>const <classname>student_t_distribution</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1student__t__distribution">student_t_distribution</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1acb8b3f1a299f19e5a0463ef32e8c3489" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>student_t_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>student_t_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1student__t__distribution">student_t_distribution</link></computeroutput> will return identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1student__t__distribution_1a74016b8b92a91fed898734477f684a5b" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>student_t_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>student_t_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1student__t__distribution">student_t_distribution</link></computeroutput> will return different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.subtract__with__carry_8hpp" name="boost/random/subtract_with_carry.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine" name="subtract_with_carry_01_engine"><template>
      <template-type-parameter name="RealType"/>
      <template-nontype-parameter name="w"><type>std::size_t</type></template-nontype-parameter>
      <template-nontype-parameter name="s"><type>std::size_t</type></template-nontype-parameter>
      <template-nontype-parameter name="r"><type>std::size_t</type></template-nontype-parameter>
    </template><description><para>Instantiations of  <classname alt="boost::random::subtract_with_carry_01_engine">subtract_with_carry_01_engine</classname> model a  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link> . The algorithm is described in</para><para> <blockquote><para>  "A New Class of Random Number Generators", George Marsaglia and Arif Zaman, Annals of Applied Probability, Volume 1, Number 3 (1991), 462-480.  </para></blockquote>  </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a4186f3e788bdf44d094d6a263d38104e" name="result_type"><type>RealType</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a7b4460b38eaf4386e3b480127035f159" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1afdca0e442d5f5381719c78612b7d39a5" name="word_size" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1ad951aa4339027afaf27ccf8fe287a3aa" name="long_lag" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1aeafcb94e8e2bf24713dea26cd490a84f" name="short_lag" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a2e74abd0c924de906e9b7514e5195aae" name="default_seed" specifiers="static"><type>const boost::uint32_t</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a507f6c3775b0d5de1aad8c4c302b4b9a"><description><para>Creates a new  <classname alt="boost::random::subtract_with_carry_01_engine">subtract_with_carry_01_engine</classname> using the default seed. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a48ece96bafb84f0aba717bca767501d3" specifiers="explicit"><parameter name="value"><paramtype>boost::uint32_t</paramtype></parameter><description><para>Creates a new <link linkend="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine">subtract_with_carry_01_engine</link> and seeds it with value. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a665c8e99abc9fa4e567d003f4f19ae9c" specifiers="explicit"><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Creates a new  <classname alt="boost::random::subtract_with_carry_01_engine">subtract_with_carry_01_engine</classname> and seeds with values produced by seq.generate(). </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1aebeba3356ec0bb75668e9ad0e30dd9aa"><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Creates a new  <classname alt="boost::random::subtract_with_carry_01_engine">subtract_with_carry_01_engine</classname> and seeds it with values from a range. Advances first to point one past the last consumed value. If the range does not contain enough elements to fill the entire state, throws <computeroutput>std::invalid_argument</computeroutput>. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a29b86433fe11dcf9aa94cc27bc22b5d8" name="seed"><type>void</type><description><para>Seeds the generator with the default seed. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a0d58e0136b6e916f3310fac675591472" name="seed"><type>void</type><parameter name="value"><paramtype>boost::uint32_t</paramtype></parameter><description><para>Seeds the generator with <computeroutput>value</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a6a7360c923994e11f29250317e676761" name="seed"><type>void</type><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Seeds the generator with values produced by <computeroutput>seq.generate()</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a05121283a6973a5fa632128a2fe2c918" name="seed"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Seeds the generator with values from a range. Updates first to point one past the last consumed element. If there are not enough elements in the range to fill the entire state, throws <computeroutput>std::invalid_argument</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a329e5ca484bce034b2e8afe497f2621a" name="operator()"><type>result_type</type><description><para>Returns the next value of the generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a3818a8e774f8f74a1ab78212e79fd422" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Advances the state of the generator by <computeroutput>z</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a8e7296f5bcbf884165a8852cd71519ad" name="generate"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Fills a range with random values. </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1afcce676c5d01df7e0b8a0e25176cd939" name="min" specifiers="static"><type>result_type</type><description><para>Returns the smallest value that the generator can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a240940145bc256d4c600282610952cdc" name="max" specifiers="static"><type>result_type</type><description><para>Returns the largest value that the generator can produce. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a0de54d05f4908fec5eaed38d3fb66376" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="f"><paramtype>const <classname>subtract_with_carry_01_engine</classname> &amp;</paramtype></parameter><description><para>Writes a  <classname alt="boost::random::subtract_with_carry_01_engine">subtract_with_carry_01_engine</classname> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a0289a3edd045c80b978d614f3a42d86e" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="f"><paramtype>const <classname>subtract_with_carry_01_engine</classname> &amp;</paramtype></parameter><description><para>Reads a  <classname alt="boost::random::subtract_with_carry_01_engine">subtract_with_carry_01_engine</classname> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a43bf43b15d1e7adc909e77ee7eb58d8a" name="operator=="><type>bool</type><parameter name="x_"><paramtype>const <classname>subtract_with_carry_01_engine</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const <classname>subtract_with_carry_01_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce identical sequences. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__01__engine_1a46af8417accf4d78bc7aceb7437ce5b1" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>subtract_with_carry_01_engine</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>subtract_with_carry_01_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce different sequences. </para></description></method>
</method-group>
</class><class id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine" name="subtract_with_carry_engine"><template>
      <template-type-parameter name="IntType"/>
      <template-nontype-parameter name="w"><type>std::size_t</type></template-nontype-parameter>
      <template-nontype-parameter name="s"><type>std::size_t</type></template-nontype-parameter>
      <template-nontype-parameter name="r"><type>std::size_t</type></template-nontype-parameter>
    </template><description><para>Instantiations of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine">subtract_with_carry_engine</link></computeroutput> model a  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link> . The algorithm is described in</para><para> <blockquote><para>  "A New Class of Random Number Generators", George Marsaglia and Arif Zaman, Annals of Applied Probability, Volume 1, Number 3 (1991), 462-480.  </para></blockquote>  </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1a0abd40c4924d60b817bab283b7070796" name="result_type"><type>IntType</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1a829a44e5a725e629984c0ac706839856" name="word_size" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1ab587484eb68b329a573f5f772d65a2de" name="long_lag" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1a99d6619a238f5f8749cac7200d4c8bc1" name="short_lag" specifiers="static"><type>const std::size_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1a6a3657dc16a02b23a0e6dcbd943fe7de" name="default_seed" specifiers="static"><type>const uint32_t</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1a2be807a0ccc7b952343af3c244ff5253" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1a27fe67e01f0c4db519d81681596eedb5" name="modulus" specifiers="static"><type>const result_type</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1aa3ad25a1f6b26e852f18c31d2518989f"><description><para>Constructs a new <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine">subtract_with_carry_engine</link></computeroutput> and seeds it with the default seed. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1a434322d770d0f55dcf2425ffc84ac138" specifiers="explicit"><parameter name="value"><paramtype>IntType</paramtype></parameter><description><para>Constructs a new <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine">subtract_with_carry_engine</link></computeroutput> and seeds it with <computeroutput>value</computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1a5fb7d1f151ae75d90d67176767a343ee" specifiers="explicit"><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Constructs a new <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine">subtract_with_carry_engine</link></computeroutput> and seeds it with values produced by <computeroutput>seq.generate()</computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1a4b7801797a1294be1a5ae4131d7e4db3"><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Constructs a new <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine">subtract_with_carry_engine</link></computeroutput> and seeds it with values from a range. first is updated to point one past the last value consumed. If there are not enough elements in the range to fill the entire state of the generator, throws <computeroutput>std::invalid_argument</computeroutput>. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1ab881f26a10563b0d5d24a43c7692bf42" name="seed"><type>void</type><description><para>Seeds the generator with the default seed. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1aa7c2b2669b6d0eb6a458395863540c06" name="seed"><type>void</type><parameter name="value"><paramtype>IntType</paramtype></parameter></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1a951d08952165ba06ab631a3836f588da" name="seed"><type>void</type><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Seeds the generator with values produced by <computeroutput>seq.generate()</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1ab281e9a5766713bb89f47723d648016e" name="seed"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Seeds the generator with values from a range. Updates <computeroutput>first</computeroutput> to point one past the last consumed value. If the range does not contain enough elements to fill the entire state of the generator, throws <computeroutput>std::invalid_argument</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1adef72791818a9e793938057368ce797d" name="operator()"><type>result_type</type><description><para>Returns the next value of the generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1ab56fa8d2f053db6a615c1c9769054cab" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Advances the state of the generator by <computeroutput>z</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1a79111ff29f8247a6d94ac5fa3d78cc55" name="generate"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Fills a range with random values. </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1a7483d8f67402176e487a1fe1e0b2047f" name="min" specifiers="static"><type>result_type</type><description><para>Returns the smallest value that the generator can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1a6d81a97655169449d6f9f36338e62f93" name="max" specifiers="static"><type>result_type</type><description><para>Returns the largest value that the generator can produce. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1aa54f7c76526fd821d77e99bdaf2638df" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="f"><paramtype>const <classname>subtract_with_carry_engine</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine">subtract_with_carry_engine</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1a86acc5a48c5c5ec3eb7192160c5e6cb3" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="f"><paramtype>const <classname>subtract_with_carry_engine</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine">subtract_with_carry_engine</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1a543513198d3c9c27601331d1ce9e5731" name="operator=="><type>bool</type><parameter name="x_"><paramtype>const <classname>subtract_with_carry_engine</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const <classname>subtract_with_carry_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce identical sequences of values. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1subtract__with__carry__engine_1acbb14c47451624e5c687b05635c3a0a2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>subtract_with_carry_engine</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>subtract_with_carry_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce different sequences of values. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.taus88_8hpp" name="boost/random/taus88.hpp">
<namespace name="boost">
<namespace name="random">
<typedef id="doxygen.headers.taus88_8hpp_1a3822a73532a76cfeca0db9888d676c72" name="taus88"><description><para>The specialization taus88 was suggested in</para><para> <blockquote><para>  "Maximally Equidistributed Combined Tausworthe Generators", Pierre L'Ecuyer, Mathematics of Computation, Volume 65, Number 213, January 1996, Pages 203-213  </para></blockquote>  </para></description><type><classname>xor_combine_engine</classname>&lt; <classname>xor_combine_engine</classname>&lt; <classname>linear_feedback_shift_engine</classname>&lt; uint32_t, 32, 31, 13, 12 &gt;, 0, <classname>linear_feedback_shift_engine</classname>&lt; uint32_t, 32, 29, 2, 4 &gt;, 0 &gt;, 0, <classname>linear_feedback_shift_engine</classname>&lt; uint32_t, 32, 28, 3, 17 &gt;, 0 &gt;</type></typedef>

</namespace>
</namespace>
</header>
<header id="doxygen.headers.traits_8hpp" name="boost/random/traits.hpp">
<namespace name="boost">
<namespace name="random">
<namespace name="traits">
<struct id="doxygen.headers.structboost_1_1random_1_1traits_1_1is__integral" name="is_integral"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">integral_constant&lt; bool, boost::is_integral&lt; T &gt;::value||(std::numeric_limits&lt; T &gt;::is_integer)&gt;</inherit><purpose>Traits class that indicates whether type T is an integer. </purpose></struct><struct id="doxygen.headers.structboost_1_1random_1_1traits_1_1is__signed" name="is_signed"><template>
      <template-type-parameter name="T"/>
    </template><inherit access="public">integral_constant&lt; bool, boost::is_signed&lt; T &gt;::value||(std::numeric_limits&lt; T &gt;::is_specialized &amp;&amp;std::numeric_limits&lt; T &gt;::is_integer &amp;&amp;std::numeric_limits&lt; T &gt;::is_signed)&gt;</inherit><purpose>Traits class that indicates whether type T is a signed integer. </purpose></struct><struct id="doxygen.headers.structboost_1_1random_1_1traits_1_1make__unsigned" name="make_unsigned"><template>
      <template-type-parameter name="T"/>
    </template><purpose>Converts the argument type T to an unsigned type. </purpose><description><para>This trait has a single member <computeroutput>type</computeroutput> which is the unsigned type corresponding to T. Note that if T is signed, then member <computeroutput>type</computeroutput> <emphasis>should define a type with one more bit precision than T</emphasis>. For built-in types this trait defaults to <computeroutput>boost::make_unsigned&lt;T&gt;::type</computeroutput>. For user defined types it simply asserts that the argument type T is an unsigned integer (using std::numeric_limits). User defined specializations may be provided for other cases. </para></description></struct><struct id="doxygen.headers.structboost_1_1random_1_1traits_1_1make__unsigned__or__unbounded" name="make_unsigned_or_unbounded"><template>
      <template-type-parameter name="T"/>
    </template><purpose>Converts the argument type T to either an unsigned type or an unbounded integer type. </purpose><description><para>This trait has a single member <computeroutput>type</computeroutput> which is either the unsigned type corresponding to T or an unbounded integer type. This trait is used to generate types suitable for the calculation of a range: as a result if T is signed, then member <computeroutput>type</computeroutput> <emphasis>should define a type with one more bit precision than T</emphasis>. For built-in types this trait defaults to <computeroutput>boost::make_unsigned&lt;T&gt;::type</computeroutput>. For user defined types it simply asserts that the argument type T is either an unbounded integer, or an unsigned one (using std::numeric_limits). User defined specializations may be provided for other cases. </para></description></struct></namespace>

</namespace>
</namespace>
</header>
<header id="doxygen.headers.triangle__distribution_8hpp" name="boost/random/triangle_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1triangle__distribution" name="triangle_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>Instantiations of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1triangle__distribution">triangle_distribution</link></computeroutput> model a  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link> . A <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1triangle__distribution">triangle_distribution</link></computeroutput> has three parameters, <computeroutput>a</computeroutput>, <computeroutput>b</computeroutput>, and <computeroutput>c</computeroutput>, which are the smallest, the most probable and the largest values of the distribution respectively. </para></description><class id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1_1param__type_1a6d9c878d915c10ebf9b2db11e3ae3811" name="distribution_type"><type><classname>triangle_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1_1param__type_1a25f2f6d552a5bf1395a29487833f159e" specifiers="explicit"><parameter name="a"><paramtype>RealType</paramtype><default>0.0</default></parameter><parameter name="b"><paramtype>RealType</paramtype><default>0.5</default></parameter><parameter name="c"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs the parameters of a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1triangle__distribution">triangle_distribution</link></computeroutput>. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1_1param__type_1a1096a916d945eb038b74d05914f66b22" name="a" cv="const"><type>RealType</type><description><para>Returns the minimum value of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1_1param__type_1aa43aec8dc7aa448f6b0fa6d425dbb328" name="b" cv="const"><type>RealType</type><description><para>Returns the mode of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1_1param__type_1ac50c0042780b94ca5a2d5cd2361174ae" name="c" cv="const"><type>RealType</type><description><para>Returns the maximum value of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are equal. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1a7ab73ee53fc08eb88d7dbbb95ce9502f" name="input_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1a2484ae87313cf94e6819ce7ad9854292" name="result_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1aeca2cec785c7525aae38043e0379f1e1" specifiers="explicit"><parameter name="a"><paramtype>RealType</paramtype><default>0.0</default></parameter><parameter name="b"><paramtype>RealType</paramtype><default>0.5</default></parameter><parameter name="c"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1triangle__distribution">triangle_distribution</link></computeroutput> with the parameters <computeroutput>a</computeroutput>, <computeroutput>b</computeroutput>, and <computeroutput>c</computeroutput>.</para><para>Preconditions: a &lt;= b &lt;= c. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1aa1e7384d4762382e38c5d76f96a56444" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1triangle__distribution">triangle_distribution</link></computeroutput> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1a10d95f4d325885d17516e9b296eaa30d" name="a" cv="const"><type>result_type</type><description><para>Returns the <computeroutput>a</computeroutput> parameter of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1a521228030b1be91ee9a69abc2020c126" name="b" cv="const"><type>result_type</type><description><para>Returns the <computeroutput>b</computeroutput> parameter of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1adec7e3cfd781903a396b69c181ee8454" name="c" cv="const"><type>result_type</type><description><para>Returns the <computeroutput>c</computeroutput> parameter of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1a8d6522e99006b1153159c5aa9fd3bdc3" name="min" cv="const"><type>RealType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1a7dbd8d81a26fa504f64936fc779c2409" name="max" cv="const"><type>RealType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1a81743023519a6d78bfde3ffe7a2a62cc" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1ad9b5814ed04a62fefdd577bbf8e9e504" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1af057581d3de7577e124c08498fae94cd" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1a9383862e3b518fff0ac9b4bcbe5f9a55" name="operator()"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the triangle distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1a8c00c8cd98a4e53151ceb0593d809693" name="operator()"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the triangle distribution with parameters specified by param. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1a50cbcf16f4b4c21684273d3aa01d61c0" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="td"><paramtype>const <classname>triangle_distribution</classname> &amp;</paramtype></parameter><description><para>Writes the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1a99c9c75f9de141a88871cd578966d187" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="td"><paramtype>const <classname>triangle_distribution</classname> &amp;</paramtype></parameter><description><para>Reads the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1a14d0d0e1853e1c6835d484daee7f375c" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>triangle_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>triangle_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will produce identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1triangle__distribution_1a4fbaeb2fa429d375600790be3f9c442f" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>triangle_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>triangle_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions may produce different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.uniform__01_8hpp" name="boost/random/uniform_01.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1uniform__01" name="uniform_01"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The distribution function <link linkend="doxygen.headers.classboost_1_1random_1_1uniform__01">uniform_01</link> models a  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link> . On each invocation, it returns a random floating-point value uniformly distributed in the range [0..1).</para><para>The template parameter RealType shall denote a float-like value type with support for binary operators +, -, and /.</para><para>Note: The current implementation is buggy, because it may not fill all of the mantissa with random bits. I'm unsure how to fill a (to-be-invented) <computeroutput>boost::bigfloat</computeroutput> class with random bits efficiently. It's probably time for a traits class. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1uniform__01_1a581232b2f02363c3bb774dab95f10328" name="input_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1uniform__01_1afaaefe8dc06ae645c1a6ffd7590beb29" name="result_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<method id="doxygen.headers.classboost_1_1random_1_1uniform__01_1a998c9b64d299f0604b770736c8184e5a" name="min" cv="const"><type>result_type</type></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__01_1ae22cd2ec3f7bd0619088963a1d8b91e0" name="max" cv="const"><type>result_type</type></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__01_1a5d079dfeb825e64ce72113cc028e4020" name="reset"><type>void</type></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__01_1a17fac21f2b280f2824dbe2e4ebc6a252" name="operator()"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.uniform__int__distribution_8hpp" name="boost/random/uniform_int_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution" name="uniform_int_distribution"><template>
      <template-type-parameter name="IntType"><default>int</default></template-type-parameter>
    </template><description><para>The class template <link linkend="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution">uniform_int_distribution</link> models a  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link> . On each invocation, it returns a random integer value uniformly distributed in the set of integers {min, min+1, min+2, ..., max}.</para><para>The template parameter IntType shall denote an integer-like value type. </para></description><class id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1_1param__type_1ac4904bd944426fd1d4423b8e27ac20d7" name="distribution_type"><type><classname>uniform_int_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1_1param__type_1a3af971979dff4291176db5875c665c17" specifiers="explicit"><parameter name="min"><paramtype>IntType</paramtype><default>0</default></parameter><parameter name="max"><paramtype>IntType</paramtype><default>(std::numeric_limits&lt; IntType &gt;::max)()</default></parameter><description><para>Constructs the parameters of a <link linkend="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution">uniform_int_distribution</link>.</para><para>Requires min &lt;= max </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1_1param__type_1ad845727a9d70528ea6ba59ab9cf69e9e" name="a" cv="const"><type>IntType</type><description><para>Returns the minimum value of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1_1param__type_1a1699ba1146701a98f387d555dc17dfe9" name="b" cv="const"><type>IntType</type><description><para>Returns the maximum value of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are equal. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1a768672f37b6eafafda4624f02c92a01d" name="input_type"><type>IntType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1aee5ca38d2c51780bcdbe83a26b8e5fcd" name="result_type"><type>IntType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1a0b718de9fadee1ac1701f26d856c7ff7" specifiers="explicit"><parameter name="min"><paramtype>IntType</paramtype><default>0</default></parameter><parameter name="max"><paramtype>IntType</paramtype><default>(std::numeric_limits&lt; IntType &gt;::max)()</default></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution">uniform_int_distribution</link>. <computeroutput>min</computeroutput> and <computeroutput>max</computeroutput> are the parameters of the distribution.</para><para>Requires: min &lt;= max </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1a6cf07447bd998872883e437874440f5e" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution">uniform_int_distribution</link> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1ade608fb3f79d75617e1bbfc1e533f5c2" name="min" cv="const"><type>IntType</type><description><para>Returns the minimum value of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1a7b059b8e0d92f51643b115cf76ba836d" name="max" cv="const"><type>IntType</type><description><para>Returns the maximum value of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1aa9c47ba3a083ddc43dae736bc700f5ba" name="a" cv="const"><type>IntType</type><description><para>Returns the minimum value of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1a27dade5f2de86da163453a45376179a6" name="b" cv="const"><type>IntType</type><description><para>Returns the maximum value of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1a96ae30ddfe3839045be020b9c679a183" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1a6087f74b23d22e009218beab4c93e49c" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1a92950c72b0233d55526c1997ffd8b52c" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1a006bebaf735a92a0b46c8b8f2f1a46ae" name="operator()" cv="const"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><description><para>Returns an integer uniformly distributed in the range [min, max]. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1a180edfe0e1120fee7f1fd89d929e063e" name="operator()" cv="const"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns an integer uniformly distributed in the range [param.a(), param.b()]. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1a2fe46416e04f468896abfb79ca425fcd" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="ud"><paramtype>const <classname>uniform_int_distribution</classname> &amp;</paramtype></parameter><description><para>Writes the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1ad21aeb91b4125ef70b4f8c70d4b81771" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="ud"><paramtype>const <classname>uniform_int_distribution</classname> &amp;</paramtype></parameter><description><para>Reads the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1a37e6156d159d627880a2b53a94a56869" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>uniform_int_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>uniform_int_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will produce identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__int__distribution_1a39a23f9b11d06e8dcf125ed0bf310fb8" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>uniform_int_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>uniform_int_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions may produce different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.uniform__on__sphere_8hpp" name="boost/random/uniform_on_sphere.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere" name="uniform_on_sphere"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
      <template-type-parameter name="Cont"><default>std::vector&lt;RealType&gt;</default></template-type-parameter>
    </template><description><para>Instantiations of class template <link linkend="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere">uniform_on_sphere</link> model a  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link> . Such a distribution produces random numbers uniformly distributed on the unit sphere of arbitrary dimension <computeroutput>dim</computeroutput>. The <computeroutput>Cont</computeroutput> template parameter must be a STL-like container type with begin and end operations returning non-const ForwardIterators of type <computeroutput>Cont::iterator</computeroutput>. </para></description><class id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1_1param__type_1a65afba13e653e121c0bb8d5182010ebf" name="distribution_type"><type><classname>uniform_on_sphere</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1_1param__type_1a76608387e211817842e24a5dee89095e" specifiers="explicit"><parameter name="dim"><paramtype>int</paramtype><default>2</default></parameter><description><para>Constructs the parameters of a <link linkend="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere">uniform_on_sphere</link> distribution, given the dimension of the sphere. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1_1param__type_1ac60f50804e338844b44c3071e44ad629" name="dim" cv="const"><type>int</type><description><para>Returns the dimension of the sphere. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are equal. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1a743afa9318473ce803c647b894a840b2" name="input_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1a51f9921183d8e677c3a2e2bfd51f36c9" name="result_type"><type>Cont</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1abbcd34dbe2e702244f2cce4c2b4bfe34" specifiers="explicit"><parameter name="dim"><paramtype>int</paramtype><default>2</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere">uniform_on_sphere</link></computeroutput> distribution. <computeroutput>dim</computeroutput> is the dimension of the sphere.</para><para>Requires: dim &gt;= 0 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1a95bf3ec53570a281671e0168af5ff9e7" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere">uniform_on_sphere</link></computeroutput> distribution from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1afc6657ee6813cc0aabb97f29faea91ce" name="dim" cv="const"><type>int</type><description><para>Returns the dimension of the sphere. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1a085e3b0f59e091e63645a2353dbb7e05" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1af77ca3b07f10297bd728a0c6578ee9dc" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1a535f72c87dbe7c4a8d671979f314e509" name="min" cv="const"><type>result_type</type><description><para>Returns the smallest value that the distribution can produce. Note that this is required to approximate the standard library's requirements. The behavior is defined according to lexicographical comparison so that for a container type of std::vector, dist.min() &lt;= x &lt;= dist.max() where x is any value produced by the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1ac10476fa30d48a4676e1dd8ef5c519ea" name="max" cv="const"><type>result_type</type><description><para>Returns the largest value that the distribution can produce. Note that this is required to approximate the standard library's requirements. The behavior is defined according to lexicographical comparison so that for a container type of std::vector, dist.min() &lt;= x &lt;= dist.max() where x is any value produced by the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1ae3034a9af0b9dfac16af481942253026" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1a1e928e9887af63eb7355875b08cd50e6" name="operator()"><type>const result_type &amp;</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><description><para>Returns a point uniformly distributed over the surface of a sphere of dimension <link linkend="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1afc6657ee6813cc0aabb97f29faea91ce">dim()</link>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1aa6dfda6a83cffc49afc8e149dc21c13f" name="operator()" cv="const"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a point uniformly distributed over the surface of a sphere of dimension param.dim(). </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1aeea5d1a0b327f51369c8fe2557a7ffa0" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="sd"><paramtype>const <classname>uniform_on_sphere</classname> &amp;</paramtype></parameter><description><para>Writes the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1a707a0efa9b1ece50bf8a64cdcc8f5cba" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="sd"><paramtype>const <classname>uniform_on_sphere</classname> &amp;</paramtype></parameter><description><para>Reads the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1a2d18198f918ec4c11ebb30f934fa5bd5" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>uniform_on_sphere</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>uniform_on_sphere</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will produce identical sequences of values, given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__on__sphere_1ad63d1bd40a14b022b7e5e3171247b51c" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>uniform_on_sphere</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>uniform_on_sphere</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions may produce different sequences of values, given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.uniform__real__distribution_8hpp" name="boost/random/uniform_real_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution" name="uniform_real_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The class template <link linkend="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution">uniform_real_distribution</link> models a  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link> . On each invocation, it returns a random floating-point value uniformly distributed in the range [min..max). </para></description><class id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1_1param__type_1a11fc44c902b36fed03e4e25967e27836" name="distribution_type"><type><classname>uniform_real_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1_1param__type_1a187fb9a969f7a01125f37debd7fa56b1" specifiers="explicit"><parameter name="min"><paramtype>RealType</paramtype><default>0.0</default></parameter><parameter name="max"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs the parameters of a <link linkend="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution">uniform_real_distribution</link>.</para><para>Requires min &lt; max </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1_1param__type_1aa28021d91915b81737d5a1d8458a0173" name="a" cv="const"><type>RealType</type><description><para>Returns the minimum value of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1_1param__type_1a88b8c9041673813f2fcab1c1d8faf3f7" name="b" cv="const"><type>RealType</type><description><para>Returns the maximum value of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are equal. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1a781b0815d99cb42e14d6d59024e32174" name="input_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1a96e9f83fe99c9dab979d1b10985b0be1" name="result_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1abf59bc217a5fa6939ca6f793f84389a5" specifiers="explicit"><parameter name="min"><paramtype>RealType</paramtype><default>0.0</default></parameter><parameter name="max"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution">uniform_real_distribution</link>. <computeroutput>min</computeroutput> and <computeroutput>max</computeroutput> are the parameters of the distribution.</para><para>Requires: min &lt; max </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1ac8f6976d726f9f5487e433463e75222e" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs a <link linkend="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution">uniform_real_distribution</link> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1afdce7df2ee4ed165dfae381bc8d1acfb" name="min" cv="const"><type>RealType</type><description><para>Returns the minimum value of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1a03df027795e489a994b34291a74891a1" name="max" cv="const"><type>RealType</type><description><para>Returns the maximum value of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1a8482c4fffa2c5ccac429a6f15ba8a092" name="a" cv="const"><type>RealType</type><description><para>Returns the minimum value of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1a7302ac6ae51f9ab01109edb8491ce4b0" name="b" cv="const"><type>RealType</type><description><para>Returns the maximum value of the distribution </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1a17f1ef585b0649bb7f360d21c146060c" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1a2a9fd77de7c8ae1f3565fadbfcefcf65" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1aa8217548c81e813924021e35fb61ef1a" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1a383609952eca2852bf5c3df969795732" name="operator()" cv="const"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><description><para>Returns a value uniformly distributed in the range [min, max). </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1a36b2da50f684e94d4ac8e80e18300c9b" name="operator()" cv="const"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a value uniformly distributed in the range [param.a(), param.b()). </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1acb83fe73219250fb263a33dd508ca54b" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="ud"><paramtype>const <classname>uniform_real_distribution</classname> &amp;</paramtype></parameter><description><para>Writes the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1add4e53c7a5fe5e1bdb66703d4e63a634" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="ud"><paramtype>const <classname>uniform_real_distribution</classname> &amp;</paramtype></parameter><description><para>Reads the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1a5467d0d91c25a0100a98e588615c0f7e" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>uniform_real_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>uniform_real_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will produce identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__real__distribution_1a8f400cd66ef3aa25cb9796e0fb7983b1" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>uniform_real_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>uniform_real_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions may produce different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.uniform__smallint_8hpp" name="boost/random/uniform_smallint.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1uniform__smallint" name="uniform_smallint"><template>
      <template-type-parameter name="IntType"><default>int</default></template-type-parameter>
    </template><description><para>The distribution function <link linkend="doxygen.headers.classboost_1_1random_1_1uniform__smallint">uniform_smallint</link> models a  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link> . On each invocation, it returns a random integer value uniformly distributed in the set of integer numbers {min, min+1, min+2, ..., max}. It assumes that the desired range (max-min+1) is small compared to the range of the underlying source of random numbers and thus makes no attempt to limit quantization errors.</para><para>Let <inlineequation><alt>$r_{\mathtt{out}} = (\mbox{max}-\mbox{min}+1)$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_38.png"/></imageobject><textobject role="tex"><phrase>$r_{\mathtt{out}} = (\mbox{max}-\mbox{min}+1)$</phrase></textobject></inlinemediaobject></inlineequation> the desired range of integer numbers, and let <inlineequation><alt>$r_{\mathtt{base}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_39.png"/></imageobject><textobject role="tex"><phrase>$r_{\mathtt{base}}$</phrase></textobject></inlinemediaobject></inlineequation> be the range of the underlying source of random numbers. Then, for the uniform distribution, the theoretical probability for any number i in the range <inlineequation><alt>$r_{\mathtt{out}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_40.png"/></imageobject><textobject role="tex"><phrase>$r_{\mathtt{out}}$</phrase></textobject></inlinemediaobject></inlineequation> will be <inlineequation><alt>$\displaystyle p_{\mathtt{out}}(i) = \frac{1}{r_{\mathtt{out}}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_41.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p_{\mathtt{out}}(i) = \frac{1}{r_{\mathtt{out}}}$</phrase></textobject></inlinemediaobject></inlineequation>. Likewise, assume a uniform distribution on <inlineequation><alt>$r_{\mathtt{base}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_39.png"/></imageobject><textobject role="tex"><phrase>$r_{\mathtt{base}}$</phrase></textobject></inlinemediaobject></inlineequation> for the underlying source of random numbers, i.e. <inlineequation><alt>$\displaystyle p_{\mathtt{base}}(i) = \frac{1}{r_{\mathtt{base}}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_42.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p_{\mathtt{base}}(i) = \frac{1}{r_{\mathtt{base}}}$</phrase></textobject></inlinemediaobject></inlineequation>. Let <inlineequation><alt>$p_{\mathtt{out\_s}}(i)$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_43.png"/></imageobject><textobject role="tex"><phrase>$p_{\mathtt{out\_s}}(i)$</phrase></textobject></inlinemediaobject></inlineequation> denote the random distribution generated by <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1uniform__smallint">uniform_smallint</link></computeroutput>. Then the sum over all i in <inlineequation><alt>$r_{\mathtt{out}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_40.png"/></imageobject><textobject role="tex"><phrase>$r_{\mathtt{out}}$</phrase></textobject></inlinemediaobject></inlineequation> of  <inlineequation><alt>$\displaystyle
\left(\frac{p_{\mathtt{out\_s}}(i)}{p_{\mathtt{out}}(i)} - 1\right)^2$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_44.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle
\left(\frac{p_{\mathtt{out\_s}}(i)}{p_{\mathtt{out}}(i)} - 1\right)^2$</phrase></textobject></inlinemediaobject></inlineequation> shall not exceed   <inlineequation><alt>$\displaystyle \frac{r_{\mathtt{out}}}{r_{\mathtt{base}}^2}
(r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})
(r_{\mathtt{out}} - r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_45.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle \frac{r_{\mathtt{out}}}{r_{\mathtt{base}}^2}
(r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})
(r_{\mathtt{out}} - r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})$</phrase></textobject></inlinemediaobject></inlineequation>.</para><para>The template parameter IntType shall denote an integer-like value type.</para><para> <note><para>  The property above is the square sum of the relative differences in probabilities between the desired uniform distribution <inlineequation><alt>$p_{\mathtt{out}}(i)$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_46.png"/></imageobject><textobject role="tex"><phrase>$p_{\mathtt{out}}(i)$</phrase></textobject></inlinemediaobject></inlineequation> and the generated distribution <inlineequation><alt>$p_{\mathtt{out\_s}}(i)$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_43.png"/></imageobject><textobject role="tex"><phrase>$p_{\mathtt{out\_s}}(i)$</phrase></textobject></inlinemediaobject></inlineequation>. The property can be fulfilled with the calculation <inlineequation><alt>$(\mbox{base\_rng} \mbox{ mod } r_{\mathtt{out}})$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_47.png"/></imageobject><textobject role="tex"><phrase>$(\mbox{base\_rng} \mbox{ mod } r_{\mathtt{out}})$</phrase></textobject></inlinemediaobject></inlineequation>, as follows: Let <inlineequation><alt>$r = r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_48.png"/></imageobject><textobject role="tex"><phrase>$r = r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}}$</phrase></textobject></inlinemediaobject></inlineequation>. The base distribution on <inlineequation><alt>$r_{\mathtt{base}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_39.png"/></imageobject><textobject role="tex"><phrase>$r_{\mathtt{base}}$</phrase></textobject></inlinemediaobject></inlineequation> is folded onto the range <inlineequation><alt>$r_{\mathtt{out}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_40.png"/></imageobject><textobject role="tex"><phrase>$r_{\mathtt{out}}$</phrase></textobject></inlinemediaobject></inlineequation>. The numbers i &lt; r have assigned  <inlineequation><alt>$\displaystyle
\left\lfloor\frac{r_{\mathtt{base}}}{r_{\mathtt{out}}}\right\rfloor+1$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_49.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle
\left\lfloor\frac{r_{\mathtt{base}}}{r_{\mathtt{out}}}\right\rfloor+1$</phrase></textobject></inlinemediaobject></inlineequation> numbers of the base distribution, the rest has only  <inlineequation><alt>$\displaystyle
\left\lfloor\frac{r_{\mathtt{base}}}{r_{\mathtt{out}}}\right\rfloor$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_50.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle
\left\lfloor\frac{r_{\mathtt{base}}}{r_{\mathtt{out}}}\right\rfloor$</phrase></textobject></inlinemediaobject></inlineequation>. Therefore,    <inlineequation><alt>$\displaystyle p_{\mathtt{out\_s}}(i) =
\left(\left\lfloor\frac{r_{\mathtt{base}}}
{r_{\mathtt{out}}}\right\rfloor+1\right) /
r_{\mathtt{base}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_51.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p_{\mathtt{out\_s}}(i) =
\left(\left\lfloor\frac{r_{\mathtt{base}}}
{r_{\mathtt{out}}}\right\rfloor+1\right) /
r_{\mathtt{base}}$</phrase></textobject></inlinemediaobject></inlineequation> for i &lt; r and   <inlineequation><alt>$\displaystyle p_{\mathtt{out\_s}}(i) =
\left\lfloor\frac{r_{\mathtt{base}}}
{r_{\mathtt{out}}}\right\rfloor/r_{\mathtt{base}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_52.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p_{\mathtt{out\_s}}(i) =
\left\lfloor\frac{r_{\mathtt{base}}}
{r_{\mathtt{out}}}\right\rfloor/r_{\mathtt{base}}$</phrase></textobject></inlinemediaobject></inlineequation> otherwise. Substituting this in the above sum formula leads to the desired result.  </para></note> </para><para>Note: The upper bound for  <inlineequation><alt>$(r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})
(r_{\mathtt{out}} - r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_53.png"/></imageobject><textobject role="tex"><phrase>$(r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})
(r_{\mathtt{out}} - r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})$</phrase></textobject></inlinemediaobject></inlineequation> is <inlineequation><alt>$\displaystyle \frac{r_{\mathtt{out}}^2}{4}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_54.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle \frac{r_{\mathtt{out}}^2}{4}$</phrase></textobject></inlinemediaobject></inlineequation>. Regarding the upper bound for the square sum of the relative quantization error of <inlineequation><alt>$\displaystyle \frac{r_\mathtt{out}^3}{4r_{\mathtt{base}}^2}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_55.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle \frac{r_\mathtt{out}^3}{4r_{\mathtt{base}}^2}$</phrase></textobject></inlinemediaobject></inlineequation>, it seems wise to either choose <inlineequation><alt>$r_{\mathtt{base}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_39.png"/></imageobject><textobject role="tex"><phrase>$r_{\mathtt{base}}$</phrase></textobject></inlinemediaobject></inlineequation> so that <inlineequation><alt>$r_{\mathtt{base}} &gt; 10r_{\mathtt{out}}^2$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_56.png"/></imageobject><textobject role="tex"><phrase>$r_{\mathtt{base}} &gt; 10r_{\mathtt{out}}^2$</phrase></textobject></inlinemediaobject></inlineequation> or ensure that <inlineequation><alt>$r_{\mathtt{base}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_39.png"/></imageobject><textobject role="tex"><phrase>$r_{\mathtt{base}}$</phrase></textobject></inlinemediaobject></inlineequation> is divisible by <inlineequation><alt>$r_{\mathtt{out}}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_40.png"/></imageobject><textobject role="tex"><phrase>$r_{\mathtt{out}}$</phrase></textobject></inlinemediaobject></inlineequation>. </para></description><class id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1_1param__type_1a5e3aef3646f0c5a290b1db485751ace5" name="distribution_type"><type><classname>uniform_smallint</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1_1param__type_1a95f81bea70be57ffd3ac1b1d644f0d83"><parameter name="min"><paramtype>IntType</paramtype><default>0</default></parameter><parameter name="max"><paramtype>IntType</paramtype><default>9</default></parameter><description><para>constructs the parameters of a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1uniform__smallint">uniform_smallint</link></computeroutput> distribution. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1_1param__type_1a9e93d1eb48476d44c11e9e5fd0ddcaf6" name="a" cv="const"><type>IntType</type><description><para>Returns the minimum value. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1_1param__type_1acd7575c48da9fd69087621850178141f" name="b" cv="const"><type>IntType</type><description><para>Returns the maximum value. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes the parameters to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads the parameters from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are equal. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1a941ef0caf4510c2f4e63399d449c14a0" name="input_type"><type>IntType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1a0595410ba2bf3b0d762d53b927bb1720" name="result_type"><type>IntType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1aeee05f2fbb124a53e324f8242bc040ef" specifiers="explicit"><parameter name="min"><paramtype>IntType</paramtype><default>0</default></parameter><parameter name="max"><paramtype>IntType</paramtype><default>9</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1uniform__smallint">uniform_smallint</link></computeroutput>. <computeroutput>min</computeroutput> and <computeroutput>max</computeroutput> are the lower and upper bounds of the output range, respectively. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1a7d8a5e437c764478cabcbc45b4df9b11" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1uniform__smallint">uniform_smallint</link></computeroutput> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1aca888905a25eb34f91c8d828870f621c" name="a" cv="const"><type>result_type</type><description><para>Returns the minimum value of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1a4748349f2c7af79e989dd3973b585290" name="b" cv="const"><type>result_type</type><description><para>Returns the maximum value of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1a527b01fcfa4c286f078096371d1e3c11" name="min" cv="const"><type>result_type</type><description><para>Returns the minimum value of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1a740e9eabaf87bbbfc57961836761c4f4" name="max" cv="const"><type>result_type</type><description><para>Returns the maximum value of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1aec0d136cfafc3a3e02824be4e5e7bd3a" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1aad65b1743eec84ebb04a7e313eca20a8" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1a9b57696c17992992ede493e6f80f7561" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1af400c824a0bf9e1f297ece1cd345e399" name="operator()" cv="const"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><description><para>Returns a value uniformly distributed in the range [<link linkend="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1a527b01fcfa4c286f078096371d1e3c11">min()</link>, <link linkend="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1a740e9eabaf87bbbfc57961836761c4f4">max()</link>]. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1aa1786e6e93f44b79b6cd4bddc3ae7fe4" name="operator()" cv="const"><type>result_type</type><template>
          <template-type-parameter name="Engine"/>
        </template><parameter name="eng"><paramtype>Engine &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a value uniformly distributed in the range [param.a(), param.b()]. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1abfedd3cad3924a6ff6306cefe70464b1" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="ud"><paramtype>const <classname>uniform_smallint</classname> &amp;</paramtype></parameter><description><para>Writes the distribution to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1a4472bc2906af87f5911ac36421399d0e" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="ud"><paramtype>const <classname>uniform_smallint</classname> &amp;</paramtype></parameter><description><para>Reads the distribution from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1ab46d2b89e75259e73342a61b7c70ab4e" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>uniform_smallint</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>uniform_smallint</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions will produce identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1uniform__smallint_1a95124e9d9e630ec50896ea205602829a" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>uniform_smallint</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>uniform_smallint</classname> &amp;</paramtype></parameter><description><para>Returns true if the two distributions may produce different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.variate__generator_8hpp" name="boost/random/variate_generator.hpp">
<namespace name="boost">
<class id="doxygen.headers.classboost_1_1variate__generator" name="variate_generator"><template>
      <template-type-parameter name="Engine"/>
      <template-type-parameter name="Distribution"/>
    </template><description><para>A random variate generator is used to join a random number generator together with a random number distribution. Boost.Random provides a vast choice of  <link linkend="boost_random.reference.generators">generators</link>  as well as  <link linkend="boost_random.reference.distributions">distributions</link> .</para><para>The argument for the template parameter Engine shall be of the form U, U&amp;, or U*, where U models a  <link linkend="boost_random.reference.concepts.uniform_random_number_generator">uniform random number generator</link> . Then, the member engine_value_type names U (not the pointer or reference to U).</para><para>Specializations of <computeroutput><link linkend="doxygen.headers.classboost_1_1variate__generator">variate_generator</link></computeroutput> satisfy the requirements of CopyConstructible. They also satisfy the requirements of Assignable unless the template parameter Engine is of the form U&amp;.</para><para>The complexity of all functions specified in this section is constant. No function described in this section except the constructor throws an exception. </para></description><typedef id="doxygen.headers.classboost_1_1variate__generator_1a6a4ef64135002e5ee74556b4503bfc7f" name="engine_value_type"><type>helper_type::value_type</type></typedef>
<typedef id="doxygen.headers.classboost_1_1variate__generator_1ae5112358e8c3b1dfd2ccb73de764d0f2" name="engine_type"><type>Engine</type></typedef>
<typedef id="doxygen.headers.classboost_1_1variate__generator_1a0413f674875898255fed80d8e4e920c9" name="distribution_type"><type>Distribution</type></typedef>
<typedef id="doxygen.headers.classboost_1_1variate__generator_1a873b5d285582d0d289e507f71931a2c1" name="result_type"><type>Distribution::result_type</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1variate__generator_1ae989119e9f10d5186904c764ed297903"><parameter name="e"><paramtype>Engine</paramtype></parameter><parameter name="d"><paramtype>Distribution</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1variate__generator">variate_generator</link></computeroutput> object with the associated  <link linkend="boost_random.reference.concepts.uniform_random_number_generator">uniform random number generator</link>  eng and the associated  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link>  d.</para><para>Throws: If and what the copy constructor of Engine or Distribution throws. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1variate__generator_1a601b538d41929c2021a779a0b7124100" name="operator()"><type>result_type</type><description><para>Returns: <link linkend="doxygen.headers.classboost_1_1variate__generator_1ac61501712493684e8a1c96caae53e6cf">distribution()</link>(<link linkend="doxygen.headers.classboost_1_1variate__generator_1afc2c6e74e2f47e635a0b8b4821403021">engine()</link>) </para></description></method>
<method id="doxygen.headers.classboost_1_1variate__generator_1a2dcbdd2657d0f910f175be679fefc493" name="operator()"><type>result_type</type><template>
          <template-type-parameter name="T"/>
        </template><parameter name="value"><paramtype>const T &amp;</paramtype></parameter><description><para>Returns: <link linkend="doxygen.headers.classboost_1_1variate__generator_1ac61501712493684e8a1c96caae53e6cf">distribution()</link>(<link linkend="doxygen.headers.classboost_1_1variate__generator_1afc2c6e74e2f47e635a0b8b4821403021">engine()</link>, value). </para></description></method>
<method id="doxygen.headers.classboost_1_1variate__generator_1afc2c6e74e2f47e635a0b8b4821403021" name="engine"><type>engine_value_type &amp;</type><description><para>Returns: A reference to the associated uniform random number generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1variate__generator_1a03c74a9f40100182f3f00340cb251a0b" name="engine" cv="const"><type>const engine_value_type &amp;</type><description><para>Returns: A reference to the associated uniform random number generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1variate__generator_1ac61501712493684e8a1c96caae53e6cf" name="distribution"><type>distribution_type &amp;</type><description><para>Returns: A reference to the associated  <link linkend="boost_random.reference.concepts.random_distribution">random distribution</link> . </para></description></method>
<method id="doxygen.headers.classboost_1_1variate__generator_1a2477c4568e047b59c764d7446b6c962f" name="distribution" cv="const"><type>const distribution_type &amp;</type><description><para>Returns: A reference to the associated random distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1variate__generator_1a0d26e21dcffc09d8f119d0dbd5fafcc2" name="min" cv="const"><type>result_type</type><description><para>Precondition: <link linkend="doxygen.headers.classboost_1_1variate__generator_1ac61501712493684e8a1c96caae53e6cf">distribution()</link>.<link linkend="doxygen.headers.classboost_1_1variate__generator_1a0d26e21dcffc09d8f119d0dbd5fafcc2">min()</link> is well-formed</para><para>Returns: <link linkend="doxygen.headers.classboost_1_1variate__generator_1ac61501712493684e8a1c96caae53e6cf">distribution()</link>.<link linkend="doxygen.headers.classboost_1_1variate__generator_1a0d26e21dcffc09d8f119d0dbd5fafcc2">min()</link> </para></description></method>
<method id="doxygen.headers.classboost_1_1variate__generator_1a2831fd15756e2e0d0cf1e6b67c14232e" name="max" cv="const"><type>result_type</type><description><para>Precondition: <link linkend="doxygen.headers.classboost_1_1variate__generator_1ac61501712493684e8a1c96caae53e6cf">distribution()</link>.<link linkend="doxygen.headers.classboost_1_1variate__generator_1a2831fd15756e2e0d0cf1e6b67c14232e">max()</link> is well-formed</para><para>Returns: <link linkend="doxygen.headers.classboost_1_1variate__generator_1ac61501712493684e8a1c96caae53e6cf">distribution()</link>.<link linkend="doxygen.headers.classboost_1_1variate__generator_1a2831fd15756e2e0d0cf1e6b67c14232e">max()</link> </para></description></method>
</method-group>
</class></namespace>
</header>
<header id="doxygen.headers.weibull__distribution_8hpp" name="boost/random/weibull_distribution.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1weibull__distribution" name="weibull_distribution"><template>
      <template-type-parameter name="RealType"><default>double</default></template-type-parameter>
    </template><description><para>The Weibull distribution is a real valued distribution with two parameters a and b, producing values &gt;= 0.</para><para>It has <inlineequation><alt>$\displaystyle p(x) = \frac{a}{b}\left(\frac{x}{b}\right)^{a-1}e^{-\left(\frac{x}{b}\right)^a}$</alt><inlinemediaobject><imageobject role="html"><imagedata format="PNG" fileref="images/random//form_57.png"/></imageobject><textobject role="tex"><phrase>$\displaystyle p(x) = \frac{a}{b}\left(\frac{x}{b}\right)^{a-1}e^{-\left(\frac{x}{b}\right)^a}$</phrase></textobject></inlinemediaobject></inlineequation>. </para></description><class id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1_1param__type" name="param_type"><typedef id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1_1param__type_1aef26123ccaa05b0dea47ebcf66a46732" name="distribution_type"><type><classname>weibull_distribution</classname></type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1_1param__type_1a181812188809d84335754fdb017ab3fe" specifiers="explicit"><parameter name="a"><paramtype>RealType</paramtype><default>1.0</default></parameter><parameter name="b"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1_1param__type">param_type</link></computeroutput> from the "a" and "b" parameters of the distribution.</para><para>Requires: a &gt; 0 &amp;&amp; b &gt; 0 </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1_1param__type_1ae8f20aac4888052274cc1bcd0ab0edf0" name="a" cv="const"><type>RealType</type><description><para>Returns the "a" parameter of the distribtuion. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1_1param__type_1a1726bdb638b3d9e2f2e825c17769172e" name="b" cv="const"><type>RealType</type><description><para>Returns the "b" parameter of the distribution. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1_1param__type_1a36d2820c7e758fa1a94fdd5d74949e54" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1_1param__type">param_type</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1_1param__type_1aa94ff75dd5871ee80a6fc0a095c75bd0" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1_1param__type">param_type</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1_1param__type_1ae6f3b58e629ce7a54b5e18a4f05dbc5a" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the same. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1_1param__type_1aa559d0d98e88e84417364a89b83cf5b2" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns true if the two sets of parameters are the different. </para></description></method>
</method-group>
</class><typedef id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1aec5f114637f70642b29e76e7f4af18a8" name="result_type"><type>RealType</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1a2a77dec75f899ba8c9e245d5bce75cfb" name="input_type"><type>RealType</type></typedef>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1a63866833864e0f75fdef831ba0250dd0" specifiers="explicit"><parameter name="a"><paramtype>RealType</paramtype><default>1.0</default></parameter><parameter name="b"><paramtype>RealType</paramtype><default>1.0</default></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1weibull__distribution">weibull_distribution</link></computeroutput> from its "a" and "b" parameters.</para><para>Requires: a &gt; 0 &amp;&amp; b &gt; 0 </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1ab738a93c5963bcf81e60bd634c5b4c48" specifiers="explicit"><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1weibull__distribution">weibull_distribution</link></computeroutput> from its parameters. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1a2401dd9ed65cb3143721b892d4edeaaf" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><description><para>Returns a random variate distributed according to the <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1weibull__distribution">weibull_distribution</link></computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1ae3fddb6dd699b614938a283e5a4dfa36" name="operator()" cv="const"><type>RealType</type><template>
          <template-type-parameter name="URNG"/>
        </template><parameter name="urng"><paramtype>URNG &amp;</paramtype></parameter><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Returns a random variate distributed accordint to the Weibull distribution with parameters specified by <computeroutput>param</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1a156c283072136cb3bdc0235fe2e1e4be" name="a" cv="const"><type>RealType</type><description><para>Returns the "a" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1a34f401c27ddff8a633d11c0bcd468341" name="b" cv="const"><type>RealType</type><description><para>Returns the "b" parameter of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1aa4a2d94231dec0157a221e679c4d7384" name="min" cv="const"><type>RealType</type><description><para>Returns the smallest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1a9007f40ff92842b3af202220e2ac2622" name="max" cv="const"><type>RealType</type><description><para>Returns the largest value that the distribution can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1acfde02081d5b8e99684110636bb75aa0" name="param" cv="const"><type><classname>param_type</classname></type><description><para>Returns the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1a85f7d4348b6b58cc15f00f818f0255ba" name="param"><type>void</type><parameter name="param"><paramtype>const <classname>param_type</classname> &amp;</paramtype></parameter><description><para>Sets the parameters of the distribution. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1a8de0f1fd646b94bd5843765bfed21377" name="reset"><type>void</type><description><para>Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1a7c41f3315f03a528b0eb6bd7960ebe53" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="wd"><paramtype>const <classname>weibull_distribution</classname> &amp;</paramtype></parameter><description><para>Writes a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1weibull__distribution">weibull_distribution</link></computeroutput> to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1ac83b98174d20fc6fabdee8017a1e07d8" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="wd"><paramtype>const <classname>weibull_distribution</classname> &amp;</paramtype></parameter><description><para>Reads a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1weibull__distribution">weibull_distribution</link></computeroutput> from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1a5a49df5da2fe77bfd91d77b891c5e974" name="operator=="><type>bool</type><parameter name="lhs"><paramtype>const <classname>weibull_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>weibull_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1weibull__distribution">weibull_distribution</link></computeroutput> will return identical sequences of values given equal generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1weibull__distribution_1aa3edb00b623dc37a664b4ff1f1b47709" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>weibull_distribution</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>weibull_distribution</classname> &amp;</paramtype></parameter><description><para>Returns true if the two instances of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1weibull__distribution">weibull_distribution</link></computeroutput> will return different sequences of values given equal generators. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.xor__combine_8hpp" name="boost/random/xor_combine.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine" name="xor_combine_engine"><template>
      <template-type-parameter name="URNG1"/>
      <template-nontype-parameter name="s1"><type>int</type></template-nontype-parameter>
      <template-type-parameter name="URNG2"/>
      <template-nontype-parameter name="s2"><type>int</type></template-nontype-parameter>
    </template><description><para>Instantiations of <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1xor__combine__engine">xor_combine_engine</link></computeroutput> model a  <link linkend="boost_random.reference.concepts.pseudo_random_number_generator">pseudo-random number generator</link> . To produce its output it invokes each of the base generators, shifts their results and xors them together. </para></description><typedef id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1aefb0f5dac2e56414dd547fbcc78a7ca3" name="base1_type"><type>URNG1</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1af871b61bec26dbf1cd6789dacb6254a3" name="base2_type"><type>URNG2</type></typedef>
<typedef id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1ad4a305b489cf55ddffd3b0a964b18336" name="result_type"><type>base1_type::result_type</type></typedef>
<data-member id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a801c52c96c107bcacc7f8a60ff6516bc" name="has_fixed_range" specifiers="static"><type>const bool</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1abbacd3aece8148c7f944a59fe08b6268" name="shift1" specifiers="static"><type>const int</type></data-member>
<data-member id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1afded5357a4bb91f180b5c0957bef1bf4" name="shift2" specifiers="static"><type>const int</type></data-member>
<method-group name="public member functions">
<constructor id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a232a75e0421409c703eb01d35ac28014"><description><para>Constructors a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1xor__combine__engine">xor_combine_engine</link></computeroutput> by default constructing both base generators. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a9c445b710d34c7c0c02d0747b7853c49"><parameter name="rng1"><paramtype>const base1_type &amp;</paramtype></parameter><parameter name="rng2"><paramtype>const base2_type &amp;</paramtype></parameter><description><para>Constructs a <computeroutput>xor_combine</computeroutput> by copying two base generators. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1ab58a781f1bdc7b0114dc5a6541c2def0" specifiers="explicit"><parameter name="v"><paramtype>result_type</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1xor__combine__engine">xor_combine_engine</link></computeroutput>, seeding both base generators with <computeroutput>v</computeroutput>.</para><para> <warning><para>  The exact algorithm used by this function may change in the future.  </para></warning>  </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a5ec519c4596ae79a00bdc7e1b57225fa" specifiers="explicit"><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1xor__combine__engine">xor_combine_engine</link></computeroutput>, seeding both base generators with values produced by <computeroutput>seq</computeroutput>. </para></description></constructor>
<constructor id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a22c526781278815cb39da35c646aef33"><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>Constructs a <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1xor__combine__engine">xor_combine_engine</link></computeroutput>, seeding both base generators with values from the iterator range [first, last) and changes first to point to the element after the last one used. If there are not enough elements in the range to seed both generators, throws <computeroutput>std::invalid_argument</computeroutput>. </para></description></constructor>
<method id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a2dc3eec3e24edb7c23316109bb707939" name="seed"><type>void</type><description><para>Calls <computeroutput><link linkend="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a2dc3eec3e24edb7c23316109bb707939">seed()</link></computeroutput> for both base generators. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a39e1cc9033a92f0eef3932e6925cf0bd" name="seed"><type>void</type><parameter name="v"><paramtype>result_type</paramtype></parameter><description><para><computeroutput>seeds</computeroutput> both base generators with <computeroutput>v</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1ae54f3bfdb7e3e14bc7c5cee77daa676d" name="seed"><type>void</type><template>
          <template-type-parameter name="SeedSeq"/>
        </template><parameter name="seq"><paramtype>SeedSeq &amp;</paramtype></parameter><description><para><computeroutput>seeds</computeroutput> both base generators with values produced by <computeroutput>seq</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a8922e08e2f9a1f799c922e04185ccf29" name="seed"><type>void</type><template>
          <template-type-parameter name="It"/>
        </template><parameter name="first"><paramtype>It &amp;</paramtype></parameter><parameter name="last"><paramtype>It</paramtype></parameter><description><para>seeds both base generators with values from the iterator range [first, last) and changes first to point to the element after the last one used. If there are not enough elements in the range to seed both generators, throws <computeroutput>std::invalid_argument</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a8cc649b937a06d7cd8dba2a2f6e26973" name="base1" cv="const"><type>const base1_type &amp;</type><description><para>Returns the first base generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1ad534cfcf8f645b52ff0242a68cf22bc5" name="base2" cv="const"><type>const base2_type &amp;</type><description><para>Returns the second base generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1aa45f4c3724b1b2729c79d6abdfe19588" name="operator()"><type>result_type</type><description><para>Returns the next value of the generator. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a8ac457fe45dcfbc79b27ed2c9cccc9b9" name="generate"><type>void</type><template>
          <template-type-parameter name="Iter"/>
        </template><parameter name="first"><paramtype>Iter</paramtype></parameter><parameter name="last"><paramtype>Iter</paramtype></parameter><description><para>Fills a range with random values </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a07391b1d14bf1b84fd7f8e65d91305ae" name="discard"><type>void</type><parameter name="z"><paramtype>boost::uintmax_t</paramtype></parameter><description><para>Advances the state of the generator by <computeroutput>z</computeroutput>. </para></description></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a92b0444937f4b7da6a55990921eef2d4" name="min" specifiers="static"><type>result_type</type><description><para>Returns the smallest value that the generator can produce. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a48b2dd3f07bd166e652692cf43889d48" name="max" specifiers="static"><type>result_type</type><description><para>Returns the largest value that the generator can produce. </para></description></method>
</method-group>
<method-group name="friend functions">
<method id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a1b60c93a68df64770943ccc05a7eb807" name="operator&lt;&lt;"><type>std::basic_ostream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="os"><paramtype>std::basic_ostream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="s"><paramtype>const <classname>xor_combine_engine</classname> &amp;</paramtype></parameter><description><para>Writes the textual representation of the generator to a <computeroutput>std::ostream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a58284e8ba6c1cba568f8a4e11a107069" name="operator&gt;&gt;"><type>std::basic_istream&lt; CharT, Traits &gt; &amp;</type><template>
          <template-type-parameter name="CharT"/>
          <template-type-parameter name="Traits"/>
        </template><parameter name="is"><paramtype>std::basic_istream&lt; CharT, Traits &gt; &amp;</paramtype></parameter><parameter name="s"><paramtype>const <classname>xor_combine_engine</classname> &amp;</paramtype></parameter><description><para>Reads the textual representation of the generator from a <computeroutput>std::istream</computeroutput>. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1ad58401fa52edf6491d7cd77908438073" name="operator=="><type>bool</type><parameter name="x"><paramtype>const <classname>xor_combine_engine</classname> &amp;</paramtype></parameter><parameter name="y"><paramtype>const <classname>xor_combine_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce identical sequences. </para></description></method>
<method id="doxygen.headers.classboost_1_1random_1_1xor__combine__engine_1a8d4451e1a95ff5ee168013e832bc6cac" name="operator!="><type>bool</type><parameter name="lhs"><paramtype>const <classname>xor_combine_engine</classname> &amp;</paramtype></parameter><parameter name="rhs"><paramtype>const <classname>xor_combine_engine</classname> &amp;</paramtype></parameter><description><para>Returns true if the two generators will produce different sequences. </para></description></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
<header id="doxygen.headers.xoshiro_8hpp" name="boost/random/xoshiro.hpp">
<namespace name="boost">
<namespace name="random">
<class id="doxygen.headers.classboost_1_1random_1_1xoshiro128f" name="xoshiro128f"><description><para>This is xoshiro128+ 1.0, our best and fastest 32-bit generator for 32-bit floating-point numbers. We suggest to use its upper bits for floating-point generation, as it is slightly faster than xoshiro128**. It passes all tests we are aware of except for linearity tests, as the lowest four bits have low linear complexity, so if low linear complexity is not considered an issue (as it is usually the case) it can be used to generate 32-bit outputs, too.</para><para>We suggest to use a sign test to extract a random Boolean value, and right shifts to extract subsets of bits.</para><para>The state must be seeded so that it is not everywhere zero. </para></description><method-group name="public member functions">
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro128f_1abcbef37343958cdc3e2c6dc24090e05d" name="next_int" cv="noexcept"><type>std::uint32_t</type></method>
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro128f_1ae1f47741cbfb4f322e9c523a498e0dab" name="next" cv="noexcept"><type>result_type</type></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro128f_1a66003b28c9f20f444754c150db7b204c" name="min" cv="noexcept" specifiers="static"><type>constexpr</type></method>
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro128f_1aa192b341b057a7ca9455217c336c8b71" name="max" cv="noexcept" specifiers="static"><type>constexpr</type></method>
</method-group>
</class><class id="doxygen.headers.classboost_1_1random_1_1xoshiro128mm" name="xoshiro128mm"><description><para>This is xoshiro128** 1.1, one of our 32-bit all-purpose, rock-solid generators. It has excellent speed, a state size (128 bits) that is large enough for mild parallelism, and it passes all tests we are aware of.</para><para>Note that version 1.0 had mistakenly state_[0] instead of state_[1] as state word passed to the scrambler.</para><para>For generating just single-precision (i.e., 32-bit) floating-point numbers, xoshiro128+ is even faster.</para><para>The state must be seeded so that it is not everywhere zero. </para></description><method-group name="public member functions">
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro128mm_1a47da88e5ec9510ccda803c4b6927899c" name="next" cv="noexcept"><type>result_type</type></method>
</method-group>
</class><class id="doxygen.headers.classboost_1_1random_1_1xoshiro128pp" name="xoshiro128pp"><description><para>This is xoshiro128++ 1.0, one of our 32-bit all-purpose, rock-solid generators. It has excellent speed, a state size (128 bits) that is large enough for mild parallelism, and it passes all tests we are aware of.</para><para>For generating just single-precision (i.e., 32-bit) floating-point numbers, xoshiro128+ is even faster.</para><para>The state must be seeded so that it is not everywhere zero. </para></description><method-group name="public member functions">
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro128pp_1a70ef17451232ca2177aaf380d87871c5" name="next" cv="noexcept"><type>result_type</type></method>
</method-group>
</class><class id="doxygen.headers.classboost_1_1random_1_1xoshiro256d" name="xoshiro256d"><description><para>This is xoshiro256+ 1.0, our best and fastest generator for floating-point numbers. We suggest to use its upper bits for floating-point generation, as it is slightly faster than xoshiro256++/xoshiro256**. It passes all tests we are aware of except for the lowest three bits, which might fail linearity tests (and just those), so if low linear complexity is not considered an issue (as it is usually the case) it can be used to generate 64-bit outputs, too. </para></description><method-group name="public member functions">
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro256d_1af87f80dab76fe2ba62fba98d74263322" name="next_int" cv="noexcept"><type>std::uint64_t</type></method>
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro256d_1a4ac72c89ca55bdf929aa1b7482f463b3" name="next" cv="noexcept"><type>result_type</type></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro256d_1a12e2c65cbbfdf6668f2631123612f909" name="min" cv="noexcept" specifiers="static"><type>constexpr</type></method>
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro256d_1ac404877bc04f45d40da2d5afbf81dcf2" name="max" cv="noexcept" specifiers="static"><type>constexpr</type></method>
</method-group>
</class><class id="doxygen.headers.classboost_1_1random_1_1xoshiro256mm" name="xoshiro256mm"><description><para>This is xoshiro256** 1.0, one of our all-purpose, rock-solid generators. It has excellent (sub-ns) speed, a state (256 bits) that is large enough for any parallel application, and it passes all tests we are aware of.</para><para>For generating just floating-point numbers, xoshiro256+ is even faster. </para></description><method-group name="public member functions">
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro256mm_1a4f0a8afa406da3caf936007018cb5c56" name="next" cv="noexcept"><type>result_type</type></method>
</method-group>
</class><class id="doxygen.headers.classboost_1_1random_1_1xoshiro256pp" name="xoshiro256pp"><description><para>This is xoshiro256++ 1.0, one of our all-purpose, rock-solid generators. It has excellent (sub-ns) speed, a state (256 bits) that is large enough for any parallel application, and it passes all tests we are aware of.</para><para>For generating just floating-point numbers, xoshiro256+ is even faster. </para></description><method-group name="public member functions">
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro256pp_1a710b6f30a84434d4019be3463441a35b" name="next" cv="noexcept"><type>result_type</type></method>
</method-group>
</class><class id="doxygen.headers.classboost_1_1random_1_1xoshiro512d" name="xoshiro512d"><description><para>This is xoshiro512+ 1.0, our generator for floating-point numbers with increased state size. We suggest to use its upper bits for floating-point generation, as it is slightly faster than xoshiro512**. It passes all tests we are aware of except for the lowest three bits, which might fail linearity tests (and just those), so if low linear complexity is not considered an issue (as it is usually the case) it can be used to generate 64-bit outputs, too.</para><para>We suggest to use a sign test to extract a random Boolean value, and right shifts to extract subsets of bits.</para><para>The state must be seeded so that it is not everywhere zero. If you have a 64-bit seed, we suggest to seed a <link linkend="doxygen.headers.classboost_1_1random_1_1splitmix64">splitmix64</link> generator and use its output to fill s. </para></description><method-group name="public member functions">
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro512d_1a71a87ad220cb5b53e1cbd17414cf7f45" name="next_int" cv="noexcept"><type>std::uint64_t</type></method>
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro512d_1af56eb4dfc4413b4d33a35eb35e705562" name="next" cv="noexcept"><type>result_type</type></method>
</method-group>
<method-group name="public static functions">
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro512d_1a641caa4e7e6c79525400d8b6a5c485a7" name="min" cv="noexcept" specifiers="static"><type>constexpr</type></method>
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro512d_1af55d1fbfbcc2de19cb20a95e5ea27c75" name="max" cv="noexcept" specifiers="static"><type>constexpr</type></method>
</method-group>
</class><class id="doxygen.headers.classboost_1_1random_1_1xoshiro512mm" name="xoshiro512mm"><description><para>This is xoshiro512** 1.0, one of our all-purpose, rock-solid generators with increased state size. It has excellent (about 1ns) speed, a state (512 bits) that is large enough for any parallel application, and it passes all tests we are aware of.</para><para>For generating just floating-point numbers, xoshiro512+ is even faster.</para><para>The state must be seeded so that it is not everywhere zero. If you have a 64-bit seed, we suggest to seed a <link linkend="doxygen.headers.classboost_1_1random_1_1splitmix64">splitmix64</link> generator and use its output to fill s. </para></description><method-group name="public member functions">
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro512mm_1ac07e5fe0cb5ba73ddf6e6b8a4f7cf909" name="next" cv="noexcept"><type>result_type</type></method>
</method-group>
</class><class id="doxygen.headers.classboost_1_1random_1_1xoshiro512pp" name="xoshiro512pp"><description><para>This is xoshiro512++ 1.0, one of our all-purpose, rock-solid generators. It has excellent (about 1ns) speed, a state (512 bits) that is large enough for any parallel application, and it passes all tests we are aware of.</para><para>For generating just floating-point numbers, xoshiro512+ is even faster.</para><para>The state must be seeded so that it is not everywhere zero. If you have a 64-bit seed, we suggest to seed a <link linkend="doxygen.headers.classboost_1_1random_1_1splitmix64">splitmix64</link> generator and use its output to fill s. </para></description><method-group name="public member functions">
<method id="doxygen.headers.classboost_1_1random_1_1xoshiro512pp_1a95cc9b2e66caedde06fd8855af48e571" name="next" cv="noexcept"><type>result_type</type></method>
</method-group>
</class>
</namespace>
</namespace>
</header>
</library-reference>