<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.14">
  <compounddef id="classforpy_1_1_sampling_without_replacement" kind="class" language="C++" prot="public">
    <compoundname>forpy::SamplingWithoutReplacement</compoundname>
    <includes refid="sampling_8h" local="no">sampling.h</includes>
    <templateparamlist>
      <param>
        <type>typename</type>
        <declname>T</declname>
        <defname>T</defname>
      </param>
    </templateparamlist>
      <sectiondef kind="friend">
      <memberdef kind="friend" id="classforpy_1_1_sampling_without_replacement_1ab2f44cbb59a08132f4c843e5225bba0e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>friend class</type>
        <definition>friend class cereal::access</definition>
        <argsstring></argsstring>
        <name>cereal::access</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/sampling.h" line="115" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/sampling.h" bodystart="113" bodyend="-1"/>
      </memberdef>
      <memberdef kind="friend" id="classforpy_1_1_sampling_without_replacement_1af3daf7e997e4c19e3c3b4a0570f0a60f" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>friend std::ostream &amp;</type>
        <definition>std::ostream&amp; operator&lt;&lt;</definition>
        <argsstring>(std::ostream &amp;stream, const SamplingWithoutReplacement &amp;self)</argsstring>
        <name>operator&lt;&lt;</name>
        <param>
          <type>std::ostream &amp;</type>
          <declname>stream</declname>
        </param>
        <param>
          <type>const <ref refid="classforpy_1_1_sampling_without_replacement" kindref="compound">SamplingWithoutReplacement</ref> &amp;</type>
          <declname>self</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/sampling.h" line="99" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/sampling.h" bodystart="99" bodyend="105"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-attrib">
      <memberdef kind="variable" id="classforpy_1_1_sampling_without_replacement_1a0b40ff6ebdff42cabcb37e227f4bfdec" prot="private" static="no" mutable="no">
        <type>T</type>
        <definition>T forpy::SamplingWithoutReplacement&lt; T &gt;::min</definition>
        <argsstring></argsstring>
        <name>min</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/sampling.h" line="122" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/sampling.h" bodystart="120" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1_sampling_without_replacement_1ab8935c9a91d6974a9501bc51f9b44420" prot="private" static="no" mutable="no">
        <type>std::shared_ptr&lt; std::mt19937 &gt;</type>
        <definition>std::shared_ptr&lt;std::mt19937&gt; forpy::SamplingWithoutReplacement&lt; T &gt;::random_engine</definition>
        <argsstring></argsstring>
        <name>random_engine</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/sampling.h" line="123" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/sampling.h" bodystart="123" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1_sampling_without_replacement_1a95b993aa84242d0e8182df2e85b820c1" prot="private" static="no" mutable="no">
        <type>std::uniform_int_distribution&lt; T &gt;</type>
        <definition>std::uniform_int_distribution&lt;T&gt; forpy::SamplingWithoutReplacement&lt; T &gt;::dist</definition>
        <argsstring></argsstring>
        <name>dist</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/sampling.h" line="124" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/sampling.h" bodystart="124" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1_sampling_without_replacement_1a5b2ec251b2eb5702c337d44af1f33f6a" prot="private" static="no" mutable="no">
        <type>std::vector&lt; T &gt;</type>
        <definition>std::vector&lt;T&gt; forpy::SamplingWithoutReplacement&lt; T &gt;::indices</definition>
        <argsstring></argsstring>
        <name>indices</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/sampling.h" line="125" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/sampling.h" bodystart="125" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1_sampling_without_replacement_1afe7f9cc742a5148ee2f11cf5853d1e1f" prot="private" static="no" mutable="no">
        <type>size_t</type>
        <definition>size_t forpy::SamplingWithoutReplacement&lt; T &gt;::index</definition>
        <argsstring></argsstring>
        <name>index</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/sampling.h" line="126" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/sampling.h" bodystart="126" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classforpy_1_1_sampling_without_replacement_1a4926767cef9a2798b10f4ea230d52d7a" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>forpy::SamplingWithoutReplacement&lt; T &gt;::SamplingWithoutReplacement</definition>
        <argsstring>(const T &amp;min, const T &amp;max, const std::shared_ptr&lt; std::mt19937 &gt; &amp;random_engine)</argsstring>
        <name>SamplingWithoutReplacement</name>
        <param>
          <type>const T &amp;</type>
          <declname>min</declname>
        </param>
        <param>
          <type>const T &amp;</type>
          <declname>max</declname>
        </param>
        <param>
          <type>const std::shared_ptr&lt; std::mt19937 &gt; &amp;</type>
          <declname>random_engine</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/sampling.h" line="64" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/sampling.h" bodystart="64" bodyend="72"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_sampling_without_replacement_1a8c14a4f42f20b6b7af11752aea0bb73c" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>bool</type>
        <definition>bool forpy::SamplingWithoutReplacement&lt; T &gt;::sample_available</definition>
        <argsstring>() const</argsstring>
        <name>sample_available</name>
        <briefdescription>
<para>Returns true if a sample can be drawn without raising an exception. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/sampling.h" line="77" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/sampling.h" bodystart="77" bodyend="77"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_sampling_without_replacement_1a594c9481db1ea1e4a77e41118c20135c" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>T</type>
        <definition>T forpy::SamplingWithoutReplacement&lt; T &gt;::get_next</definition>
        <argsstring>()</argsstring>
        <name>get_next</name>
        <briefdescription>
<para>Gets the next sample. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/sampling.h" line="82" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/sampling.h" bodystart="82" bodyend="97"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_sampling_without_replacement_1a97aeb12f07020c32c2f434cfbb7b935d" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>bool</type>
        <definition>bool forpy::SamplingWithoutReplacement&lt; T &gt;::operator==</definition>
        <argsstring>(const SamplingWithoutReplacement&lt; T &gt; &amp;rhs) const</argsstring>
        <name>operator==</name>
        <param>
          <type>const <ref refid="classforpy_1_1_sampling_without_replacement" kindref="compound">SamplingWithoutReplacement</ref>&lt; T &gt; &amp;</type>
          <declname>rhs</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/sampling.h" line="107" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/sampling.h" bodystart="107" bodyend="110"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-func">
      <memberdef kind="function" id="classforpy_1_1_sampling_without_replacement_1a9e6936c4d78f4d34896f6adefc940078" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>forpy::SamplingWithoutReplacement&lt; T &gt;::SamplingWithoutReplacement</definition>
        <argsstring>()</argsstring>
        <name>SamplingWithoutReplacement</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/sampling.h" line="113" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/sampling.h" bodystart="113" bodyend="113"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_sampling_without_replacement_1a48bc9a6f27cac4f8aee1b68cd7924aac" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>class Archive</type>
          </param>
        </templateparamlist>
        <type>void</type>
        <definition>void forpy::SamplingWithoutReplacement&lt; T &gt;::serialize</definition>
        <argsstring>(Archive &amp;ar, const uint &amp;)</argsstring>
        <name>serialize</name>
        <param>
          <type>Archive &amp;</type>
          <declname>ar</declname>
        </param>
        <param>
          <type>const <ref refid="namespaceforpy_1ad05e34c62859518b61b76b5085e913d8" kindref="member">uint</ref> &amp;</type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/sampling.h" line="117" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/sampling.h" bodystart="117" bodyend="120"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>A lazy evaluation sampling without replacement. </para>    </briefdescription>
    <detaileddescription>
<para>Returns a set of num unique numbers in range [min, max].</para><para>This needs to be stateful. Hence, it must store for each element whether it has been used yet. This renders it inefficient for use cases where only few instances need to be drawn.</para><para>min and max are both inclusive. </para>    </detaileddescription>
    <collaborationgraph>
      <node id="190">
        <label>T</label>
      </node>
      <node id="189">
        <label>forpy::SamplingWithoutReplacement&lt; T &gt;</label>
        <link refid="classforpy_1_1_sampling_without_replacement"/>
        <childnode refid="190" relation="usage">
          <edgelabel>min</edgelabel>
        </childnode>
      </node>
    </collaborationgraph>
    <location file="/Users/classner/git/forpy/include/forpy/util/sampling.h" line="62" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/sampling.h" bodystart="62" bodyend="127"/>
    <listofallmembers>
      <member refid="classforpy_1_1_sampling_without_replacement_1ab2f44cbb59a08132f4c843e5225bba0e" prot="public" virt="non-virtual"><scope>forpy::SamplingWithoutReplacement</scope><name>cereal::access</name></member>
      <member refid="classforpy_1_1_sampling_without_replacement_1a95b993aa84242d0e8182df2e85b820c1" prot="private" virt="non-virtual"><scope>forpy::SamplingWithoutReplacement</scope><name>dist</name></member>
      <member refid="classforpy_1_1_sampling_without_replacement_1a594c9481db1ea1e4a77e41118c20135c" prot="public" virt="non-virtual"><scope>forpy::SamplingWithoutReplacement</scope><name>get_next</name></member>
      <member refid="classforpy_1_1_sampling_without_replacement_1afe7f9cc742a5148ee2f11cf5853d1e1f" prot="private" virt="non-virtual"><scope>forpy::SamplingWithoutReplacement</scope><name>index</name></member>
      <member refid="classforpy_1_1_sampling_without_replacement_1a5b2ec251b2eb5702c337d44af1f33f6a" prot="private" virt="non-virtual"><scope>forpy::SamplingWithoutReplacement</scope><name>indices</name></member>
      <member refid="classforpy_1_1_sampling_without_replacement_1a0b40ff6ebdff42cabcb37e227f4bfdec" prot="private" virt="non-virtual"><scope>forpy::SamplingWithoutReplacement</scope><name>min</name></member>
      <member refid="classforpy_1_1_sampling_without_replacement_1af3daf7e997e4c19e3c3b4a0570f0a60f" prot="public" virt="non-virtual"><scope>forpy::SamplingWithoutReplacement</scope><name>operator&lt;&lt;</name></member>
      <member refid="classforpy_1_1_sampling_without_replacement_1a97aeb12f07020c32c2f434cfbb7b935d" prot="public" virt="non-virtual"><scope>forpy::SamplingWithoutReplacement</scope><name>operator==</name></member>
      <member refid="classforpy_1_1_sampling_without_replacement_1ab8935c9a91d6974a9501bc51f9b44420" prot="private" virt="non-virtual"><scope>forpy::SamplingWithoutReplacement</scope><name>random_engine</name></member>
      <member refid="classforpy_1_1_sampling_without_replacement_1a8c14a4f42f20b6b7af11752aea0bb73c" prot="public" virt="non-virtual"><scope>forpy::SamplingWithoutReplacement</scope><name>sample_available</name></member>
      <member refid="classforpy_1_1_sampling_without_replacement_1a4926767cef9a2798b10f4ea230d52d7a" prot="public" virt="non-virtual"><scope>forpy::SamplingWithoutReplacement</scope><name>SamplingWithoutReplacement</name></member>
      <member refid="classforpy_1_1_sampling_without_replacement_1a9e6936c4d78f4d34896f6adefc940078" prot="private" virt="non-virtual"><scope>forpy::SamplingWithoutReplacement</scope><name>SamplingWithoutReplacement</name></member>
      <member refid="classforpy_1_1_sampling_without_replacement_1a48bc9a6f27cac4f8aee1b68cd7924aac" prot="private" virt="non-virtual"><scope>forpy::SamplingWithoutReplacement</scope><name>serialize</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
