<?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_i_thresh_opt" kind="class" language="C++" prot="public">
    <compoundname>forpy::IThreshOpt</compoundname>
    <derivedcompoundref refid="classforpy_1_1_classification_opt" prot="public" virt="non-virtual">forpy::ClassificationOpt</derivedcompoundref>
    <derivedcompoundref refid="classforpy_1_1_regression_opt" prot="public" virt="non-virtual">forpy::RegressionOpt</derivedcompoundref>
    <includes refid="ithreshopt_8h" local="no">ithreshopt.h</includes>
      <sectiondef kind="friend">
      <memberdef kind="friend" id="classforpy_1_1_i_thresh_opt_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/threshold_optimizers/ithreshopt.h" line="64" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" bodystart="61" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classforpy_1_1_i_thresh_opt_1a8d564990e2f3b13d39f66a3448e288ea" prot="public" static="no" const="no" explicit="no" inline="yes" virt="virtual">
        <type></type>
        <definition>virtual forpy::IThreshOpt::~IThreshOpt</definition>
        <argsstring>()</argsstring>
        <name>~IThreshOpt</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" line="25" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" bodystart="25" bodyend="25"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_i_thresh_opt_1aefcf9e5a460c3823ab7b92d904c77243" prot="public" static="no" const="yes" explicit="no" inline="no" virt="virtual">
        <type>std::shared_ptr&lt; <ref refid="classforpy_1_1_i_thresh_opt" kindref="compound">IThreshOpt</ref> &gt;</type>
        <definition>virtual std::shared_ptr&lt;IThreshOpt&gt; forpy::IThreshOpt::create_duplicate</definition>
        <argsstring>(const uint &amp;random_seed) const VIRTUAL_PTR</argsstring>
        <name>create_duplicate</name>
        <reimplementedby refid="classforpy_1_1_fast_class_opt_1ad3f8e3e48833e4903d0abd9b7b64d2a0">create_duplicate</reimplementedby>
        <reimplementedby refid="classforpy_1_1_regression_opt_1a2bed450bdc2463e2ce23dc8cc91b6987">create_duplicate</reimplementedby>
        <reimplementedby refid="classforpy_1_1_classification_opt_1a45d1b3e24b9a084d5a36e006a2241c9f">create_duplicate</reimplementedby>
        <param>
          <type>const <ref refid="namespaceforpy_1ad05e34c62859518b61b76b5085e913d8" kindref="member">uint</ref> &amp;</type>
          <declname>random_seed</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" line="26" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_i_thresh_opt_1a6c8b839e4f30ace4616d51f88dbae9d3" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="virtual">
        <type>bool</type>
        <definition>virtual bool forpy::IThreshOpt::supports_weights</definition>
        <argsstring>() const</argsstring>
        <name>supports_weights</name>
        <briefdescription>
<para>Whether this threshold optimizer can take into account weights during the optimization. </para>        </briefdescription>
        <detaileddescription>
<para>By default, return false. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" line="34" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" bodystart="34" bodyend="34"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_i_thresh_opt_1ab3766a1229f2862994b827469e7ac2dc" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
        <type>void</type>
        <definition>virtual void forpy::IThreshOpt::check_annotations</definition>
        <argsstring>(IDataProvider *dprov) VIRTUAL_VOID</argsstring>
        <name>check_annotations</name>
        <reimplementedby refid="classforpy_1_1_regression_opt_1a224a8c2231c00483365aa69abea262ce">check_annotations</reimplementedby>
        <reimplementedby refid="classforpy_1_1_classification_opt_1a1d02f8d4123e1e40a1526c256ea23b71">check_annotations</reimplementedby>
        <param>
          <type><ref refid="classforpy_1_1_i_data_provider" kindref="compound">IDataProvider</ref> *</type>
          <declname>dprov</declname>
        </param>
        <briefdescription>
<para>Validate annotations for usability with this optimizer. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" line="37" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_i_thresh_opt_1a137fdfee9314780967db884e623db3c5" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
        <type>void</type>
        <definition>virtual void forpy::IThreshOpt::transfer_or_run_check</definition>
        <argsstring>(IThreshOpt *other, IDataProvider *dprov) VIRTUAL_VOID</argsstring>
        <name>transfer_or_run_check</name>
        <reimplementedby refid="classforpy_1_1_regression_opt_1a6c90046d49b2c75ac919a45d18286e1b">transfer_or_run_check</reimplementedby>
        <reimplementedby refid="classforpy_1_1_classification_opt_1a0057b992bfb58f5396a0459b7b8a894b">transfer_or_run_check</reimplementedby>
        <param>
          <type><ref refid="classforpy_1_1_i_thresh_opt" kindref="compound">IThreshOpt</ref> *</type>
          <declname>other</declname>
        </param>
        <param>
          <type><ref refid="classforpy_1_1_i_data_provider" kindref="compound">IDataProvider</ref> *</type>
          <declname>dprov</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" line="39" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_i_thresh_opt_1a938786b8aa4163d1af10bf46d1e7cf7a" prot="public" static="no" const="yes" explicit="no" inline="no" virt="virtual">
        <type>void</type>
        <definition>virtual void forpy::IThreshOpt::full_entropy</definition>
        <argsstring>(const IDataProvider &amp;dprov, Desk *) const VIRTUAL_VOID</argsstring>
        <name>full_entropy</name>
        <reimplementedby refid="classforpy_1_1_fast_class_opt_1a539c7c6a9d129da84474cae193bdb13b">full_entropy</reimplementedby>
        <reimplementedby refid="classforpy_1_1_regression_opt_1a57cf7f2e09ffcf73d7a4359d203324f2">full_entropy</reimplementedby>
        <reimplementedby refid="classforpy_1_1_classification_opt_1ac7ecb5aeedab659bacc8c386441f2ff8">full_entropy</reimplementedby>
        <param>
          <type>const <ref refid="classforpy_1_1_i_data_provider" kindref="compound">IDataProvider</ref> &amp;</type>
          <declname>dprov</declname>
        </param>
        <param>
          <type><ref refid="structforpy_1_1_desk" kindref="compound">Desk</ref> *</type>
        </param>
        <briefdescription>
<para>Get the full entropy for one node before optimization. </para>        </briefdescription>
        <detaileddescription>
<para>Setup tasks can be performed within this function. If the entropy determined is below a certain threshold, the optimization is stopped (see, e.g., <ref refid="classforpy_1_1_fast_decider" kindref="compound">forpy::FastDecider</ref>). </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" line="48" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_i_thresh_opt_1aa7b9f1c4109199a9122788687756731c" prot="public" static="no" const="yes" explicit="no" inline="no" virt="virtual">
        <type>void</type>
        <definition>virtual void forpy::IThreshOpt::optimize</definition>
        <argsstring>(Desk *) const VIRTUAL_VOID</argsstring>
        <name>optimize</name>
        <reimplementedby refid="classforpy_1_1_fast_class_opt_1a62c563cd27cedc385ceb48e934d3df42">optimize</reimplementedby>
        <reimplementedby refid="classforpy_1_1_regression_opt_1ae0af60d8b537f64b22cc3ea54f1a668b">optimize</reimplementedby>
        <reimplementedby refid="classforpy_1_1_classification_opt_1acba5e4cd4a2d9f181d1143fd26310554">optimize</reimplementedby>
        <param>
          <type><ref refid="structforpy_1_1_desk" kindref="compound">Desk</ref> *</type>
        </param>
        <briefdescription>
<para>Optimize for one node. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" line="52" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_i_thresh_opt_1ad5f8c0458c82c0b77ca3c034c0375157" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
        <type>float</type>
        <definition>virtual float forpy::IThreshOpt::get_gain_threshold_for</definition>
        <argsstring>(const size_t &amp;node_id) VIRTUAL(float)</argsstring>
        <name>get_gain_threshold_for</name>
        <reimplementedby refid="classforpy_1_1_regression_opt_1a925883ac643e34757fe5db5206d02b09">get_gain_threshold_for</reimplementedby>
        <reimplementedby refid="classforpy_1_1_classification_opt_1ade8863f16f9a5b843144663c1ea53f62">get_gain_threshold_for</reimplementedby>
        <param>
          <type>const size_t &amp;</type>
          <declname>node_id</declname>
        </param>
        <briefdescription>
<para>Get the gain threshold to use for this node. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" line="55" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_i_thresh_opt_1a255a9a3a07b3988bad9959e9582539eb" prot="public" static="no" const="yes" explicit="no" inline="no" virt="virtual">
        <type>bool</type>
        <definition>virtual bool forpy::IThreshOpt::operator==</definition>
        <argsstring>(const IThreshOpt &amp;rhs) const VIRTUAL(bool)</argsstring>
        <name>operator==</name>
        <reimplementedby refid="classforpy_1_1_fast_class_opt_1a3699be60aabae143b76010a7758f4a1a">operator==</reimplementedby>
        <reimplementedby refid="classforpy_1_1_regression_opt_1a81342b234aa1969a4d55681867b5db7c">operator==</reimplementedby>
        <reimplementedby refid="classforpy_1_1_classification_opt_1aa8a81b507f7eaf7317d37b71cb4f99ee">operator==</reimplementedby>
        <param>
          <type>const <ref refid="classforpy_1_1_i_thresh_opt" kindref="compound">IThreshOpt</ref> &amp;</type>
          <declname>rhs</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" line="57" column="1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="protected-func">
      <memberdef kind="function" id="classforpy_1_1_i_thresh_opt_1afa431da7d4223d42ddd8f6d09f552f71" prot="protected" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>forpy::IThreshOpt::IThreshOpt</definition>
        <argsstring>()</argsstring>
        <name>IThreshOpt</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>For deserialization. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" line="61" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" bodystart="61" bodyend="61"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-func">
      <memberdef kind="function" id="classforpy_1_1_i_thresh_opt_1ab713c37109de3ebae3277d5b3851c5fb" 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::IThreshOpt::serialize</definition>
        <argsstring>(Archive &amp;, const uint &amp;)</argsstring>
        <name>serialize</name>
        <param>
          <type>Archive &amp;</type>
        </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/threshold_optimizers/ithreshopt.h" line="66" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" bodystart="66" bodyend="66"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Find an optimal threshold. </para>    </briefdescription>
    <detaileddescription>
<para>This class is classically used by a <ref refid="classforpy_1_1_i_decider" kindref="compound">forpy::IDecider</ref> to optimize the threshold ( <formula id="1">$\tau$</formula>). </para>    </detaileddescription>
    <inheritancegraph>
      <node id="119">
        <label>forpy::IThreshOpt</label>
        <link refid="classforpy_1_1_i_thresh_opt"/>
      </node>
      <node id="122">
        <label>forpy::RegressionOpt</label>
        <link refid="classforpy_1_1_regression_opt"/>
        <childnode refid="119" relation="public-inheritance">
        </childnode>
      </node>
      <node id="121">
        <label>forpy::FastClassOpt</label>
        <link refid="classforpy_1_1_fast_class_opt"/>
        <childnode refid="120" relation="public-inheritance">
        </childnode>
      </node>
      <node id="120">
        <label>forpy::ClassificationOpt</label>
        <link refid="classforpy_1_1_classification_opt"/>
        <childnode refid="119" relation="public-inheritance">
        </childnode>
      </node>
    </inheritancegraph>
    <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" line="23" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h" bodystart="23" bodyend="67"/>
    <listofallmembers>
      <member refid="classforpy_1_1_i_thresh_opt_1ab2f44cbb59a08132f4c843e5225bba0e" prot="public" virt="non-virtual"><scope>forpy::IThreshOpt</scope><name>cereal::access</name></member>
      <member refid="classforpy_1_1_i_thresh_opt_1ab3766a1229f2862994b827469e7ac2dc" prot="public" virt="virtual"><scope>forpy::IThreshOpt</scope><name>check_annotations</name></member>
      <member refid="classforpy_1_1_i_thresh_opt_1aefcf9e5a460c3823ab7b92d904c77243" prot="public" virt="virtual"><scope>forpy::IThreshOpt</scope><name>create_duplicate</name></member>
      <member refid="classforpy_1_1_i_thresh_opt_1a938786b8aa4163d1af10bf46d1e7cf7a" prot="public" virt="virtual"><scope>forpy::IThreshOpt</scope><name>full_entropy</name></member>
      <member refid="classforpy_1_1_i_thresh_opt_1ad5f8c0458c82c0b77ca3c034c0375157" prot="public" virt="virtual"><scope>forpy::IThreshOpt</scope><name>get_gain_threshold_for</name></member>
      <member refid="classforpy_1_1_i_thresh_opt_1afa431da7d4223d42ddd8f6d09f552f71" prot="protected" virt="non-virtual"><scope>forpy::IThreshOpt</scope><name>IThreshOpt</name></member>
      <member refid="classforpy_1_1_i_thresh_opt_1a255a9a3a07b3988bad9959e9582539eb" prot="public" virt="virtual"><scope>forpy::IThreshOpt</scope><name>operator==</name></member>
      <member refid="classforpy_1_1_i_thresh_opt_1aa7b9f1c4109199a9122788687756731c" prot="public" virt="virtual"><scope>forpy::IThreshOpt</scope><name>optimize</name></member>
      <member refid="classforpy_1_1_i_thresh_opt_1ab713c37109de3ebae3277d5b3851c5fb" prot="private" virt="non-virtual"><scope>forpy::IThreshOpt</scope><name>serialize</name></member>
      <member refid="classforpy_1_1_i_thresh_opt_1a6c8b839e4f30ace4616d51f88dbae9d3" prot="public" virt="virtual"><scope>forpy::IThreshOpt</scope><name>supports_weights</name></member>
      <member refid="classforpy_1_1_i_thresh_opt_1a137fdfee9314780967db884e623db3c5" prot="public" virt="virtual"><scope>forpy::IThreshOpt</scope><name>transfer_or_run_check</name></member>
      <member refid="classforpy_1_1_i_thresh_opt_1a8d564990e2f3b13d39f66a3448e288ea" prot="public" virt="virtual"><scope>forpy::IThreshOpt</scope><name>~IThreshOpt</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
