<?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_data_provider" kind="class" language="C++" prot="public">
    <compoundname>forpy::IDataProvider</compoundname>
    <derivedcompoundref refid="classforpy_1_1_fast_d_prov" prot="public" virt="non-virtual">forpy::FastDProv</derivedcompoundref>
    <includes refid="idataprovider_8h" local="no">idataprovider.h</includes>
      <sectiondef kind="public-attrib">
      <memberdef kind="variable" id="classforpy_1_1_i_data_provider_1a709409f815d97cbeac6e9c91d3a9475b" prot="public" static="no" mutable="no">
        <type>std::vector&lt; std::shared_ptr&lt; <ref refid="classforpy_1_1_i_data_provider" kindref="compound">IDataProvider</ref> &gt; &gt; virtual create_tree_providers(<ref refid="namespaceforpy_1a381efbba198dac450ec9c75e7c4e7daa" kindref="member">usage_map_t</ref> &amp;usage_map) <ref refid="global_8h_1a287409078f3b1637bf3eff5bb81ef767" kindref="member">VIRTUAL</ref>(std bool</type>
        <definition>virtual std::vector&lt;std::shared_ptr&lt;IDataProvider&gt; &gt; virtual create_tree_providers ( usage_map_t &amp;usage_map) VIRTUAL(std bool forpy::IDataProvider::operator==(const IDataProvider &amp;rhs) const VIRTUAL(bool)</definition>
        <argsstring>(const IDataProvider &amp;rhs) const VIRTUAL(bool)</argsstring>
        <name>operator==</name>
        <briefdescription>
<para>Creates the data providers for each tree from the specified usage map. </para>        </briefdescription>
        <detaileddescription>
<para>This brings some tricky issues concerning data ownership in: since internally this method will construct other data providers not owning their data, this must be communicated to the user who constructed this object non-owning data. Hence, the resulting data providers must keep this object <computeroutput>alive</computeroutput> if this method is called from Python, and all Python users of a data provider must keep it alive as long as they use it.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>usage_map</parametername>
</parameternamelist>
<parameterdescription>
<para>A vector with sample_id lists. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" line="101" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" bodystart="101" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="protected-attrib">
      <memberdef kind="variable" id="classforpy_1_1_i_data_provider_1a2222412bc9259a64e2fab51068743c6e" prot="protected" static="no" mutable="no">
        <type>size_t</type>
        <definition>size_t forpy::IDataProvider::feat_vec_dim</definition>
        <argsstring></argsstring>
        <name>feat_vec_dim</name>
        <briefdescription>
<para>The dimension of one feature vector. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" line="117" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" bodystart="114" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1_i_data_provider_1a01860e858c4f524a349cd42e2de2cf9d" prot="protected" static="no" mutable="no">
        <type>size_t</type>
        <definition>size_t forpy::IDataProvider::annot_vec_dim</definition>
        <argsstring></argsstring>
        <name>annot_vec_dim</name>
        <briefdescription>
<para>The dimension of one annotation vector. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" line="119" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" bodystart="119" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="friend">
      <memberdef kind="friend" id="classforpy_1_1_i_data_provider_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/data_providers/idataprovider.h" line="122" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" bodystart="122" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classforpy_1_1_i_data_provider_1ad03fedc27490b0f31c3f1bb83085096d" prot="public" static="no" const="no" explicit="no" inline="yes" virt="virtual">
        <type></type>
        <definition>virtual forpy::IDataProvider::~IDataProvider</definition>
        <argsstring>()</argsstring>
        <name>~IDataProvider</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" line="24" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" bodystart="24" bodyend="24"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_i_data_provider_1acf4a872308c8fb12b2f07d1e6e4c97be" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="virtual">
        <type><ref refid="namespaceforpy_1a724d37691de11a57b50b9935b5550a89" kindref="member">Data</ref>&lt; <ref refid="namespaceforpy_1a468f2a5434fcaa5e20b97caa38b8fa77" kindref="member">VecCMap</ref> &gt;</type>
        <definition>virtual Data&lt;VecCMap&gt; forpy::IDataProvider::get_feature</definition>
        <argsstring>(const size_t &amp;) const</argsstring>
        <name>get_feature</name>
        <reimplementedby refid="classforpy_1_1_fast_d_prov_1a86462e42148b9afcf930eece5c212228">get_feature</reimplementedby>
        <param>
          <type>const size_t &amp;</type>
        </param>
        <briefdescription>
<para>Get the data for one feature from all samples, contiguously in memory (stride 1). </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" line="42" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" bodystart="42" bodyend="44"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_i_data_provider_1a643827c4980278de08763f43cf9f8ca7" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="virtual">
        <type><ref refid="namespaceforpy_1a724d37691de11a57b50b9935b5550a89" kindref="member">Data</ref>&lt; <ref refid="namespaceforpy_1a4a9ac2f76a00cbaa27aa5c24ff4074a5" kindref="member">MatCRef</ref> &gt;</type>
        <definition>virtual Data&lt;MatCRef&gt; forpy::IDataProvider::get_annotations</definition>
        <argsstring>() const</argsstring>
        <name>get_annotations</name>
        <reimplementedby refid="classforpy_1_1_fast_d_prov_1a93c38611b95b866146d7a4e561dc377f">get_annotations</reimplementedby>
        <briefdescription>
<para>Get the full annotation data (must have inner stride 1). </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" line="49" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" bodystart="49" bodyend="51"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_i_data_provider_1a856721bfd7c981289b4423b09677d118" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
        <type>void</type>
        <definition>virtual void forpy::IDataProvider::set_annotations</definition>
        <argsstring>(const DataStore&lt; Mat &gt; &amp;new_annotations) VIRTUAL_VOID</argsstring>
        <name>set_annotations</name>
        <reimplementedby refid="classforpy_1_1_fast_d_prov_1aa485f4ec16a6bbcfbc0040de26b526e7">set_annotations</reimplementedby>
        <param>
          <type>const <ref refid="namespaceforpy_1a805d3699e6dffb8b4aca770e90a9b599" kindref="member">DataStore</ref>&lt; <ref refid="namespaceforpy_1a96f4b931f57ef7b106a2137e9b92939c" kindref="member">Mat</ref> &gt; &amp;</type>
          <declname>new_annotations</declname>
        </param>
        <briefdescription>
<para>Replace the annotations. </para>        </briefdescription>
        <detaileddescription>
<para>Do not use this during ongoing training since there is no currently implemented mechanism to update the pointers to annotations in the various processing threads.</para><para>The method is currently used to store reduced class number lists for classification (see <ref refid="classforpy_1_1_classification_opt_1a1d02f8d4123e1e40a1526c256ea23b71" kindref="member">forpy::ClassificationOpt::check_annotations</ref>). </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" line="63" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_i_data_provider_1aca249d893b39013ecf4fa6450b2901b0" prot="public" static="no" const="yes" explicit="no" inline="no" virt="virtual">
        <type>std::shared_ptr&lt; const std::vector&lt; float &gt; &gt;</type>
        <definition>virtual std::shared_ptr&lt;const std::vector&lt;float&gt; &gt; forpy::IDataProvider::get_weights</definition>
        <argsstring>() const VIRTUAL_PTR</argsstring>
        <name>get_weights</name>
        <reimplementedby refid="classforpy_1_1_fast_d_prov_1ab05684c0359bc0f78e531d5174eed3da">get_weights</reimplementedby>
        <briefdescription>
<para>Get a pointer to the sample weights. </para>        </briefdescription>
        <detaileddescription>
<para>Can be a nullptr, in that case no weights were provided. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" line="71" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_i_data_provider_1af577bc7a37986b19108c38291056bb9d" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>size_t</type>
        <definition>size_t forpy::IDataProvider::get_feat_vec_dim</definition>
        <argsstring>() const</argsstring>
        <name>get_feat_vec_dim</name>
        <briefdescription>
<para>Get the feature vector dimension. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" line="77" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" bodystart="77" bodyend="77"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_i_data_provider_1ac4feda097ece63e0a355b1ddc00300ff" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>size_t</type>
        <definition>size_t forpy::IDataProvider::get_annot_vec_dim</definition>
        <argsstring>() const</argsstring>
        <name>get_annot_vec_dim</name>
        <briefdescription>
<para>Get the annotation vector dimension. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" line="82" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" bodystart="82" bodyend="82"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="protected-func">
      <memberdef kind="function" id="classforpy_1_1_i_data_provider_1a849e2dbb16355c1caf8f7e2b6ee7f818" prot="protected" static="no" const="no" explicit="yes" inline="no" virt="non-virtual">
        <type></type>
        <definition>forpy::IDataProvider::IDataProvider</definition>
        <argsstring>(const size_t &amp;feature_dimension, const size_t &amp;annotation_dimension)</argsstring>
        <name>IDataProvider</name>
        <param>
          <type>const size_t &amp;</type>
          <declname>feature_dimension</declname>
        </param>
        <param>
          <type>const size_t &amp;</type>
          <declname>annotation_dimension</declname>
        </param>
        <briefdescription>
<para>Standard constructor to use for inheriting classes. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" line="107" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_i_data_provider_1aa438ac6ba021fb530ba0cd181fffec91" prot="protected" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>forpy::IDataProvider::IDataProvider</definition>
        <argsstring>()</argsstring>
        <name>IDataProvider</name>
        <briefdescription>
<para>Constructor solely for deserialization. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" line="114" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" bodystart="114" bodyend="114"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-func">
      <memberdef kind="function" id="classforpy_1_1_i_data_provider_1a728b9a51e2a21f8e13e53a4ca903746b" 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::IDataProvider::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/data_providers/idataprovider.h" line="124" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" bodystart="124" bodyend="126"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>A data provider for the training of one tree. </para>    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <inheritancegraph>
      <node id="95">
        <label>forpy::FastDProv</label>
        <link refid="classforpy_1_1_fast_d_prov"/>
        <childnode refid="94" relation="public-inheritance">
        </childnode>
      </node>
      <node id="94">
        <label>forpy::IDataProvider</label>
        <link refid="classforpy_1_1_i_data_provider"/>
      </node>
    </inheritancegraph>
    <collaborationgraph>
      <node id="97">
        <label>std::vector&lt; std::shared_ptr&lt; forpy::IDataProvider &gt; &gt;</label>
      </node>
      <node id="96">
        <label>forpy::IDataProvider</label>
        <link refid="classforpy_1_1_i_data_provider"/>
        <childnode refid="97" relation="usage">
          <edgelabel>operator==</edgelabel>
        </childnode>
      </node>
    </collaborationgraph>
    <location file="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" line="22" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h" bodystart="22" bodyend="127"/>
    <listofallmembers>
      <member refid="classforpy_1_1_i_data_provider_1a01860e858c4f524a349cd42e2de2cf9d" prot="protected" virt="non-virtual"><scope>forpy::IDataProvider</scope><name>annot_vec_dim</name></member>
      <member refid="classforpy_1_1_i_data_provider_1ab2f44cbb59a08132f4c843e5225bba0e" prot="public" virt="non-virtual"><scope>forpy::IDataProvider</scope><name>cereal::access</name></member>
      <member refid="classforpy_1_1_i_data_provider_1a2222412bc9259a64e2fab51068743c6e" prot="protected" virt="non-virtual"><scope>forpy::IDataProvider</scope><name>feat_vec_dim</name></member>
      <member refid="classforpy_1_1_i_data_provider_1ac4feda097ece63e0a355b1ddc00300ff" prot="public" virt="non-virtual"><scope>forpy::IDataProvider</scope><name>get_annot_vec_dim</name></member>
      <member refid="classforpy_1_1_i_data_provider_1a643827c4980278de08763f43cf9f8ca7" prot="public" virt="virtual"><scope>forpy::IDataProvider</scope><name>get_annotations</name></member>
      <member refid="classforpy_1_1_i_data_provider_1af577bc7a37986b19108c38291056bb9d" prot="public" virt="non-virtual"><scope>forpy::IDataProvider</scope><name>get_feat_vec_dim</name></member>
      <member refid="classforpy_1_1_i_data_provider_1acf4a872308c8fb12b2f07d1e6e4c97be" prot="public" virt="virtual"><scope>forpy::IDataProvider</scope><name>get_feature</name></member>
      <member refid="classforpy_1_1_i_data_provider_1aca249d893b39013ecf4fa6450b2901b0" prot="public" virt="virtual"><scope>forpy::IDataProvider</scope><name>get_weights</name></member>
      <member refid="classforpy_1_1_i_data_provider_1a849e2dbb16355c1caf8f7e2b6ee7f818" prot="protected" virt="non-virtual"><scope>forpy::IDataProvider</scope><name>IDataProvider</name></member>
      <member refid="classforpy_1_1_i_data_provider_1aa438ac6ba021fb530ba0cd181fffec91" prot="protected" virt="non-virtual"><scope>forpy::IDataProvider</scope><name>IDataProvider</name></member>
      <member refid="classforpy_1_1_i_data_provider_1a709409f815d97cbeac6e9c91d3a9475b" prot="public" virt="non-virtual"><scope>forpy::IDataProvider</scope><name>operator==</name></member>
      <member refid="classforpy_1_1_i_data_provider_1a728b9a51e2a21f8e13e53a4ca903746b" prot="private" virt="non-virtual"><scope>forpy::IDataProvider</scope><name>serialize</name></member>
      <member refid="classforpy_1_1_i_data_provider_1a856721bfd7c981289b4423b09677d118" prot="public" virt="virtual"><scope>forpy::IDataProvider</scope><name>set_annotations</name></member>
      <member refid="classforpy_1_1_i_data_provider_1ad03fedc27490b0f31c3f1bb83085096d" prot="public" virt="virtual"><scope>forpy::IDataProvider</scope><name>~IDataProvider</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
