<?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="desk_8h" kind="file" language="C++">
    <compoundname>desk.h</compoundname>
    <includes refid="global_8h" local="yes">../global.h</includes>
    <includes refid="types_8h" local="yes">../types.h</includes>
    <includedby refid="fastdecider_8h" local="yes">/Users/classner/git/forpy/include/forpy/deciders/fastdecider.h</includedby>
    <includedby refid="ithreshopt_8h" local="yes">/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h</includedby>
    <includedby refid="idecider_8h" local="yes">/Users/classner/git/forpy/include/forpy/deciders/idecider.h</includedby>
    <includedby refid="fastclassopt_8h" local="yes">/Users/classner/git/forpy/include/forpy/threshold_optimizers/fastclassopt.h</includedby>
    <includedby refid="classification__opt_8h" local="yes">/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h</includedby>
    <includedby refid="tree_8h" local="yes">/Users/classner/git/forpy/include/forpy/tree.h</includedby>
    <includedby refid="ctpl_8h" local="yes">/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h</includedby>
    <includedby refid="regression__opt_8h" local="yes">/Users/classner/git/forpy/include/forpy/threshold_optimizers/regression_opt.h</includedby>
    <includedby refid="forpy_8h" local="yes">/Users/classner/git/forpy/include/forpy/forpy.h</includedby>
    <incdepgraph>
      <node id="1235">
        <label>iomanip</label>
      </node>
      <node id="1251">
        <label>mapbox/variant_cast.hpp</label>
      </node>
      <node id="1234">
        <label>glog/logging.h</label>
      </node>
      <node id="1245">
        <label>numeric</label>
      </node>
      <node id="1239">
        <label>string</label>
      </node>
      <node id="1238">
        <label>./version.h</label>
        <link refid="version_8h"/>
      </node>
      <node id="1243">
        <label>map</label>
      </node>
      <node id="1232">
        <label>/Users/classner/git/forpy/include/forpy/util/desk.h</label>
        <link refid="desk_8h"/>
        <childnode refid="1233" relation="include">
        </childnode>
        <childnode refid="1241" relation="include">
        </childnode>
      </node>
      <node id="1248">
        <label>./util/hash.h</label>
        <link refid="hash_8h"/>
        <childnode refid="1249" relation="include">
        </childnode>
        <childnode refid="1247" relation="include">
        </childnode>
      </node>
      <node id="1242">
        <label>Eigen/Dense</label>
      </node>
      <node id="1250">
        <label>./util/storage.h</label>
        <link refid="storage_8h"/>
        <childnode refid="1251" relation="include">
        </childnode>
        <childnode refid="1252" relation="include">
        </childnode>
      </node>
      <node id="1247">
        <label>vector</label>
      </node>
      <node id="1246">
        <label>utility</label>
      </node>
      <node id="1236">
        <label>iostream</label>
      </node>
      <node id="1233">
        <label>../global.h</label>
        <link refid="global_8h"/>
        <childnode refid="1234" relation="include">
        </childnode>
        <childnode refid="1235" relation="include">
        </childnode>
        <childnode refid="1236" relation="include">
        </childnode>
        <childnode refid="1237" relation="include">
        </childnode>
        <childnode refid="1238" relation="include">
        </childnode>
        <childnode refid="1239" relation="include">
        </childnode>
        <childnode refid="1240" relation="include">
        </childnode>
      </node>
      <node id="1249">
        <label>cstddef</label>
      </node>
      <node id="1240">
        <label>csignal</label>
      </node>
      <node id="1237">
        <label>thread</label>
      </node>
      <node id="1241">
        <label>../types.h</label>
        <link refid="types_8h"/>
        <childnode refid="1242" relation="include">
        </childnode>
        <childnode refid="1243" relation="include">
        </childnode>
        <childnode refid="1244" relation="include">
        </childnode>
        <childnode refid="1245" relation="include">
        </childnode>
        <childnode refid="1246" relation="include">
        </childnode>
        <childnode refid="1247" relation="include">
        </childnode>
        <childnode refid="1248" relation="include">
        </childnode>
        <childnode refid="1250" relation="include">
        </childnode>
      </node>
      <node id="1252">
        <label>./serialization/variant.h</label>
      </node>
      <node id="1244">
        <label>memory</label>
      </node>
    </incdepgraph>
    <invincdepgraph>
      <node id="1258">
        <label>/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h</label>
        <link refid="ithreshopt_8h"/>
        <childnode refid="1259" relation="include">
        </childnode>
        <childnode refid="1261" relation="include">
        </childnode>
        <childnode refid="1265" relation="include">
        </childnode>
        <childnode refid="1266" relation="include">
        </childnode>
        <childnode refid="1267" relation="include">
        </childnode>
        <childnode refid="1268" relation="include">
        </childnode>
      </node>
      <node id="1265">
        <label>/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h</label>
        <link refid="classification__opt_8h"/>
        <childnode refid="1266" relation="include">
        </childnode>
        <childnode refid="1267" relation="include">
        </childnode>
      </node>
      <node id="1256">
        <label>/Users/classner/git/forpy/include/forpy/forpy.h</label>
        <link refid="forpy_8h"/>
      </node>
      <node id="1255">
        <label>/Users/classner/git/forpy/include/forpy/deciders/deciders.h</label>
        <link refid="deciders_8h"/>
        <childnode refid="1256" relation="include">
        </childnode>
      </node>
      <node id="1263">
        <label>/Users/classner/git/forpy/include/forpy/leafs/leafs.h</label>
        <link refid="leafs_8h"/>
        <childnode refid="1256" relation="include">
        </childnode>
      </node>
      <node id="1259">
        <label>/Users/classner/git/forpy/include/forpy/deciders/idecider.h</label>
        <link refid="idecider_8h"/>
        <childnode refid="1254" relation="include">
        </childnode>
        <childnode refid="1255" relation="include">
        </childnode>
        <childnode refid="1260" relation="include">
        </childnode>
      </node>
      <node id="1266">
        <label>/Users/classner/git/forpy/include/forpy/threshold_optimizers/fastclassopt.h</label>
        <link refid="fastclassopt_8h"/>
        <childnode refid="1257" relation="include">
        </childnode>
        <childnode refid="1267" relation="include">
        </childnode>
      </node>
      <node id="1253">
        <label>/Users/classner/git/forpy/include/forpy/util/desk.h</label>
        <link refid="desk_8h"/>
        <childnode refid="1254" relation="include">
        </childnode>
        <childnode refid="1258" relation="include">
        </childnode>
        <childnode refid="1259" relation="include">
        </childnode>
        <childnode refid="1266" relation="include">
        </childnode>
        <childnode refid="1265" relation="include">
        </childnode>
        <childnode refid="1260" relation="include">
        </childnode>
        <childnode refid="1269" relation="include">
        </childnode>
        <childnode refid="1268" relation="include">
        </childnode>
        <childnode refid="1256" relation="include">
        </childnode>
      </node>
      <node id="1260">
        <label>/Users/classner/git/forpy/include/forpy/tree.h</label>
        <link refid="tree_8h"/>
        <childnode refid="1257" relation="include">
        </childnode>
        <childnode refid="1256" relation="include">
        </childnode>
      </node>
      <node id="1262">
        <label>/Users/classner/git/forpy/include/forpy/leafs/classificationleaf.h</label>
        <link refid="classificationleaf_8h"/>
        <childnode refid="1257" relation="include">
        </childnode>
        <childnode refid="1263" relation="include">
        </childnode>
      </node>
      <node id="1267">
        <label>/Users/classner/git/forpy/include/forpy/threshold_optimizers/threshold_optimizers.h</label>
        <link refid="threshold__optimizers_8h"/>
        <childnode refid="1256" relation="include">
        </childnode>
      </node>
      <node id="1268">
        <label>/Users/classner/git/forpy/include/forpy/threshold_optimizers/regression_opt.h</label>
        <link refid="regression__opt_8h"/>
        <childnode refid="1267" relation="include">
        </childnode>
      </node>
      <node id="1264">
        <label>/Users/classner/git/forpy/include/forpy/leafs/regressionleaf.h</label>
        <link refid="regressionleaf_8h"/>
        <childnode refid="1263" relation="include">
        </childnode>
      </node>
      <node id="1257">
        <label>/Users/classner/git/forpy/include/forpy/forest.h</label>
        <link refid="forest_8h"/>
        <childnode refid="1256" relation="include">
        </childnode>
      </node>
      <node id="1261">
        <label>/Users/classner/git/forpy/include/forpy/leafs/ileaf.h</label>
        <link refid="ileaf_8h"/>
        <childnode refid="1262" relation="include">
        </childnode>
        <childnode refid="1260" relation="include">
        </childnode>
        <childnode refid="1263" relation="include">
        </childnode>
        <childnode refid="1264" relation="include">
        </childnode>
      </node>
      <node id="1254">
        <label>/Users/classner/git/forpy/include/forpy/deciders/fastdecider.h</label>
        <link refid="fastdecider_8h"/>
        <childnode refid="1255" relation="include">
        </childnode>
        <childnode refid="1257" relation="include">
        </childnode>
      </node>
      <node id="1269">
        <label>/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h</label>
        <link refid="ctpl_8h"/>
        <childnode refid="1257" relation="include">
        </childnode>
      </node>
    </invincdepgraph>
    <innerclass refid="structforpy_1_1_tree_desk" prot="public">forpy::TreeDesk</innerclass>
    <innerclass refid="structforpy_1_1_decider_desk" prot="public">forpy::DeciderDesk</innerclass>
    <innerclass refid="structforpy_1_1_leaf_desk" prot="public">forpy::LeafDesk</innerclass>
    <innerclass refid="structforpy_1_1_random_desk" prot="public">forpy::RandomDesk</innerclass>
    <innerclass refid="structforpy_1_1_desk" prot="public">forpy::Desk</innerclass>
    <innernamespace refid="namespaceforpy">forpy</innernamespace>
      <sectiondef kind="define">
      <memberdef kind="define" id="desk_8h_1a57d00c1a425980276c9e352b5b935f47" prot="public" static="no">
        <name>FORPY_UTIL_DESK_H_</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/desk.h" line="4" column="9" bodyfile="/Users/classner/git/forpy/include/forpy/util/desk.h" bodystart="4" bodyend="-1"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <programlisting>
<codeline lineno="1"><highlight class="comment">/*<sp/>Author:<sp/>Christoph<sp/>Lassner.<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="2"><highlight class="normal"></highlight><highlight class="preprocessor">#pragma<sp/>once</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="3"><highlight class="normal"></highlight><highlight class="preprocessor">#ifndef<sp/>FORPY_UTIL_DESK_H_</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="4" refid="desk_8h_1a57d00c1a425980276c9e352b5b935f47" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FORPY_UTIL_DESK_H_</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="5"><highlight class="normal"></highlight></codeline>
<codeline lineno="6"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;../global.h&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="7"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;../types.h&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="8"><highlight class="normal"></highlight></codeline>
<codeline lineno="9"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceforpy" kindref="compound">forpy</ref><sp/>{</highlight></codeline>
<codeline lineno="10"><highlight class="normal"></highlight></codeline>
<codeline lineno="19" refid="structforpy_1_1_tree_desk" refkind="compound"><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structforpy_1_1_tree_desk" kindref="compound">TreeDesk</ref><sp/>{</highlight></codeline>
<codeline lineno="22" refid="structforpy_1_1_tree_desk_1a5812d7a6d8c7cd2891d5089ec06939b6" refkind="member"><highlight class="normal"><sp/><sp/>std::vector&lt;TodoMark&gt;<sp/><ref refid="structforpy_1_1_tree_desk_1a5812d7a6d8c7cd2891d5089ec06939b6" kindref="member">marks</ref>;</highlight></codeline>
<codeline lineno="25" refid="structforpy_1_1_tree_desk_1a8a307628cbb298e90f9e49abd80ff428" refkind="member"><highlight class="normal"><sp/><sp/>std::atomic&lt;size_t&gt;<sp/>*<ref refid="structforpy_1_1_tree_desk_1a8a307628cbb298e90f9e49abd80ff428" kindref="member">stored_in_leafs</ref>;</highlight></codeline>
<codeline lineno="28" refid="structforpy_1_1_tree_desk_1aaeff10e3c9ea00a0fb9be5508972318c" refkind="member"><highlight class="normal"><sp/><sp/>std::atomic&lt;id_t&gt;<sp/>*<ref refid="structforpy_1_1_tree_desk_1aaeff10e3c9ea00a0fb9be5508972318c" kindref="member">next_id_p</ref>;</highlight></codeline>
<codeline lineno="31" refid="structforpy_1_1_tree_desk_1aed4e5f0f634e0196ab107528b593a1a0" refkind="member"><highlight class="normal"><sp/><sp/>std::vector&lt;std::pair&lt;id_t,<sp/>id_t&gt;&gt;<sp/>*<ref refid="structforpy_1_1_tree_desk_1aed4e5f0f634e0196ab107528b593a1a0" kindref="member">tree_p</ref>;</highlight></codeline>
<codeline lineno="32"><highlight class="normal"></highlight></codeline>
<codeline lineno="36" refid="structforpy_1_1_tree_desk_1a051ebc82b146d913b3936a53d365d6b1" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_tree_desk_1a051ebc82b146d913b3936a53d365d6b1" kindref="member">setup</ref>(std::atomic&lt;size_t&gt;<sp/>*silp,<sp/>std::atomic&lt;id_t&gt;<sp/>*np,</highlight></codeline>
<codeline lineno="37"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;std::pair&lt;id_t,<sp/>id_t&gt;&gt;<sp/>*tsp)<sp/>{</highlight></codeline>
<codeline lineno="38"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_tree_desk_1a8a307628cbb298e90f9e49abd80ff428" kindref="member">stored_in_leafs</ref><sp/>=<sp/>silp;</highlight></codeline>
<codeline lineno="39"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_tree_desk_1aaeff10e3c9ea00a0fb9be5508972318c" kindref="member">next_id_p</ref><sp/>=<sp/>np;</highlight></codeline>
<codeline lineno="40"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_tree_desk_1aed4e5f0f634e0196ab107528b593a1a0" kindref="member">tree_p</ref><sp/>=<sp/>tsp;</highlight></codeline>
<codeline lineno="41"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="45" refid="structforpy_1_1_tree_desk_1a7484bf57a80becd00662e478809b906c" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_tree_desk_1a7484bf57a80becd00662e478809b906c" kindref="member">reset</ref>()<sp/>{</highlight></codeline>
<codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_tree_desk_1a5812d7a6d8c7cd2891d5089ec06939b6" kindref="member">marks</ref>.clear();</highlight></codeline>
<codeline lineno="47"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_tree_desk_1a8a307628cbb298e90f9e49abd80ff428" kindref="member">stored_in_leafs</ref><sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="48"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_tree_desk_1aaeff10e3c9ea00a0fb9be5508972318c" kindref="member">next_id_p</ref><sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="49"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_tree_desk_1aed4e5f0f634e0196ab107528b593a1a0" kindref="member">tree_p</ref><sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="50"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="51"><highlight class="normal">};</highlight></codeline>
<codeline lineno="52"><highlight class="normal"></highlight></codeline>
<codeline lineno="61" refid="structforpy_1_1_decider_desk" refkind="compound"><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structforpy_1_1_decider_desk" kindref="compound">DeciderDesk</ref><sp/>{</highlight></codeline>
<codeline lineno="63"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_decider_desk_1ab19a5fd05daaf2ce5cec2829f192dc7d" kindref="member">n_samples</ref>,<sp/><ref refid="structforpy_1_1_decider_desk_1a08788dbdff48299db258606e7148e866" kindref="member">input_dim</ref>,<sp/><ref refid="structforpy_1_1_decider_desk_1aaa993dc50d4f5c643dbd9bf1eb1a400d" kindref="member">annot_dim</ref>;</highlight></codeline>
<codeline lineno="65" refid="structforpy_1_1_decider_desk_1af88aaf6f233898f8010ed7f701437292" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="namespaceforpy_1ad05e34c62859518b61b76b5085e913d8" kindref="member">uint</ref><sp/><ref refid="structforpy_1_1_decider_desk_1af88aaf6f233898f8010ed7f701437292" kindref="member">min_samples_at_leaf</ref>;</highlight></codeline>
<codeline lineno="69" refid="structforpy_1_1_decider_desk_1a5ca0445f4e020ce6c5ccf26ce98b9689" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="namespaceforpy_1a324c9643e02b76477c3a99a48773be8c" kindref="member">id_t</ref><sp/>*<ref refid="structforpy_1_1_decider_desk_1a5ca0445f4e020ce6c5ccf26ce98b9689" kindref="member">elem_id_p</ref>;</highlight></codeline>
<codeline lineno="70" refid="structforpy_1_1_decider_desk_1a418698dd8ddc0133197a42cb99c0b1b8" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="namespaceforpy_1a324c9643e02b76477c3a99a48773be8c" kindref="member">id_t</ref><sp/><ref refid="structforpy_1_1_decider_desk_1a418698dd8ddc0133197a42cb99c0b1b8" kindref="member">start_id</ref>,<sp/><ref refid="structforpy_1_1_decider_desk_1a823359b2c99a81cb17a0e6fd8a593b7e" kindref="member">end_id</ref>,<sp/><ref refid="structforpy_1_1_decider_desk_1a569f8a4264a6e3da560ad8d68ade204d" kindref="member">node_id</ref>;</highlight></codeline>
<codeline lineno="72"></codeline>
<codeline lineno="74"><highlight class="normal"><sp/><sp/><ref refid="namespaceforpy_1a4495acd70bd8943f569d59a85c1f3dce" kindref="member">OptSplitV</ref><sp/><ref refid="structforpy_1_1_decider_desk_1a1eaf994131c6c4aff8a041b5ad3318dd" kindref="member">best_res_v</ref>,<sp/><ref refid="structforpy_1_1_decider_desk_1af36ca3d0dc314cb2a608dbc3525638f6" kindref="member">opt_res_v</ref>;</highlight></codeline>
<codeline lineno="76" refid="structforpy_1_1_decider_desk_1a03b7057714536094e4d88e9ec3958652" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="namespaceforpy_1a324c9643e02b76477c3a99a48773be8c" kindref="member">id_t</ref><sp/><ref refid="structforpy_1_1_decider_desk_1a03b7057714536094e4d88e9ec3958652" kindref="member">best_feat_idx</ref>;</highlight></codeline>
<codeline lineno="77" refid="structforpy_1_1_decider_desk_1ad29ce83263259b931d8e25c3176e58a9" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_decider_desk_1ad29ce83263259b931d8e25c3176e58a9" kindref="member">presorted</ref>,<sp/><ref refid="structforpy_1_1_decider_desk_1aa66c0dd250a898300fbb32cf64f2b3ae" kindref="member">need_sort</ref>;</highlight></codeline>
<codeline lineno="78" refid="structforpy_1_1_decider_desk_1a067e728137a8789b80a3f00e339a3130" refkind="member"><highlight class="normal"><sp/><sp/>std::vector&lt;id_t&gt;<sp/><ref refid="structforpy_1_1_decider_desk_1a067e728137a8789b80a3f00e339a3130" kindref="member">feature_indices</ref>;</highlight></codeline>
<codeline lineno="80"></codeline>
<codeline lineno="82"><highlight class="normal"><sp/><sp/>std::vector&lt;float&gt;<sp/><ref refid="structforpy_1_1_decider_desk_1a0dabf22158bbd785c1e814e315a45371" kindref="member">full_sum</ref>;</highlight></codeline>
<codeline lineno="84" refid="structforpy_1_1_decider_desk_1afb78c569ac35b5f1f752f512ff742821" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>*<ref refid="structforpy_1_1_decider_desk_1afb78c569ac35b5f1f752f512ff742821" kindref="member">full_sum_p</ref>;</highlight></codeline>
<codeline lineno="85" refid="structforpy_1_1_decider_desk_1a39abbb95caaba19580be848cab7722c8" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_decider_desk_1a196ce5d0ca4eea69ed7f54a95842ec3e" kindref="member">fullentropy</ref>,<sp/><ref refid="structforpy_1_1_decider_desk_1a39abbb95caaba19580be848cab7722c8" kindref="member">maxproxy</ref>;</highlight></codeline>
<codeline lineno="86" refid="structforpy_1_1_decider_desk_1aac17158d8bfa77f7f85835eef81d9b02" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>*<ref refid="structforpy_1_1_decider_desk_1aac17158d8bfa77f7f85835eef81d9b02" kindref="member">annot_p</ref>;</highlight></codeline>
<codeline lineno="87" refid="structforpy_1_1_decider_desk_1aaf91595489cfd14a9702a60a862bb164" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="namespaceforpy_1ad05e34c62859518b61b76b5085e913d8" kindref="member">uint</ref><sp/>*<ref refid="structforpy_1_1_decider_desk_1aaf91595489cfd14a9702a60a862bb164" kindref="member">class_annot_p</ref>;</highlight></codeline>
<codeline lineno="88" refid="structforpy_1_1_decider_desk_1a38af5c2d5d27166bf1276109d6e39625" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_decider_desk_1a38af5c2d5d27166bf1276109d6e39625" kindref="member">annot_os</ref>;</highlight></codeline>
<codeline lineno="89" refid="structforpy_1_1_decider_desk_1ade20ff486b173cf28aace9dfba4189ec" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>*<ref refid="structforpy_1_1_decider_desk_1ade20ff486b173cf28aace9dfba4189ec" kindref="member">weights_p</ref>;</highlight></codeline>
<codeline lineno="90" refid="structforpy_1_1_decider_desk_1a2558e362d6f0c6044cd768db9b4087c9" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_decider_desk_1a2558e362d6f0c6044cd768db9b4087c9" kindref="member">full_w</ref>;</highlight></codeline>
<codeline lineno="91" refid="structforpy_1_1_decider_desk_1a1d7b8eaa1248bdc187f78cc4d4e1aea7" refkind="member"><highlight class="normal"><sp/><sp/>std::vector&lt;id_t&gt;<sp/><ref refid="structforpy_1_1_decider_desk_1a1d7b8eaa1248bdc187f78cc4d4e1aea7" kindref="member">sort_perm</ref>;</highlight></codeline>
<codeline lineno="92" refid="structforpy_1_1_decider_desk_1a970b82749031105fbca1db62a9f08ab5" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="namespaceforpy_1a324c9643e02b76477c3a99a48773be8c" kindref="member">id_t</ref><sp/>*<ref refid="structforpy_1_1_decider_desk_1a970b82749031105fbca1db62a9f08ab5" kindref="member">sort_perm_p</ref>;</highlight></codeline>
<codeline lineno="93" refid="structforpy_1_1_decider_desk_1a5891f028b39e17c3c82b786b5456b4bb" refkind="member"><highlight class="normal"><sp/><sp/>std::vector&lt;id_t&gt;<sp/><ref refid="structforpy_1_1_decider_desk_1a5891f028b39e17c3c82b786b5456b4bb" kindref="member">elem_ids_sorted</ref>;</highlight></codeline>
<codeline lineno="94" refid="structforpy_1_1_decider_desk_1a8c830d7c47d3d90781c0e5d430d34587" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="namespaceforpy_1a324c9643e02b76477c3a99a48773be8c" kindref="member">id_t</ref><sp/>*<ref refid="structforpy_1_1_decider_desk_1a8c830d7c47d3d90781c0e5d430d34587" kindref="member">elem_ids_sorted_p</ref>;</highlight></codeline>
<codeline lineno="95" refid="structforpy_1_1_decider_desk_1a9bfd18d87d78b618a8aa29111ef88792" refkind="member"><highlight class="normal"><sp/><sp/>std::vector&lt;float&gt;<sp/><ref refid="structforpy_1_1_decider_desk_1a9bfd18d87d78b618a8aa29111ef88792" kindref="member">feat_values</ref>;</highlight></codeline>
<codeline lineno="96" refid="structforpy_1_1_decider_desk_1a216422cf2a36ceae02c391412f17ef9e" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>*<ref refid="structforpy_1_1_decider_desk_1a216422cf2a36ceae02c391412f17ef9e" kindref="member">feat_p</ref>;</highlight></codeline>
<codeline lineno="97" refid="structforpy_1_1_decider_desk_1a34788fe675f54a6d7b3177a0a02295e3" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="namespaceforpy_1adda502f62d6651edd0837c6b6b0adde1" kindref="member">DataV</ref><sp/><ref refid="structforpy_1_1_decider_desk_1a34788fe675f54a6d7b3177a0a02295e3" kindref="member">class_feat_values</ref>;</highlight></codeline>
<codeline lineno="98" refid="structforpy_1_1_decider_desk_1ac8c1f35d0a6a4e900cdf596ed348c821" refkind="member"><highlight class="normal"><sp/><sp/>std::vector&lt;float&gt;<sp/><ref refid="structforpy_1_1_decider_desk_1ac8c1f35d0a6a4e900cdf596ed348c821" kindref="member">left_sum_vec</ref>;</highlight></codeline>
<codeline lineno="99" refid="structforpy_1_1_decider_desk_1a05fd146b8d9492ac9779227f78f1f3fd" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>*<ref refid="structforpy_1_1_decider_desk_1a05fd146b8d9492ac9779227f78f1f3fd" kindref="member">left_sum_p</ref>;</highlight></codeline>
<codeline lineno="101"></codeline>
<codeline lineno="106"><highlight class="normal"><sp/><sp/>mu::variant&lt;const<sp/>float<sp/>*,<sp/>const<sp/>double<sp/>*,<sp/>const<sp/>uint<sp/>*,<sp/>const<sp/>uint8_t<sp/>*&gt;</highlight></codeline>
<codeline lineno="107" refid="structforpy_1_1_decider_desk_1aa7ab48d0683e1b3a29f8b8182b57787d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_decider_desk_1aa7ab48d0683e1b3a29f8b8182b57787d" kindref="member">full_feat_p_v</ref>;</highlight></codeline>
<codeline lineno="108"><highlight class="normal"></highlight></codeline>
<codeline lineno="110"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_decider_desk_1ac96509bdadf9efb21c3a9a6284675f2c" kindref="member">make_to_leaf</ref>;</highlight></codeline>
<codeline lineno="112"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>These<sp/>only<sp/>contain<sp/>valid<sp/>values<sp/>if<sp/>`make_to_leaf`<sp/>is<sp/>false.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="113" refid="structforpy_1_1_decider_desk_1a73de6ee3d40b2f02955cb2118ee5d391" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="namespaceforpy_1a6249c7b591a277475fb90fd4bde68421" kindref="member">interv_t</ref><sp/><ref refid="structforpy_1_1_decider_desk_1a196058a341b83ddc99b0405b9243bc47" kindref="member">left_int</ref>,<sp/><ref refid="structforpy_1_1_decider_desk_1a73de6ee3d40b2f02955cb2118ee5d391" kindref="member">right_int</ref>;</highlight></codeline>
<codeline lineno="114" refid="structforpy_1_1_decider_desk_1acb035dfaa03d4f0becdf95b0651e9c3c" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="namespaceforpy_1a324c9643e02b76477c3a99a48773be8c" kindref="member">id_t</ref><sp/><ref refid="structforpy_1_1_decider_desk_1a69db9aa3d276008e230e7c916de8e876" kindref="member">left_id</ref>,<sp/><ref refid="structforpy_1_1_decider_desk_1acb035dfaa03d4f0becdf95b0651e9c3c" kindref="member">right_id</ref>;</highlight></codeline>
<codeline lineno="116"></codeline>
<codeline lineno="122" refid="structforpy_1_1_decider_desk_1ac2b5ec11c90d36b685b850619eeadd02" refkind="member"><highlight class="normal"><sp/><sp/>std::vector&lt;size_t&gt;<sp/><ref refid="structforpy_1_1_decider_desk_1ac2b5ec11c90d36b685b850619eeadd02" kindref="member">invalid_counts</ref>;</highlight></codeline>
<codeline lineno="123"><highlight class="normal"></highlight></codeline>
<codeline lineno="127" refid="structforpy_1_1_decider_desk_1aee6bfebfcc0bb5f3ee4b657a954c81cd" refkind="member"><highlight class="normal"><sp/><sp/>std::vector&lt;size_t&gt;<sp/>*<ref refid="structforpy_1_1_decider_desk_1aee6bfebfcc0bb5f3ee4b657a954c81cd" kindref="member">node_to_featsel_p</ref>;</highlight></codeline>
<codeline lineno="131"><highlight class="normal"><sp/><sp/>mu::variant&lt;std::vector&lt;float&gt;,<sp/>std::vector&lt;double&gt;,<sp/>std::vector&lt;uint32_t&gt;,</highlight></codeline>
<codeline lineno="132" refid="structforpy_1_1_decider_desk_1a48c26a3dabc8b622501e37cf17c02fc8" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;uint8_t&gt;&gt;<sp/>*<ref refid="structforpy_1_1_decider_desk_1a48c26a3dabc8b622501e37cf17c02fc8" kindref="member">node_to_thresh_v_p</ref>;</highlight></codeline>
<codeline lineno="133"><highlight class="normal"></highlight></codeline>
<codeline lineno="134" refid="structforpy_1_1_decider_desk_1a84b0c61c2150b464b274b18b928decc3" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_decider_desk_1a84b0c61c2150b464b274b18b928decc3" kindref="member">setup</ref>(</highlight></codeline>
<codeline lineno="135"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;size_t&gt;<sp/>*ntfp,</highlight></codeline>
<codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>mu::variant&lt;std::vector&lt;float&gt;,<sp/>std::vector&lt;double&gt;,</highlight></codeline>
<codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;uint32_t&gt;,<sp/>std::vector&lt;uint8_t&gt;&gt;<sp/>*nttp)<sp/>{</highlight></codeline>
<codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_decider_desk_1aee6bfebfcc0bb5f3ee4b657a954c81cd" kindref="member">node_to_featsel_p</ref><sp/>=<sp/>ntfp;</highlight></codeline>
<codeline lineno="139"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_decider_desk_1a48c26a3dabc8b622501e37cf17c02fc8" kindref="member">node_to_thresh_v_p</ref><sp/>=<sp/>nttp;</highlight></codeline>
<codeline lineno="140"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ntfp<sp/>!=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">)<sp/><ref refid="structforpy_1_1_decider_desk_1ac2b5ec11c90d36b685b850619eeadd02" kindref="member">invalid_counts</ref>.resize(ntfp-&gt;size());</highlight></codeline>
<codeline lineno="141"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="142" refid="structforpy_1_1_decider_desk_1a22a591579b7ffeee3a3cf802ec28a267" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_decider_desk_1a22a591579b7ffeee3a3cf802ec28a267" kindref="member">reset</ref>()<sp/>{</highlight></codeline>
<codeline lineno="143"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_decider_desk_1ab19a5fd05daaf2ce5cec2829f192dc7d" kindref="member">n_samples</ref><sp/>=<sp/><ref refid="structforpy_1_1_decider_desk_1a08788dbdff48299db258606e7148e866" kindref="member">input_dim</ref><sp/>=<sp/><ref refid="structforpy_1_1_decider_desk_1aaa993dc50d4f5c643dbd9bf1eb1a400d" kindref="member">annot_dim</ref><sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="144"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_decider_desk_1af88aaf6f233898f8010ed7f701437292" kindref="member">min_samples_at_leaf</ref><sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="145"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_decider_desk_1a5ca0445f4e020ce6c5ccf26ce98b9689" kindref="member">elem_id_p</ref><sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="146"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_decider_desk_1ade20ff486b173cf28aace9dfba4189ec" kindref="member">weights_p</ref><sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="147"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_decider_desk_1a2558e362d6f0c6044cd768db9b4087c9" kindref="member">full_w</ref><sp/>=<sp/>0.f;</highlight></codeline>
<codeline lineno="148"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_decider_desk_1a418698dd8ddc0133197a42cb99c0b1b8" kindref="member">start_id</ref><sp/>=<sp/><ref refid="structforpy_1_1_decider_desk_1a823359b2c99a81cb17a0e6fd8a593b7e" kindref="member">end_id</ref><sp/>=<sp/><ref refid="structforpy_1_1_decider_desk_1a569f8a4264a6e3da560ad8d68ade204d" kindref="member">node_id</ref><sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="149"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_decider_desk_1aee6bfebfcc0bb5f3ee4b657a954c81cd" kindref="member">node_to_featsel_p</ref><sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="150"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_decider_desk_1a48c26a3dabc8b622501e37cf17c02fc8" kindref="member">node_to_thresh_v_p</ref><sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="151"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_decider_desk_1ac2b5ec11c90d36b685b850619eeadd02" kindref="member">invalid_counts</ref>.clear();</highlight></codeline>
<codeline lineno="152"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="153"><highlight class="normal">};</highlight></codeline>
<codeline lineno="154"><highlight class="normal"></highlight></codeline>
<codeline lineno="162" refid="structforpy_1_1_leaf_desk" refkind="compound"><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structforpy_1_1_leaf_desk" kindref="compound">LeafDesk</ref><sp/>{</highlight></codeline>
<codeline lineno="166" refid="structforpy_1_1_leaf_desk_1a26d7241c866e3ebf42458f721222f234" refkind="member"><highlight class="normal"><sp/><sp/>std::vector&lt;Mat&lt;float&gt;&gt;<sp/>*<ref refid="structforpy_1_1_leaf_desk_1a26d7241c866e3ebf42458f721222f234" kindref="member">leaf_regression_map_p</ref>;</highlight></codeline>
<codeline lineno="167" refid="structforpy_1_1_leaf_desk_1a4e8cdea041b7521529af91c807e4b0d7" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_leaf_desk_1a4e8cdea041b7521529af91c807e4b0d7" kindref="member">setup</ref>(std::vector&lt;<ref refid="namespaceforpy_1a96f4b931f57ef7b106a2137e9b92939c" kindref="member">Mat&lt;float&gt;</ref>&gt;<sp/>*lrmp)<sp/>{</highlight></codeline>
<codeline lineno="168"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_leaf_desk_1a26d7241c866e3ebf42458f721222f234" kindref="member">leaf_regression_map_p</ref><sp/>=<sp/>lrmp;</highlight></codeline>
<codeline lineno="169"><highlight class="normal"><sp/><sp/>};</highlight></codeline>
<codeline lineno="170" refid="structforpy_1_1_leaf_desk_1a57558adac185f9beab0bda6a99bcbc94" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_leaf_desk_1a57558adac185f9beab0bda6a99bcbc94" kindref="member">reset</ref>()<sp/>{<sp/><ref refid="structforpy_1_1_leaf_desk_1a26d7241c866e3ebf42458f721222f234" kindref="member">leaf_regression_map_p</ref><sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;<sp/>}</highlight></codeline>
<codeline lineno="171"><highlight class="normal">};</highlight></codeline>
<codeline lineno="172"><highlight class="normal"></highlight></codeline>
<codeline lineno="181" refid="structforpy_1_1_random_desk" refkind="compound"><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structforpy_1_1_random_desk" kindref="compound">RandomDesk</ref><sp/>{</highlight></codeline>
<codeline lineno="182" refid="structforpy_1_1_random_desk_1a0e390991c7ea155abf693b1ca8ae520a" refkind="member"><highlight class="normal"><sp/><sp/>std::mt19937<sp/><ref refid="structforpy_1_1_random_desk_1a0e390991c7ea155abf693b1ca8ae520a" kindref="member">random_engine</ref>;</highlight></codeline>
<codeline lineno="183" refid="structforpy_1_1_random_desk_1a6976d2208fea4d97eb1fd5190e7109cc" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="namespaceforpy_1ad05e34c62859518b61b76b5085e913d8" kindref="member">uint</ref><sp/><ref refid="structforpy_1_1_random_desk_1a6976d2208fea4d97eb1fd5190e7109cc" kindref="member">seed</ref>;</highlight></codeline>
<codeline lineno="184" refid="structforpy_1_1_random_desk_1a8c1c8d176542e11a48a3e278f8fc754f" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_random_desk_1a8c1c8d176542e11a48a3e278f8fc754f" kindref="member">setup</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="namespaceforpy_1ad05e34c62859518b61b76b5085e913d8" kindref="member">uint</ref><sp/>&amp;<ref refid="structforpy_1_1_random_desk_1a6976d2208fea4d97eb1fd5190e7109cc" kindref="member">seed</ref>)<sp/>{</highlight></codeline>
<codeline lineno="185"><highlight class="normal"><sp/><sp/><sp/><sp/>this-&gt;seed<sp/>=<sp/><ref refid="structforpy_1_1_random_desk_1a6976d2208fea4d97eb1fd5190e7109cc" kindref="member">seed</ref>;</highlight></codeline>
<codeline lineno="186"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_random_desk_1a0e390991c7ea155abf693b1ca8ae520a" kindref="member">random_engine</ref>.seed(<ref refid="structforpy_1_1_random_desk_1a6976d2208fea4d97eb1fd5190e7109cc" kindref="member">seed</ref>);</highlight></codeline>
<codeline lineno="187"><highlight class="normal"><sp/><sp/>};</highlight></codeline>
<codeline lineno="188" refid="structforpy_1_1_random_desk_1aff9d16f55626f7e71e288467ea58228e" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_random_desk_1aff9d16f55626f7e71e288467ea58228e" kindref="member">reset</ref>()<sp/>{</highlight></codeline>
<codeline lineno="189"><highlight class="normal"><sp/><sp/><sp/><sp/>this-&gt;seed<sp/>=<sp/>0;</highlight></codeline>
<codeline lineno="190"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_random_desk_1a0e390991c7ea155abf693b1ca8ae520a" kindref="member">random_engine</ref>.seed(1);</highlight></codeline>
<codeline lineno="191"><highlight class="normal"><sp/><sp/>};</highlight></codeline>
<codeline lineno="192"><highlight class="normal">};</highlight></codeline>
<codeline lineno="193"><highlight class="normal"></highlight></codeline>
<codeline lineno="201" refid="structforpy_1_1_desk" refkind="compound"><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structforpy_1_1_desk" kindref="compound">Desk</ref><sp/>{</highlight></codeline>
<codeline lineno="202" refid="structforpy_1_1_desk_1aaa1b5963dbe76dc61c434d3275a81989" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_desk_1af5bb10adfe824e824c4ad108dad136c3" kindref="member">Desk</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i)<sp/>:<sp/><ref refid="structforpy_1_1_desk_1a8e1bf333701752e44d3394d3401dca08" kindref="member">thread_id</ref>(i){};</highlight></codeline>
<codeline lineno="203"><highlight class="normal"><sp/><sp/><ref refid="structforpy_1_1_tree_desk" kindref="compound">TreeDesk</ref><sp/><ref refid="structforpy_1_1_desk_1aaa1b5963dbe76dc61c434d3275a81989" kindref="member">t</ref>;</highlight></codeline>
<codeline lineno="204" refid="structforpy_1_1_desk_1aec25d1d9346713c92390fd9bf4388dc9" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="structforpy_1_1_decider_desk" kindref="compound">DeciderDesk</ref><sp/><ref refid="structforpy_1_1_desk_1aec25d1d9346713c92390fd9bf4388dc9" kindref="member">d</ref>;</highlight></codeline>
<codeline lineno="205" refid="structforpy_1_1_desk_1a39ddbf291c7471dea542566eedd8d651" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="structforpy_1_1_leaf_desk" kindref="compound">LeafDesk</ref><sp/><ref refid="structforpy_1_1_desk_1a39ddbf291c7471dea542566eedd8d651" kindref="member">l</ref>;</highlight></codeline>
<codeline lineno="206" refid="structforpy_1_1_desk_1a7974bca3a78a25ea3411e5edba8ec29f" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="structforpy_1_1_random_desk" kindref="compound">RandomDesk</ref><sp/><ref refid="structforpy_1_1_desk_1a7974bca3a78a25ea3411e5edba8ec29f" kindref="member">r</ref>;</highlight></codeline>
<codeline lineno="207"><highlight class="normal"></highlight></codeline>
<codeline lineno="208" refid="structforpy_1_1_desk_1a8e1bf333701752e44d3394d3401dca08" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_desk_1a8e1bf333701752e44d3394d3401dca08" kindref="member">thread_id</ref>;</highlight></codeline>
<codeline lineno="209" refid="structforpy_1_1_desk_1a8ced8ea8450cd5b9f0963a62ff5c37cb" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_desk_1a8ced8ea8450cd5b9f0963a62ff5c37cb" kindref="member">setup</ref>(</highlight></codeline>
<codeline lineno="210"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>std::atomic&lt;size_t&gt;<sp/>*stored_in_leaf_p,<sp/>std::atomic&lt;id_t&gt;<sp/>*next_id_p,</highlight></codeline>
<codeline lineno="211"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;std::pair&lt;id_t,<sp/>id_t&gt;&gt;<sp/>*tree_p,</highlight></codeline>
<codeline lineno="212"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;size_t&gt;<sp/>*ntfp<sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="213"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>mu::variant&lt;std::vector&lt;float&gt;,<sp/>std::vector&lt;double&gt;,</highlight></codeline>
<codeline lineno="214"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;uint32_t&gt;,<sp/>std::vector&lt;uint8_t&gt;&gt;<sp/>*nttp<sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">,</highlight></codeline>
<codeline lineno="215"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;<ref refid="namespaceforpy_1a96f4b931f57ef7b106a2137e9b92939c" kindref="member">Mat&lt;float&gt;</ref>&gt;<sp/>*lrmp<sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="namespaceforpy_1ad05e34c62859518b61b76b5085e913d8" kindref="member">uint</ref><sp/>&amp;random_seed<sp/>=<sp/>0)<sp/>{</highlight></codeline>
<codeline lineno="217"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_desk_1aaa1b5963dbe76dc61c434d3275a81989" kindref="member">t</ref>.<ref refid="structforpy_1_1_tree_desk_1a051ebc82b146d913b3936a53d365d6b1" kindref="member">setup</ref>(stored_in_leaf_p,<sp/>next_id_p,<sp/>tree_p);</highlight></codeline>
<codeline lineno="218"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_desk_1aec25d1d9346713c92390fd9bf4388dc9" kindref="member">d</ref>.<ref refid="structforpy_1_1_decider_desk_1a84b0c61c2150b464b274b18b928decc3" kindref="member">setup</ref>(ntfp,<sp/>nttp);</highlight></codeline>
<codeline lineno="219"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_desk_1a39ddbf291c7471dea542566eedd8d651" kindref="member">l</ref>.<ref refid="structforpy_1_1_leaf_desk_1a4e8cdea041b7521529af91c807e4b0d7" kindref="member">setup</ref>(lrmp);</highlight></codeline>
<codeline lineno="220"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_desk_1a7974bca3a78a25ea3411e5edba8ec29f" kindref="member">r</ref>.<ref refid="structforpy_1_1_random_desk_1a8c1c8d176542e11a48a3e278f8fc754f" kindref="member">setup</ref>(random_seed);</highlight></codeline>
<codeline lineno="221"><highlight class="normal"><sp/><sp/>};</highlight></codeline>
<codeline lineno="222" refid="structforpy_1_1_desk_1a2fbf32e58f1d4b04d567962a4f62612e" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_desk_1a2fbf32e58f1d4b04d567962a4f62612e" kindref="member">reset</ref>()<sp/>{</highlight></codeline>
<codeline lineno="223"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_desk_1aaa1b5963dbe76dc61c434d3275a81989" kindref="member">t</ref>.<ref refid="structforpy_1_1_tree_desk_1a7484bf57a80becd00662e478809b906c" kindref="member">reset</ref>();</highlight></codeline>
<codeline lineno="224"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_desk_1aec25d1d9346713c92390fd9bf4388dc9" kindref="member">d</ref>.<ref refid="structforpy_1_1_decider_desk_1a22a591579b7ffeee3a3cf802ec28a267" kindref="member">reset</ref>();</highlight></codeline>
<codeline lineno="225"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_desk_1a39ddbf291c7471dea542566eedd8d651" kindref="member">l</ref>.<ref refid="structforpy_1_1_leaf_desk_1a57558adac185f9beab0bda6a99bcbc94" kindref="member">reset</ref>();</highlight></codeline>
<codeline lineno="226"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="structforpy_1_1_desk_1a7974bca3a78a25ea3411e5edba8ec29f" kindref="member">r</ref>.<ref refid="structforpy_1_1_random_desk_1aff9d16f55626f7e71e288467ea58228e" kindref="member">reset</ref>();</highlight></codeline>
<codeline lineno="227"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="228"><highlight class="normal">};</highlight></codeline>
<codeline lineno="229"><highlight class="normal"></highlight></codeline>
<codeline lineno="230"><highlight class="normal">};<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>namespace<sp/>forpy</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="231"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/><sp/>//<sp/>FORPY_UTIL_DESK_H_</highlight></codeline>
    </programlisting>
    <location file="/Users/classner/git/forpy/include/forpy/util/desk.h"/>
  </compounddef>
</doxygen>
