BayesNet/diagrams/BayesNet.svg

1 line
139 KiB
XML

<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="3205px" preserveAspectRatio="none" style="width:9532px;height:3205px;background:#FFFFFF;" version="1.1" viewBox="0 0 9532 3205" width="9532px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="216" x="4651.25" y="24.9659">clang-uml class diagram model</text><!--class C_0000736965376885623323--><g id="elem_C_0000736965376885623323"><rect codeLine="3" fill="#F0F8FF" height="342.0188" id="C_0000736965376885623323" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="1307" x="4544.5" y="1726.9579"/><ellipse cx="5134.25" cy="1742.9579" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M5133.7188,1749.8798 Q5131.9688,1749.8798 5130.8281,1749.1454 Q5129.7031,1748.3954 5129.1406,1747.0517 Q5128.5938,1745.6923 5128.5938,1743.8954 Q5128.5938,1741.8642 5129.25,1740.411 Q5129.9063,1738.9579 5131.1875,1738.1767 Q5132.4688,1737.3954 5134.3438,1737.3954 Q5135.2344,1737.3954 5135.9063,1737.5829 Q5136.5781,1737.7548 5137.2656,1738.0985 L5136.4531,1740.1142 Q5135.8281,1739.8017 5135.2813,1739.6767 Q5134.75,1739.5517 5134.2656,1739.5517 Q5133.0938,1739.5517 5132.3906,1740.0829 Q5131.6875,1740.6142 5131.3906,1741.5673 Q5131.0938,1742.5204 5131.0938,1743.786 Q5131.0938,1745.8017 5131.8125,1746.7704 Q5132.5313,1747.7235 5134.125,1747.7235 Q5134.7188,1747.7235 5135.3438,1747.5673 Q5135.9688,1747.411 5136.7969,1747.036 L5136.7969,1749.2548 Q5136.0625,1749.5673 5135.2656,1749.7235 Q5134.4844,1749.8798 5133.7188,1749.8798 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="119" x="5154.75" y="1748.3899">bayesnet::Metrics</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="4545.5" x2="5850.5" y1="1758.9579" y2="1758.9579"/><ellipse cx="4555.5" cy="1773.9919" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="162" x="4564.5" y="1777.9239">Metrics() = default : void</text><ellipse cx="4555.5" cy="1793.0598" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="963" x="4564.5" y="1796.9918">Metrics(const torch::Tensor &amp; samples, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, const int classNumStates) : void</text><ellipse cx="4555.5" cy="1812.1277" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1281" x="4564.5" y="1816.0597">Metrics(const std::vector&lt;std::vector&lt;int&gt;&gt; &amp; vsamples, const std::vector&lt;int&gt; &amp; labels, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, const int classNumStates) : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="4545.5" x2="5850.5" y1="1824.1617" y2="1824.1617"/><ellipse cx="4555.5" cy="1839.1956" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="755" x="4564.5" y="1843.1276">SelectKBestWeighted(const torch::Tensor &amp; weights, bool ascending = false, unsigned int k = 0) : std::vector&lt;int&gt;</text><ellipse cx="4555.5" cy="1858.2635" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="418" x="4564.5" y="1862.1955">conditionalEdge(const torch::Tensor &amp; weights) : torch::Tensor</text><ellipse cx="4555.5" cy="1877.3315" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="487" x="4564.5" y="1881.2634">conditionalEdgeWeights(std::vector&lt;float&gt; &amp; weights) : std::vector&lt;float&gt;</text><polygon fill="#FFFF44" points="4555.5,1891.3994,4559.5,1895.3994,4555.5,1899.3994,4551.5,1895.3994" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="537" x="4564.5" y="1900.3314">doCombinations&lt;T&gt;(const std::vector&lt;T&gt; &amp; source) : std::vector&lt;std::pair&lt;T, T&gt; &gt;</text><polygon fill="#FFFF44" points="4555.5,1910.4673,4559.5,1914.4673,4555.5,1918.4673,4551.5,1914.4673" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="523" x="4564.5" y="1919.3993">entropy(const torch::Tensor &amp; feature, const torch::Tensor &amp; weights) : double</text><ellipse cx="4555.5" cy="1934.5352" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="297" x="4564.5" y="1938.4672">getScoresKBest() const : std::vector&lt;double&gt;</text><ellipse cx="4555.5" cy="1953.6031" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="954" x="4564.5" y="1957.5351">maximumSpanningTree(const std::vector&lt;std::string&gt; &amp; features, const torch::Tensor &amp; weights, const int root) : std::vector&lt;std::pair&lt;int,int&gt;&gt;</text><ellipse cx="4555.5" cy="1972.671" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="882" x="4564.5" y="1976.603">mutualInformation(const torch::Tensor &amp; firstFeature, const torch::Tensor &amp; secondFeature, const torch::Tensor &amp; weights) : double</text><polygon fill="#FFFF44" points="4555.5,1986.739,4559.5,1990.739,4555.5,1994.739,4551.5,1990.739" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="230" x="4564.5" y="1995.6709">pop_first&lt;T&gt;(std::vector&lt;T&gt; &amp; v) : T</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="4545.5" x2="5850.5" y1="2003.7729" y2="2003.7729"/><polygon fill="none" points="4555.5,2013.8069,4559.5,2017.8069,4555.5,2021.8069,4551.5,2017.8069" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="154" x="4564.5" y="2022.7389">className : std::string</text><polygon fill="none" points="4555.5,2032.8748,4559.5,2036.8748,4555.5,2040.8748,4551.5,2036.8748" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="223" x="4564.5" y="2041.8068">features : std::vector&lt;std::string&gt;</text><polygon fill="none" points="4555.5,2051.9427,4559.5,2055.9427,4555.5,2059.9427,4551.5,2055.9427" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="157" x="4564.5" y="2060.8747">samples : torch::Tensor</text></g><!--class C_0001303524929067080934--><g id="elem_C_0001303524929067080934"><rect codeLine="23" fill="#F0F8FF" height="361.0867" id="C_0001303524929067080934" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="1060" x="3856" y="2837.0079"/><ellipse cx="4329.25" cy="2853.0079" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M4328.7188,2859.9298 Q4326.9688,2859.9298 4325.8281,2859.1954 Q4324.7031,2858.4454 4324.1406,2857.1017 Q4323.5938,2855.7423 4323.5938,2853.9454 Q4323.5938,2851.9142 4324.25,2850.461 Q4324.9063,2849.0079 4326.1875,2848.2267 Q4327.4688,2847.4454 4329.3438,2847.4454 Q4330.2344,2847.4454 4330.9063,2847.6329 Q4331.5781,2847.8048 4332.2656,2848.1485 L4331.4531,2850.1642 Q4330.8281,2849.8517 4330.2813,2849.7267 Q4329.75,2849.6017 4329.2656,2849.6017 Q4328.0938,2849.6017 4327.3906,2850.1329 Q4326.6875,2850.6642 4326.3906,2851.6173 Q4326.0938,2852.5704 4326.0938,2853.836 Q4326.0938,2855.8517 4326.8125,2856.8204 Q4327.5313,2857.7735 4329.125,2857.7735 Q4329.7188,2857.7735 4330.3438,2857.6173 Q4330.9688,2857.461 4331.7969,2857.086 L4331.7969,2859.3048 Q4331.0625,2859.6173 4330.2656,2859.7735 Q4329.4844,2859.9298 4328.7188,2859.9298 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="4349.75" y="2858.4399">bayesnet::Node</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="3857" x2="4915" y1="2869.0079" y2="2869.0079"/><ellipse cx="3867" cy="2884.0419" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="207" x="3876" y="2887.9739">Node(const std::string &amp;) : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="3857" x2="4915" y1="2896.0758" y2="2896.0758"/><ellipse cx="3867" cy="2911.1098" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="157" x="3876" y="2915.0418">addChild(Node *) : void</text><ellipse cx="3867" cy="2930.1777" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="166" x="3876" y="2934.1097">addParent(Node *) : void</text><ellipse cx="3867" cy="2949.2456" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="81" x="3876" y="2953.1776">clear() : void</text><ellipse cx="3867" cy="2968.3135" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1034" x="3876" y="2972.2455">computeCPT(const torch::Tensor &amp; dataset, const std::vector&lt;std::string&gt; &amp; features, const double laplaceSmoothing, const torch::Tensor &amp; weights) : void</text><ellipse cx="3867" cy="2987.3815" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="170" x="3876" y="2991.3134">getCPT() : torch::Tensor &amp;</text><ellipse cx="3867" cy="3006.4494" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="248" x="3876" y="3010.3814">getChildren() : std::vector&lt;Node *&gt; &amp;</text><ellipse cx="3867" cy="3025.5173" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="330" x="3876" y="3029.4493">getFactorValue(std::map&lt;std::string,int&gt; &amp;) : float</text><ellipse cx="3867" cy="3044.5852" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="191" x="3876" y="3048.5172">getName() const : std::string</text><ellipse cx="3867" cy="3063.6531" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="174" x="3876" y="3067.5851">getNumStates() const : int</text><ellipse cx="3867" cy="3082.721" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="241" x="3876" y="3086.653">getParents() : std::vector&lt;Node *&gt; &amp;</text><ellipse cx="3867" cy="3101.789" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="409" x="3876" y="3105.7209">graph(const std::string &amp; clasName) : std::vector&lt;std::string&gt;</text><ellipse cx="3867" cy="3120.8569" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="151" x="3876" y="3124.7889">minFill() : unsigned int</text><ellipse cx="3867" cy="3139.9248" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="181" x="3876" y="3143.8568">removeChild(Node *) : void</text><ellipse cx="3867" cy="3158.9927" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="190" x="3876" y="3162.9247">removeParent(Node *) : void</text><ellipse cx="3867" cy="3178.0606" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="160" x="3876" y="3181.9926">setNumStates(int) : void</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="3857" x2="4915" y1="3190.0946" y2="3190.0946"/></g><!--class C_0001186707649890429575--><g id="elem_C_0001186707649890429575"><rect codeLine="44" fill="#F0F8FF" height="628.0375" id="C_0001186707649890429575" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="1753" x="3602.5" y="2129.9779"/><ellipse cx="4412.25" cy="2145.9779" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M4411.7188,2152.8998 Q4409.9688,2152.8998 4408.8281,2152.1654 Q4407.7031,2151.4154 4407.1406,2150.0717 Q4406.5938,2148.7123 4406.5938,2146.9154 Q4406.5938,2144.8842 4407.25,2143.431 Q4407.9063,2141.9779 4409.1875,2141.1967 Q4410.4688,2140.4154 4412.3438,2140.4154 Q4413.2344,2140.4154 4413.9063,2140.6029 Q4414.5781,2140.7748 4415.2656,2141.1185 L4414.4531,2143.1342 Q4413.8281,2142.8217 4413.2813,2142.6967 Q4412.75,2142.5717 4412.2656,2142.5717 Q4411.0938,2142.5717 4410.3906,2143.1029 Q4409.6875,2143.6342 4409.3906,2144.5873 Q4409.0938,2145.5404 4409.0938,2146.806 Q4409.0938,2148.8217 4409.8125,2149.7904 Q4410.5313,2150.7435 4412.125,2150.7435 Q4412.7188,2150.7435 4413.3438,2150.5873 Q4413.9688,2150.431 4414.7969,2150.056 L4414.7969,2152.2748 Q4414.0625,2152.5873 4413.2656,2152.7435 Q4412.4844,2152.8998 4411.7188,2152.8998 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="125" x="4432.75" y="2151.4099">bayesnet::Network</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="3603.5" x2="5354.5" y1="2161.9779" y2="2161.9779"/><ellipse cx="3613.5" cy="2177.0119" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="104" x="3622.5" y="2180.9439">Network() : void</text><ellipse cx="3613.5" cy="2196.0798" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="134" x="3622.5" y="2200.0118">Network(float) : void</text><ellipse cx="3613.5" cy="2215.1477" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="214" x="3622.5" y="2219.0797">Network(const Network &amp;) : void</text><ellipse cx="3613.5" cy="2234.2156" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="176" x="3622.5" y="2238.1476">~Network() = default : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="3603.5" x2="5354.5" y1="2246.2496" y2="2246.2496"/><ellipse cx="3613.5" cy="2261.2835" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="362" x="3622.5" y="2265.2155">addEdge(const std::string &amp;, const std::string &amp;) : void</text><ellipse cx="3613.5" cy="2280.3515" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="233" x="3622.5" y="2284.2834">addNode(const std::string &amp;) : void</text><ellipse cx="3613.5" cy="2299.4194" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="196" x="3622.5" y="2303.3514">dump_cpt() const : std::string</text><ellipse cx="3613.5" cy="2318.4873" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1356" x="3622.5" y="2322.4193">fit(const torch::Tensor &amp; samples, const torch::Tensor &amp; weights, const std::vector&lt;std::string&gt; &amp; featureNames, const std::string &amp; className, const std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states) : void</text><ellipse cx="3613.5" cy="2337.5552" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1470" x="3622.5" y="2341.4872">fit(const torch::Tensor &amp; X, const torch::Tensor &amp; y, const torch::Tensor &amp; weights, const std::vector&lt;std::string&gt; &amp; featureNames, const std::string &amp; className, const std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states) : void</text><ellipse cx="3613.5" cy="2356.6231" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1727" x="3622.5" y="2360.5551">fit(const std::vector&lt;std::vector&lt;int&gt;&gt; &amp; input_data, const std::vector&lt;int&gt; &amp; labels, const std::vector&lt;double&gt; &amp; weights, const std::vector&lt;std::string&gt; &amp; featureNames, const std::string &amp; className, const std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states) : void</text><ellipse cx="3613.5" cy="2375.691" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="226" x="3622.5" y="2379.623">getClassName() const : std::string</text><ellipse cx="3613.5" cy="2394.759" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="209" x="3622.5" y="2398.6909">getClassNumStates() const : int</text><ellipse cx="3613.5" cy="2413.8269" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="423" x="3622.5" y="2417.7589">getEdges() const : std::vector&lt;std::pair&lt;std::string,std::string&gt;&gt;</text><ellipse cx="3613.5" cy="2432.8948" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="295" x="3622.5" y="2436.8268">getFeatures() const : std::vector&lt;std::string&gt;</text><ellipse cx="3613.5" cy="2451.9627" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="195" x="3622.5" y="2455.8947">getMaxThreads() const : float</text><ellipse cx="3613.5" cy="2471.0306" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="402" x="3622.5" y="2474.9626">getNodes() : std::map&lt;std::string,std::unique_ptr&lt;Node&gt;&gt; &amp;</text><ellipse cx="3613.5" cy="2490.0985" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="174" x="3622.5" y="2494.0305">getNumEdges() const : int</text><ellipse cx="3613.5" cy="2509.1665" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="202" x="3622.5" y="2513.0984">getSamples() : torch::Tensor &amp;</text><ellipse cx="3613.5" cy="2528.2344" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="141" x="3622.5" y="2532.1664">getStates() const : int</text><ellipse cx="3613.5" cy="2547.3023" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="409" x="3622.5" y="2551.2343">graph(const std::string &amp; title) const : std::vector&lt;std::string&gt;</text><ellipse cx="3613.5" cy="2566.3702" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="3622.5" y="2570.3022">initialize() : void</text><ellipse cx="3613.5" cy="2585.4381" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="416" x="3622.5" y="2589.3701">predict(const std::vector&lt;std::vector&lt;int&gt;&gt; &amp;) : std::vector&lt;int&gt;</text><ellipse cx="3613.5" cy="2604.506" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="300" x="3622.5" y="2608.438">predict(const torch::Tensor &amp;) : torch::Tensor</text><ellipse cx="3613.5" cy="2623.574" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="577" x="3622.5" y="2627.5059">predict_proba(const std::vector&lt;std::vector&lt;int&gt;&gt; &amp;) : std::vector&lt;std::vector&lt;double&gt;&gt;</text><ellipse cx="3613.5" cy="2642.6419" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="346" x="3622.5" y="2646.5739">predict_proba(const torch::Tensor &amp;) : torch::Tensor</text><ellipse cx="3613.5" cy="2661.7098" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="530" x="3622.5" y="2665.6418">predict_tensor(const torch::Tensor &amp; samples, const bool proba) : torch::Tensor</text><ellipse cx="3613.5" cy="2680.7777" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="513" x="3622.5" y="2684.7097">score(const std::vector&lt;std::vector&lt;int&gt;&gt; &amp;, const std::vector&lt;int&gt; &amp;) : double</text><ellipse cx="3613.5" cy="2699.8456" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="250" x="3622.5" y="2703.7776">show() const : std::vector&lt;std::string&gt;</text><ellipse cx="3613.5" cy="2718.9135" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="281" x="3622.5" y="2722.8455">topological_sort() : std::vector&lt;std::string&gt;</text><ellipse cx="3613.5" cy="2737.9815" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="138" x="3622.5" y="2741.9134">version() : std::string</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="3603.5" x2="5354.5" y1="2750.0154" y2="2750.0154"/></g><!--class C_0000738420730783851375--><g id="elem_C_0000738420730783851375"><rect codeLine="79" fill="#F1F1F1" height="105.2038" id="C_0000738420730783851375" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="153" x="1286.5" y="1845.3579"/><ellipse cx="1301.5" cy="1861.3579" fill="#EB937F" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1297.8594,1867.8579 L1297.8594,1855.7173 L1305.5156,1855.7173 L1305.5156,1857.8423 L1300.2344,1857.8423 L1300.2344,1860.4985 L1305.25,1860.4985 L1305.25,1862.6235 L1300.2344,1862.6235 L1300.2344,1865.7329 L1305.5156,1865.7329 L1305.5156,1867.8579 L1297.8594,1867.8579 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="121" x="1315.5" y="1866.7899">bayesnet::status_t</text><line style="stroke:#181818;stroke-width:0.5;" x1="1287.5" x2="1438.5" y1="1877.3579" y2="1877.3579"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="60" x="1292.5" y="1896.3239">NORMAL</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="68" x="1292.5" y="1915.3918">WARNING</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="46" x="1292.5" y="1934.4597">ERROR</text><line style="stroke:#181818;stroke-width:0.5;" x1="1287.5" x2="1438.5" y1="1942.5617" y2="1942.5617"/></g><!--class C_0000327135989451974539--><g id="elem_C_0000327135989451974539"><rect codeLine="85" fill="#F0F8FF" height="551.7658" id="C_0000327135989451974539" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="1274" x="1956" y="56.5979"/><ellipse cx="2513.75" cy="72.5979" fill="#A9DCDF" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M2508.9219,78.3479 L2512.2656,66.1604 L2515.4063,66.1604 L2518.7813,78.3479 L2516.3125,78.3479 L2515.5781,75.3323 L2512.0625,75.3323 L2511.3125,78.3479 L2508.9219,78.3479 Z M2513.3281,70.301 L2512.5781,73.301 L2515.0938,73.301 L2514.375,70.301 Q2514.2344,69.7229 2514.1094,69.176 Q2513.9844,68.6135 2513.8438,68.0354 Q2513.7344,68.6135 2513.5938,69.176 Q2513.4531,69.7229 2513.3281,70.301 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="150" x="2534.25" y="78.0299">bayesnet::BaseClassifier</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="1957" x2="3229" y1="88.5979" y2="88.5979"/><ellipse cx="1967" cy="103.6319" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="214" x="1976" y="107.5639">~BaseClassifier() = default : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="1957" x2="3229" y1="115.6658" y2="115.6658"/><ellipse cx="1967" cy="130.6998" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="206" x="1976" y="134.6318">dump_cpt() const = 0 : std::string</text><ellipse cx="1967" cy="149.7677" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="1130" x="1976" y="153.6997">fit(torch::Tensor &amp; X, torch::Tensor &amp; y, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states) = 0 : BaseClassifier &amp;</text><ellipse cx="1967" cy="168.8356" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="1055" x="1976" y="172.7676">fit(torch::Tensor &amp; dataset, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states) = 0 : BaseClassifier &amp;</text><ellipse cx="1967" cy="187.9035" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="1248" x="1976" y="191.8355">fit(torch::Tensor &amp; dataset, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states, const torch::Tensor &amp; weights) = 0 : BaseClassifier &amp;</text><ellipse cx="1967" cy="206.9715" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="1244" x="1976" y="210.9034">fit(std::vector&lt;std::vector&lt;int&gt;&gt; &amp; X, std::vector&lt;int&gt; &amp; y, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states) = 0 : BaseClassifier &amp;</text><ellipse cx="1967" cy="226.0394" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="218" x="1976" y="229.9714">getClassNumStates() const = 0 : int</text><ellipse cx="1967" cy="245.1073" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="283" x="1976" y="249.0393">getNotes() const = 0 : std::vector&lt;std::string&gt;</text><ellipse cx="1967" cy="264.1752" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="219" x="1976" y="268.1072">getNumberOfEdges() const = 0 : int</text><ellipse cx="1967" cy="283.2431" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="222" x="1976" y="287.1751">getNumberOfNodes() const = 0 : int</text><ellipse cx="1967" cy="302.311" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="221" x="1976" y="306.243">getNumberOfStates() const = 0 : int</text><ellipse cx="1967" cy="321.379" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="189" x="1976" y="325.3109">getStatus() const = 0 : status_t</text><ellipse cx="1967" cy="340.4469" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="362" x="1976" y="344.3789">getValidHyperparameters() : std::vector&lt;std::string&gt; &amp;</text><ellipse cx="1967" cy="359.5148" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="175" x="1976" y="363.4468">getVersion() = 0 : std::string</text><ellipse cx="1967" cy="378.5827" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="434" x="1976" y="382.5147">graph(const std::string &amp; title = "") const = 0 : std::vector&lt;std::string&gt;</text><ellipse cx="1967" cy="397.6506" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="392" x="1976" y="401.5826">predict(std::vector&lt;std::vector&lt;int&gt;&gt; &amp; X) = 0 : std::vector&lt;int&gt;</text><ellipse cx="1967" cy="416.7185" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="278" x="1976" y="420.6505">predict(torch::Tensor &amp; X) = 0 : torch::Tensor</text><ellipse cx="1967" cy="435.7865" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="544" x="1976" y="439.7184">predict_proba(std::vector&lt;std::vector&lt;int&gt;&gt; &amp; X) = 0 : std::vector&lt;std::vector&lt;double&gt;&gt;</text><ellipse cx="1967" cy="454.8544" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="322" x="1976" y="458.7864">predict_proba(torch::Tensor &amp; X) = 0 : torch::Tensor</text><ellipse cx="1967" cy="473.9223" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="442" x="1976" y="477.8543">score(std::vector&lt;std::vector&lt;int&gt;&gt; &amp; X, std::vector&lt;int&gt; &amp; y) = 0 : float</text><ellipse cx="1967" cy="492.9902" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="328" x="1976" y="496.9222">score(torch::Tensor &amp; X, torch::Tensor &amp; y) = 0 : float</text><ellipse cx="1967" cy="512.0581" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="461" x="1976" y="515.9901">setHyperparameters(const nlohmann::json &amp; hyperparameters) = 0 : void</text><ellipse cx="1967" cy="531.126" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="259" x="1976" y="535.058">show() const = 0 : std::vector&lt;std::string&gt;</text><ellipse cx="1967" cy="550.194" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="302" x="1976" y="554.1259">topological_order() = 0 : std::vector&lt;std::string&gt;</text><polygon fill="#FFFF44" points="1967,564.2619,1971,568.2619,1967,572.2619,1963,568.2619" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="326" x="1976" y="573.1939">trainModel(const torch::Tensor &amp; weights) = 0 : void</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="1957" x2="3229" y1="581.2958" y2="581.2958"/><polygon fill="none" points="1967,591.3298,1971,595.3298,1967,599.3298,1963,595.3298" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="317" x="1976" y="600.2618">validHyperparameters : std::vector&lt;std::string&gt;</text></g><!--class C_0002043996622900301644--><g id="elem_C_0002043996622900301644"><rect codeLine="116" fill="#F0F8FF" height="799.6488" id="C_0002043996622900301644" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="1304" x="3146" y="696.8979"/><ellipse cx="3733.25" cy="712.8979" fill="#A9DCDF" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M3728.4219,718.6479 L3731.7656,706.4604 L3734.9063,706.4604 L3738.2813,718.6479 L3735.8125,718.6479 L3735.0781,715.6323 L3731.5625,715.6323 L3730.8125,718.6479 L3728.4219,718.6479 Z M3732.8281,710.601 L3732.0781,713.601 L3734.5938,713.601 L3733.875,710.601 Q3733.7344,710.0229 3733.6094,709.476 Q3733.4844,708.9135 3733.3438,708.3354 Q3733.2344,708.9135 3733.0938,709.476 Q3732.9531,710.0229 3732.8281,710.601 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="121" x="3753.75" y="718.3299">bayesnet::Classifier</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="3147" x2="4449" y1="728.8979" y2="728.8979"/><ellipse cx="3157" cy="743.9319" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="212" x="3166" y="747.8639">Classifier(Network model) : void</text><ellipse cx="3157" cy="762.9998" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="182" x="3166" y="766.9318">~Classifier() = default : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="3147" x2="4449" y1="775.0338" y2="775.0338"/><ellipse cx="3157" cy="790.0677" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="117" x="3166" y="793.9997">addNodes() : void</text><polygon fill="#FFFF44" points="3157,804.1356,3161,808.1356,3157,812.1356,3153,808.1356" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="248" x="3166" y="813.0676">buildDataset(torch::Tensor &amp; y) : void</text><polygon fill="#FFFF44" points="3157,823.2035,3161,827.2035,3157,831.2035,3153,827.2035" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="327" x="3166" y="832.1355">buildModel(const torch::Tensor &amp; weights) = 0 : void</text><polygon fill="#FFFF44" points="3157,842.2715,3161,846.2715,3157,850.2715,3153,846.2715" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="179" x="3166" y="851.2034">checkFitParameters() : void</text><ellipse cx="3157" cy="866.3394" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="196" x="3166" y="870.2714">dump_cpt() const : std::string</text><ellipse cx="3157" cy="885.4073" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1150" x="3166" y="889.3393">fit(torch::Tensor &amp; X, torch::Tensor &amp; y, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states) : Classifier &amp;</text><ellipse cx="3157" cy="904.4752" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1266" x="3166" y="908.4072">fit(std::vector&lt;std::vector&lt;int&gt;&gt; &amp; X, std::vector&lt;int&gt; &amp; y, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states) : Classifier &amp;</text><ellipse cx="3157" cy="923.5431" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1070" x="3166" y="927.4751">fit(torch::Tensor &amp; dataset, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states) : Classifier &amp;</text><ellipse cx="3157" cy="942.611" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1278" x="3166" y="946.543">fit(torch::Tensor &amp; dataset, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states, const torch::Tensor &amp; weights) : Classifier &amp;</text><ellipse cx="3157" cy="961.679" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="209" x="3166" y="965.6109">getClassNumStates() const : int</text><ellipse cx="3157" cy="980.7469" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="276" x="3166" y="984.6789">getNotes() const : std::vector&lt;std::string&gt;</text><ellipse cx="3157" cy="999.8148" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="213" x="3166" y="1003.7468">getNumberOfEdges() const : int</text><ellipse cx="3157" cy="1018.8827" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="215" x="3166" y="1022.8147">getNumberOfNodes() const : int</text><ellipse cx="3157" cy="1037.9506" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="213" x="3166" y="1041.8826">getNumberOfStates() const : int</text><ellipse cx="3157" cy="1057.0185" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="176" x="3166" y="1060.9505">getStatus() const : status_t</text><ellipse cx="3157" cy="1076.0865" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="161" x="3166" y="1080.0184">getVersion() : std::string</text><ellipse cx="3157" cy="1095.1544" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="388" x="3166" y="1099.0864">predict(std::vector&lt;std::vector&lt;int&gt;&gt; &amp; X) : std::vector&lt;int&gt;</text><ellipse cx="3157" cy="1114.2223" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="272" x="3166" y="1118.1543">predict(torch::Tensor &amp; X) : torch::Tensor</text><ellipse cx="3157" cy="1133.2902" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="549" x="3166" y="1137.2222">predict_proba(std::vector&lt;std::vector&lt;int&gt;&gt; &amp; X) : std::vector&lt;std::vector&lt;double&gt;&gt;</text><ellipse cx="3157" cy="1152.3581" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="318" x="3166" y="1156.2901">predict_proba(torch::Tensor &amp; X) : torch::Tensor</text><ellipse cx="3157" cy="1171.426" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="323" x="3166" y="1175.358">score(torch::Tensor &amp; X, torch::Tensor &amp; y) : float</text><ellipse cx="3157" cy="1190.494" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="439" x="3166" y="1194.4259">score(std::vector&lt;std::vector&lt;int&gt;&gt; &amp; X, std::vector&lt;int&gt; &amp; y) : float</text><ellipse cx="3157" cy="1209.5619" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="466" x="3166" y="1213.4939">setHyperparameters(const nlohmann::json &amp; hyperparameters) : void</text><ellipse cx="3157" cy="1228.6298" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="250" x="3166" y="1232.5618">show() const : std::vector&lt;std::string&gt;</text><ellipse cx="3157" cy="1247.6977" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="292" x="3166" y="1251.6297">topological_order() : std::vector&lt;std::string&gt;</text><polygon fill="#FFFF44" points="3157,1261.7656,3161,1265.7656,3157,1269.7656,3153,1265.7656" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="322" x="3166" y="1270.6976">trainModel(const torch::Tensor &amp; weights) : void</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="3147" x2="4449" y1="1278.7996" y2="1278.7996"/><polygon fill="none" points="3157,1288.8335,3161,1292.8335,3157,1296.8335,3153,1292.8335" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="154" x="3166" y="1297.7655">className : std::string</text><polygon fill="none" points="3157,1307.9015,3161,1311.9015,3157,1315.9015,3153,1311.9015" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="151" x="3166" y="1316.8334">dataset : torch::Tensor</text><polygon fill="none" points="3157,1326.9694,3161,1330.9694,3157,1334.9694,3153,1330.9694" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="223" x="3166" y="1335.9014">features : std::vector&lt;std::string&gt;</text><polygon fill="none" points="3157,1346.0373,3161,1350.0373,3157,1354.0373,3153,1350.0373" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="77" x="3166" y="1354.9693">fitted : bool</text><polygon fill="none" points="3157,1365.1052,3161,1369.1052,3157,1373.1052,3153,1369.1052" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="111" x="3166" y="1374.0372">m : unsigned int</text><polygon fill="none" points="3157,1384.1731,3161,1388.1731,3157,1392.1731,3153,1388.1731" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="112" x="3166" y="1393.1051">metrics : Metrics</text><polygon fill="none" points="3157,1403.241,3161,1407.241,3157,1411.241,3153,1407.241" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="110" x="3166" y="1412.173">model : Network</text><polygon fill="none" points="3157,1422.309,3161,1426.309,3157,1430.309,3153,1426.309" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="107" x="3166" y="1431.2409">n : unsigned int</text><polygon fill="none" points="3157,1441.3769,3161,1445.3769,3157,1449.3769,3153,1445.3769" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="204" x="3166" y="1450.3089">notes : std::vector&lt;std::string&gt;</text><polygon fill="none" points="3157,1460.4448,3161,1464.4448,3157,1468.4448,3153,1464.4448" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="304" x="3166" y="1469.3768">states : std::map&lt;std::string,std::vector&lt;int&gt;&gt;</text><polygon fill="none" points="3157,1479.5127,3161,1483.5127,3157,1487.5127,3153,1483.5127" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="3166" y="1488.4447">status : status_t</text></g><!--class C_0001112865019015250005--><g id="elem_C_0001112865019015250005"><rect codeLine="160" fill="#F0F8FF" height="151.3396" id="C_0001112865019015250005" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="503" x="2012.5" y="1822.2979"/><ellipse cx="2211.25" cy="1838.2979" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M2210.7188,1845.2198 Q2208.9688,1845.2198 2207.8281,1844.4854 Q2206.7031,1843.7354 2206.1406,1842.3917 Q2205.5938,1841.0323 2205.5938,1839.2354 Q2205.5938,1837.2042 2206.25,1835.751 Q2206.9063,1834.2979 2208.1875,1833.5167 Q2209.4688,1832.7354 2211.3438,1832.7354 Q2212.2344,1832.7354 2212.9063,1832.9229 Q2213.5781,1833.0948 2214.2656,1833.4385 L2213.4531,1835.4542 Q2212.8281,1835.1417 2212.2813,1835.0167 Q2211.75,1834.8917 2211.2656,1834.8917 Q2210.0938,1834.8917 2209.3906,1835.4229 Q2208.6875,1835.9542 2208.3906,1836.9073 Q2208.0938,1837.8604 2208.0938,1839.126 Q2208.0938,1841.1417 2208.8125,1842.1104 Q2209.5313,1843.0635 2211.125,1843.0635 Q2211.7188,1843.0635 2212.3438,1842.9073 Q2212.9688,1842.751 2213.7969,1842.376 L2213.7969,1844.5948 Q2213.0625,1844.9073 2212.2656,1845.0635 Q2211.4844,1845.2198 2210.7188,1845.2198 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="97" x="2231.75" y="1843.7299">bayesnet::KDB</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="2013.5" x2="2514.5" y1="1854.2979" y2="1854.2979"/><ellipse cx="2023.5" cy="1869.3319" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="226" x="2032.5" y="1873.2639">KDB(int k, float theta = 0.03) : void</text><ellipse cx="2023.5" cy="1888.3998" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="148" x="2032.5" y="1892.3318">~KDB() = default : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="2013.5" x2="2514.5" y1="1900.4338" y2="1900.4338"/><polygon fill="#FFFF44" points="2023.5,1910.4677,2027.5,1914.4677,2023.5,1918.4677,2019.5,1914.4677" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="325" x="2032.5" y="1919.3997">buildModel(const torch::Tensor &amp; weights) : void</text><ellipse cx="2023.5" cy="1934.5356" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="477" x="2032.5" y="1938.4676">graph(const std::string &amp; name = "KDB") const : std::vector&lt;std::string&gt;</text><ellipse cx="2023.5" cy="1953.6035" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="472" x="2032.5" y="1957.5355">setHyperparameters(const nlohmann::json &amp; hyperparameters_) : void</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="2013.5" x2="2514.5" y1="1965.6375" y2="1965.6375"/></g><!--class C_0001760994424884323017--><g id="elem_C_0001760994424884323017"><rect codeLine="170" fill="#F0F8FF" height="132.2717" id="C_0001760994424884323017" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="503" x="1474.5" y="1831.8279"/><ellipse cx="1673.25" cy="1847.8279" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1672.7188,1854.7498 Q1670.9688,1854.7498 1669.8281,1854.0154 Q1668.7031,1853.2654 1668.1406,1851.9217 Q1667.5938,1850.5623 1667.5938,1848.7654 Q1667.5938,1846.7342 1668.25,1845.281 Q1668.9063,1843.8279 1670.1875,1843.0467 Q1671.4688,1842.2654 1673.3438,1842.2654 Q1674.2344,1842.2654 1674.9063,1842.4529 Q1675.5781,1842.6248 1676.2656,1842.9685 L1675.4531,1844.9842 Q1674.8281,1844.6717 1674.2813,1844.5467 Q1673.75,1844.4217 1673.2656,1844.4217 Q1672.0938,1844.4217 1671.3906,1844.9529 Q1670.6875,1845.4842 1670.3906,1846.4373 Q1670.0938,1847.3904 1670.0938,1848.656 Q1670.0938,1850.6717 1670.8125,1851.6404 Q1671.5313,1852.5935 1673.125,1852.5935 Q1673.7188,1852.5935 1674.3438,1852.4373 Q1674.9688,1852.281 1675.7969,1851.906 L1675.7969,1854.1248 Q1675.0625,1854.4373 1674.2656,1854.5935 Q1673.4844,1854.7498 1672.7188,1854.7498 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="97" x="1693.75" y="1853.2599">bayesnet::TAN</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="1475.5" x2="1976.5" y1="1863.8279" y2="1863.8279"/><ellipse cx="1485.5" cy="1878.8619" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="76" x="1494.5" y="1882.7939">TAN() : void</text><ellipse cx="1485.5" cy="1897.9298" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="148" x="1494.5" y="1901.8618">~TAN() = default : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="1475.5" x2="1976.5" y1="1909.9638" y2="1909.9638"/><polygon fill="#FFFF44" points="1485.5,1919.9977,1489.5,1923.9977,1485.5,1927.9977,1481.5,1923.9977" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="325" x="1494.5" y="1928.9297">buildModel(const torch::Tensor &amp; weights) : void</text><ellipse cx="1485.5" cy="1944.0656" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="477" x="1494.5" y="1947.9976">graph(const std::string &amp; name = "TAN") const : std::vector&lt;std::string&gt;</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="1475.5" x2="1976.5" y1="1956.0996" y2="1956.0996"/></g><!--class C_0002219995589162262979--><g id="elem_C_0002219995589162262979"><rect codeLine="179" fill="#F0F8FF" height="227.6113" id="C_0002219995589162262979" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="953" x="2550.5" y="1784.1579"/><ellipse cx="2959.25" cy="1800.1579" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M2958.7188,1807.0798 Q2956.9688,1807.0798 2955.8281,1806.3454 Q2954.7031,1805.5954 2954.1406,1804.2517 Q2953.5938,1802.8923 2953.5938,1801.0954 Q2953.5938,1799.0642 2954.25,1797.611 Q2954.9063,1796.1579 2956.1875,1795.3767 Q2957.4688,1794.5954 2959.3438,1794.5954 Q2960.2344,1794.5954 2960.9063,1794.7829 Q2961.5781,1794.9548 2962.2656,1795.2985 L2961.4531,1797.3142 Q2960.8281,1797.0017 2960.2813,1796.8767 Q2959.75,1796.7517 2959.2656,1796.7517 Q2958.0938,1796.7517 2957.3906,1797.2829 Q2956.6875,1797.8142 2956.3906,1798.7673 Q2956.0938,1799.7204 2956.0938,1800.986 Q2956.0938,1803.0017 2956.8125,1803.9704 Q2957.5313,1804.9235 2959.125,1804.9235 Q2959.7188,1804.9235 2960.3438,1804.7673 Q2960.9688,1804.611 2961.7969,1804.236 L2961.7969,1806.4548 Q2961.0625,1806.7673 2960.2656,1806.9235 Q2959.4844,1807.0798 2958.7188,1807.0798 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="127" x="2979.75" y="1805.5899">bayesnet::Proposal</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="2551.5" x2="3502.5" y1="1816.1579" y2="1816.1579"/><ellipse cx="2561.5" cy="1831.1919" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="690" x="2570.5" y="1835.1239">Proposal(torch::Tensor &amp; pDataset, std::vector&lt;std::string&gt; &amp; features_, std::string &amp; className_) : void</text><ellipse cx="2561.5" cy="1850.2598" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="114" x="2570.5" y="1854.1918">~Proposal() : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="2551.5" x2="3502.5" y1="1862.2938" y2="1862.2938"/><polygon fill="#FFFF44" points="2561.5,1872.3277,2565.5,1876.3277,2561.5,1880.3277,2557.5,1876.3277" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="440" x="2570.5" y="1881.2597">checkInput(const torch::Tensor &amp; X, const torch::Tensor &amp; y) : void</text><polygon fill="#FFFF44" points="2561.5,1891.3956,2565.5,1895.3956,2561.5,1899.3956,2557.5,1895.3956" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="574" x="2570.5" y="1900.3276">fit_local_discretization(const torch::Tensor &amp; y) : std::map&lt;std::string,std::vector&lt;int&gt;&gt;</text><polygon fill="#FFFF44" points="2561.5,1910.4635,2565.5,1914.4635,2561.5,1918.4635,2557.5,1914.4635" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="927" x="2570.5" y="1919.3955">localDiscretizationProposal(const std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states, Network &amp; model) : std::map&lt;std::string,std::vector&lt;int&gt;&gt;</text><polygon fill="#FFFF44" points="2561.5,1929.5315,2565.5,1933.5315,2561.5,1937.5315,2557.5,1933.5315" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="286" x="2570.5" y="1938.4634">prepareX(torch::Tensor &amp; X) : torch::Tensor</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="2551.5" x2="3502.5" y1="1946.5654" y2="1946.5654"/><polygon fill="none" points="2561.5,1956.5994,2565.5,1960.5994,2561.5,1964.5994,2557.5,1960.5994" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="114" x="2570.5" y="1965.5314">Xf : torch::Tensor</text><polygon fill="none" points="2561.5,1975.6673,2565.5,1979.6673,2561.5,1983.6673,2557.5,1979.6673" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="336" x="2570.5" y="1984.5993">discretizers : map&lt;std::string,mdlp::CPPFImdlp *&gt;</text><polygon fill="none" points="2561.5,1994.7352,2565.5,1998.7352,2561.5,2002.7352,2557.5,1998.7352" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="108" x="2570.5" y="2003.6672">y : torch::Tensor</text></g><!--class C_0001668829096702037834--><g id="elem_C_0001668829096702037834"><rect codeLine="193" fill="#F0F8FF" height="170.4075" id="C_0001668829096702037834" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="1158" x="7" y="2358.7879"/><ellipse cx="525.25" cy="2374.7879" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M524.7188,2381.7098 Q522.9688,2381.7098 521.8281,2380.9754 Q520.7031,2380.2254 520.1406,2378.8817 Q519.5938,2377.5223 519.5938,2375.7254 Q519.5938,2373.6942 520.25,2372.241 Q520.9063,2370.7879 522.1875,2370.0067 Q523.4688,2369.2254 525.3438,2369.2254 Q526.2344,2369.2254 526.9063,2369.4129 Q527.5781,2369.5848 528.2656,2369.9285 L527.4531,2371.9442 Q526.8281,2371.6317 526.2813,2371.5067 Q525.75,2371.3817 525.2656,2371.3817 Q524.0938,2371.3817 523.3906,2371.9129 Q522.6875,2372.4442 522.3906,2373.3973 Q522.0938,2374.3504 522.0938,2375.616 Q522.0938,2377.6317 522.8125,2378.6004 Q523.5313,2379.5535 525.125,2379.5535 Q525.7188,2379.5535 526.3438,2379.3973 Q526.9688,2379.241 527.7969,2378.866 L527.7969,2381.0848 Q527.0625,2381.3973 526.2656,2381.5535 Q525.4844,2381.7098 524.7188,2381.7098 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="113" x="545.75" y="2380.2199">bayesnet::TANLd</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="8" x2="1164" y1="2390.7879" y2="2390.7879"/><ellipse cx="18" cy="2405.8219" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="92" x="27" y="2409.7539">TANLd() : void</text><ellipse cx="18" cy="2424.8898" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="164" x="27" y="2428.8218">~TANLd() = default : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="8" x2="1164" y1="2436.9238" y2="2436.9238"/><ellipse cx="18" cy="2451.9577" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1132" x="27" y="2455.8897">fit(torch::Tensor &amp; X, torch::Tensor &amp; y, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states) : TANLd &amp;</text><ellipse cx="18" cy="2471.0256" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="477" x="27" y="2474.9576">graph(const std::string &amp; name = "TAN") const : std::vector&lt;std::string&gt;</text><ellipse cx="18" cy="2490.0935" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="272" x="27" y="2494.0255">predict(torch::Tensor &amp; X) : torch::Tensor</text><ellipse cx="18" cy="2509.1615" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="138" x="27" y="2513.0934">version() : std::string</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="8" x2="1164" y1="2521.1954" y2="2521.1954"/></g><!--class C_0001695326193250580823--><g id="elem_C_0001695326193250580823"><rect codeLine="204" fill="#F0F8FF" height="380.1546" id="C_0001695326193250580823" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="1394" x="6623" y="2253.9179"/><ellipse cx="7241.75" cy="2269.9179" fill="#A9DCDF" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M7236.9219,2275.6679 L7240.2656,2263.4804 L7243.4063,2263.4804 L7246.7813,2275.6679 L7244.3125,2275.6679 L7243.5781,2272.6523 L7240.0625,2272.6523 L7239.3125,2275.6679 L7236.9219,2275.6679 Z M7241.3281,2267.621 L7240.5781,2270.621 L7243.0938,2270.621 L7242.375,2267.621 Q7242.2344,2267.0429 7242.1094,2266.496 Q7241.9844,2265.9335 7241.8438,2265.3554 Q7241.7344,2265.9335 7241.5938,2266.496 Q7241.4531,2267.0429 7241.3281,2267.621 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="148" x="7262.25" y="2275.3499">bayesnet::FeatureSelect</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="6624" x2="8016" y1="2285.9179" y2="2285.9179"/><ellipse cx="6634" cy="2300.9519" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1368" x="6643" y="2304.8839">FeatureSelect(const torch::Tensor &amp; samples, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, const int maxFeatures, const int classNumStates, const torch::Tensor &amp; weights) : void</text><ellipse cx="6634" cy="2320.0198" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="147" x="6643" y="2323.9518">~FeatureSelect() : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="6624" x2="8016" y1="2332.0538" y2="2332.0538"/><polygon fill="#FFFF44" points="6634,2342.0877,6638,2346.0877,6634,2350.0877,6630,2346.0877" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="186" x="6643" y="2351.0197">computeMeritCFS() : double</text><polygon fill="#FFFF44" points="6634,2361.1556,6638,2365.1556,6634,2369.1556,6630,2365.1556" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="350" x="6643" y="2370.0876">computeSuFeatures(const int a, const int b) : double</text><polygon fill="#FFFF44" points="6634,2380.2235,6638,2384.2235,6634,2388.2235,6630,2384.2235" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="167" x="6643" y="2389.1555">computeSuLabels() : void</text><ellipse cx="6634" cy="2404.2915" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="84" x="6643" y="2408.2234">fit() = 0 : void</text><ellipse cx="6634" cy="2423.3594" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="244" x="6643" y="2427.2914">getFeatures() const : std::vector&lt;int&gt;</text><ellipse cx="6634" cy="2442.4273" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="259" x="6643" y="2446.3593">getScores() const : std::vector&lt;double&gt;</text><polygon fill="#FFFF44" points="6634,2456.4952,6638,2460.4952,6634,2464.4952,6630,2460.4952" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="6643" y="2465.4272">initialize() : void</text><polygon fill="#FFFF44" points="6634,2475.5631,6638,2479.5631,6634,2483.5631,6630,2479.5631" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="296" x="6643" y="2484.4951">symmetricalUncertainty(int a, int b) : double</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="6624" x2="8016" y1="2492.5971" y2="2492.5971"/><polygon fill="none" points="6634,2502.631,6638,2506.631,6634,2510.631,6630,2506.631" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="77" x="6643" y="2511.563">fitted : bool</text><polygon fill="none" points="6634,2521.699,6638,2525.699,6634,2529.699,6630,2525.699" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="116" x="6643" y="2530.6309">maxFeatures : int</text><polygon fill="none" points="6634,2540.7669,6638,2544.7669,6634,2548.7669,6630,2544.7669" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="230" x="6643" y="2549.6989">selectedFeatures : std::vector&lt;int&gt;</text><polygon fill="none" points="6634,2559.8348,6638,2563.8348,6634,2567.8348,6630,2563.8348" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="245" x="6643" y="2568.7668">selectedScores : std::vector&lt;double&gt;</text><polygon fill="none" points="6634,2578.9027,6638,2582.9027,6634,2586.9027,6630,2582.9027" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="324" x="6643" y="2587.8347">suFeatures : std::map&lt;std::pair&lt;int,int&gt;,double&gt;</text><polygon fill="none" points="6634,2597.9706,6638,2601.9706,6634,2605.9706,6630,2601.9706" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="204" x="6643" y="2606.9026">suLabels : std::vector&lt;double&gt;</text><polygon fill="none" points="6634,2617.0385,6638,2621.0385,6634,2625.0385,6630,2621.0385" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="208" x="6643" y="2625.9705">weights : const torch::Tensor &amp;</text></g><!--class C_0000011627355691342494--><g id="elem_C_0000011627355691342494"><rect codeLine="226" fill="#F0F8FF" height="113.2038" id="C_0000011627355691342494" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="1327" x="8198.5" y="2960.9479"/><ellipse cx="8811.25" cy="2976.9479" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M8810.7188,2983.8698 Q8808.9688,2983.8698 8807.8281,2983.1354 Q8806.7031,2982.3854 8806.1406,2981.0417 Q8805.5938,2979.6823 8805.5938,2977.8854 Q8805.5938,2975.8542 8806.25,2974.401 Q8806.9063,2972.9479 8808.1875,2972.1667 Q8809.4688,2971.3854 8811.3438,2971.3854 Q8812.2344,2971.3854 8812.9063,2971.5729 Q8813.5781,2971.7448 8814.2656,2972.0885 L8813.4531,2974.1042 Q8812.8281,2973.7917 8812.2813,2973.6667 Q8811.75,2973.5417 8811.2656,2973.5417 Q8810.0938,2973.5417 8809.3906,2974.0729 Q8808.6875,2974.6042 8808.3906,2975.5573 Q8808.0938,2976.5104 8808.0938,2977.776 Q8808.0938,2979.7917 8808.8125,2980.7604 Q8809.5313,2981.7135 8811.125,2981.7135 Q8811.7188,2981.7135 8812.3438,2981.5573 Q8812.9688,2981.401 8813.7969,2981.026 L8813.7969,2983.2448 Q8813.0625,2983.5573 8812.2656,2983.7135 Q8811.4844,2983.8698 8810.7188,2983.8698 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="93" x="8831.75" y="2982.3799">bayesnet::CFS</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="8199.5" x2="9524.5" y1="2992.9479" y2="2992.9479"/><ellipse cx="8209.5" cy="3007.9819" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1301" x="8218.5" y="3011.9139">CFS(const torch::Tensor &amp; samples, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, const int maxFeatures, const int classNumStates, const torch::Tensor &amp; weights) : void</text><ellipse cx="8209.5" cy="3027.0498" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="80" x="8218.5" y="3030.9818">~CFS() : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="8199.5" x2="9524.5" y1="3039.0838" y2="3039.0838"/><ellipse cx="8209.5" cy="3054.1177" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="62" x="8218.5" y="3058.0497">fit() : void</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="8199.5" x2="9524.5" y1="3066.1517" y2="3066.1517"/></g><!--class C_0000144682015341746929--><g id="elem_C_0000144682015341746929"><rect codeLine="234" fill="#F0F8FF" height="113.2038" id="C_0000144682015341746929" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="1499" x="5128.5" y="2960.9479"/><ellipse cx="5823.25" cy="2976.9479" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M5822.7188,2983.8698 Q5820.9688,2983.8698 5819.8281,2983.1354 Q5818.7031,2982.3854 5818.1406,2981.0417 Q5817.5938,2979.6823 5817.5938,2977.8854 Q5817.5938,2975.8542 5818.25,2974.401 Q5818.9063,2972.9479 5820.1875,2972.1667 Q5821.4688,2971.3854 5823.3438,2971.3854 Q5824.2344,2971.3854 5824.9063,2971.5729 Q5825.5781,2971.7448 5826.2656,2972.0885 L5825.4531,2974.1042 Q5824.8281,2973.7917 5824.2813,2973.6667 Q5823.75,2973.5417 5823.2656,2973.5417 Q5822.0938,2973.5417 5821.3906,2974.0729 Q5820.6875,2974.6042 5820.3906,2975.5573 Q5820.0938,2976.5104 5820.0938,2977.776 Q5820.0938,2979.7917 5820.8125,2980.7604 Q5821.5313,2981.7135 5823.125,2981.7135 Q5823.7188,2981.7135 5824.3438,2981.5573 Q5824.9688,2981.401 5825.7969,2981.026 L5825.7969,2983.2448 Q5825.0625,2983.5573 5824.2656,2983.7135 Q5823.4844,2983.8698 5822.7188,2983.8698 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101" x="5843.75" y="2982.3799">bayesnet::FCBF</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="5129.5" x2="6626.5" y1="2992.9479" y2="2992.9479"/><ellipse cx="5139.5" cy="3007.9819" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1473" x="5148.5" y="3011.9139">FCBF(const torch::Tensor &amp; samples, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, const int maxFeatures, const int classNumStates, const torch::Tensor &amp; weights, const double threshold) : void</text><ellipse cx="5139.5" cy="3027.0498" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="88" x="5148.5" y="3030.9818">~FCBF() : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="5129.5" x2="6626.5" y1="3039.0838" y2="3039.0838"/><ellipse cx="5139.5" cy="3054.1177" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="62" x="5148.5" y="3058.0497">fit() : void</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="5129.5" x2="6626.5" y1="3066.1517" y2="3066.1517"/></g><!--class C_0000008268514674428553--><g id="elem_C_0000008268514674428553"><rect codeLine="242" fill="#F0F8FF" height="113.2038" id="C_0000008268514674428553" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="1501" x="6662.5" y="2960.9479"/><ellipse cx="7357.25" cy="2976.9479" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M7356.7188,2983.8698 Q7354.9688,2983.8698 7353.8281,2983.1354 Q7352.7031,2982.3854 7352.1406,2981.0417 Q7351.5938,2979.6823 7351.5938,2977.8854 Q7351.5938,2975.8542 7352.25,2974.401 Q7352.9063,2972.9479 7354.1875,2972.1667 Q7355.4688,2971.3854 7357.3438,2971.3854 Q7358.2344,2971.3854 7358.9063,2971.5729 Q7359.5781,2971.7448 7360.2656,2972.0885 L7359.4531,2974.1042 Q7358.8281,2973.7917 7358.2813,2973.6667 Q7357.75,2973.5417 7357.2656,2973.5417 Q7356.0938,2973.5417 7355.3906,2974.0729 Q7354.6875,2974.6042 7354.3906,2975.5573 Q7354.0938,2976.5104 7354.0938,2977.776 Q7354.0938,2979.7917 7354.8125,2980.7604 Q7355.5313,2981.7135 7357.125,2981.7135 Q7357.7188,2981.7135 7358.3438,2981.5573 Q7358.9688,2981.401 7359.7969,2981.026 L7359.7969,2983.2448 Q7359.0625,2983.5573 7358.2656,2983.7135 Q7357.4844,2983.8698 7356.7188,2983.8698 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="103" x="7377.75" y="2982.3799">bayesnet::IWSS</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="6663.5" x2="8162.5" y1="2992.9479" y2="2992.9479"/><ellipse cx="6673.5" cy="3007.9819" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1475" x="6682.5" y="3011.9139">IWSS(const torch::Tensor &amp; samples, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, const int maxFeatures, const int classNumStates, const torch::Tensor &amp; weights, const double threshold) : void</text><ellipse cx="6673.5" cy="3027.0498" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="90" x="6682.5" y="3030.9818">~IWSS() : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="6663.5" x2="8162.5" y1="3039.0838" y2="3039.0838"/><ellipse cx="6673.5" cy="3054.1177" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="62" x="6682.5" y="3058.0497">fit() : void</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="6663.5" x2="8162.5" y1="3066.1517" y2="3066.1517"/></g><!--class C_0000512022813807538451--><g id="elem_C_0000512022813807538451"><rect codeLine="250" fill="#F0F8FF" height="132.2717" id="C_0000512022813807538451" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="520" x="3538" y="1831.8279"/><ellipse cx="3736.75" cy="1847.8279" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M3736.2188,1854.7498 Q3734.4688,1854.7498 3733.3281,1854.0154 Q3732.2031,1853.2654 3731.6406,1851.9217 Q3731.0938,1850.5623 3731.0938,1848.7654 Q3731.0938,1846.7342 3731.75,1845.281 Q3732.4063,1843.8279 3733.6875,1843.0467 Q3734.9688,1842.2654 3736.8438,1842.2654 Q3737.7344,1842.2654 3738.4063,1842.4529 Q3739.0781,1842.6248 3739.7656,1842.9685 L3738.9531,1844.9842 Q3738.3281,1844.6717 3737.7813,1844.5467 Q3737.25,1844.4217 3736.7656,1844.4217 Q3735.5938,1844.4217 3734.8906,1844.9529 Q3734.1875,1845.4842 3733.8906,1846.4373 Q3733.5938,1847.3904 3733.5938,1848.656 Q3733.5938,1850.6717 3734.3125,1851.6404 Q3735.0313,1852.5935 3736.625,1852.5935 Q3737.2188,1852.5935 3737.8438,1852.4373 Q3738.4688,1852.281 3739.2969,1851.906 L3739.2969,1854.1248 Q3738.5625,1854.4373 3737.7656,1854.5935 Q3736.9844,1854.7498 3736.2188,1854.7498 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="114" x="3757.25" y="1853.2599">bayesnet::SPODE</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="3539" x2="4057" y1="1863.8279" y2="1863.8279"/><ellipse cx="3549" cy="1878.8619" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="142" x="3558" y="1882.7939">SPODE(int root) : void</text><ellipse cx="3549" cy="1897.9298" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="165" x="3558" y="1901.8618">~SPODE() = default : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="3539" x2="4057" y1="1909.9638" y2="1909.9638"/><polygon fill="#FFFF44" points="3549,1919.9977,3553,1923.9977,3549,1927.9977,3545,1923.9977" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="325" x="3558" y="1928.9297">buildModel(const torch::Tensor &amp; weights) : void</text><ellipse cx="3549" cy="1944.0656" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="494" x="3558" y="1947.9976">graph(const std::string &amp; name = "SPODE") const : std::vector&lt;std::string&gt;</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="3539" x2="4057" y1="1956.0996" y2="1956.0996"/></g><!--class C_0001985241386355360576--><g id="elem_C_0001985241386355360576"><rect codeLine="259" fill="#F0F8FF" height="570.8338" id="C_0001985241386355360576" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="637" x="5651.5" y="47.0679"/><ellipse cx="5898.25" cy="63.0679" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M5897.7188,69.9898 Q5895.9688,69.9898 5894.8281,69.2554 Q5893.7031,68.5054 5893.1406,67.1617 Q5892.5938,65.8023 5892.5938,64.0054 Q5892.5938,61.9742 5893.25,60.521 Q5893.9063,59.0679 5895.1875,58.2867 Q5896.4688,57.5054 5898.3438,57.5054 Q5899.2344,57.5054 5899.9063,57.6929 Q5900.5781,57.8648 5901.2656,58.2085 L5900.4531,60.2242 Q5899.8281,59.9117 5899.2813,59.7867 Q5898.75,59.6617 5898.2656,59.6617 Q5897.0938,59.6617 5896.3906,60.1929 Q5895.6875,60.7242 5895.3906,61.6773 Q5895.0938,62.6304 5895.0938,63.896 Q5895.0938,65.9117 5895.8125,66.8804 Q5896.5313,67.8335 5898.125,67.8335 Q5898.7188,67.8335 5899.3438,67.6773 Q5899.9688,67.521 5900.7969,67.146 L5900.7969,69.3648 Q5900.0625,69.6773 5899.2656,69.8335 Q5898.4844,69.9898 5897.7188,69.9898 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="135" x="5918.75" y="68.4999">bayesnet::Ensemble</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="5652.5" x2="6287.5" y1="79.0679" y2="79.0679"/><ellipse cx="5662.5" cy="94.1019" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="287" x="5671.5" y="98.0339">Ensemble(bool predict_voting = true) : void</text><ellipse cx="5662.5" cy="113.1698" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="186" x="5671.5" y="117.1018">~Ensemble() = default : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="5652.5" x2="6287.5" y1="125.2038" y2="125.2038"/><polygon fill="#FFFF44" points="5662.5,135.2377,5666.5,139.2377,5662.5,143.2377,5658.5,139.2377" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="491" x="5671.5" y="144.1697">compute_arg_max(std::vector&lt;std::vector&lt;double&gt;&gt; &amp; X) : std::vector&lt;int&gt;</text><polygon fill="#FFFF44" points="5662.5,154.3056,5666.5,158.3056,5662.5,162.3056,5658.5,158.3056" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="346" x="5671.5" y="163.2376">compute_arg_max(torch::Tensor &amp; X) : torch::Tensor</text><ellipse cx="5662.5" cy="178.3735" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="196" x="5671.5" y="182.3055">dump_cpt() const : std::string</text><ellipse cx="5662.5" cy="197.4415" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="213" x="5671.5" y="201.3734">getNumberOfEdges() const : int</text><ellipse cx="5662.5" cy="216.5094" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="215" x="5671.5" y="220.4414">getNumberOfNodes() const : int</text><ellipse cx="5662.5" cy="235.5773" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="213" x="5671.5" y="239.5093">getNumberOfStates() const : int</text><ellipse cx="5662.5" cy="254.6452" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="409" x="5671.5" y="258.5772">graph(const std::string &amp; title) const : std::vector&lt;std::string&gt;</text><ellipse cx="5662.5" cy="273.7131" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="388" x="5671.5" y="277.6451">predict(std::vector&lt;std::vector&lt;int&gt;&gt; &amp; X) : std::vector&lt;int&gt;</text><ellipse cx="5662.5" cy="292.781" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="272" x="5671.5" y="296.713">predict(torch::Tensor &amp; X) : torch::Tensor</text><polygon fill="#FFFF44" points="5662.5,306.849,5666.5,310.849,5662.5,314.849,5658.5,310.849" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="378" x="5671.5" y="315.7809">predict_average_proba(torch::Tensor &amp; X) : torch::Tensor</text><polygon fill="#FFFF44" points="5662.5,325.9169,5666.5,329.9169,5662.5,333.9169,5658.5,329.9169" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="609" x="5671.5" y="334.8489">predict_average_proba(std::vector&lt;std::vector&lt;int&gt;&gt; &amp; X) : std::vector&lt;std::vector&lt;double&gt;&gt;</text><polygon fill="#FFFF44" points="5662.5,344.9848,5666.5,348.9848,5662.5,352.9848,5658.5,348.9848" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="380" x="5671.5" y="353.9168">predict_average_voting(torch::Tensor &amp; X) : torch::Tensor</text><polygon fill="#FFFF44" points="5662.5,364.0527,5666.5,368.0527,5662.5,372.0527,5658.5,368.0527" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="611" x="5671.5" y="372.9847">predict_average_voting(std::vector&lt;std::vector&lt;int&gt;&gt; &amp; X) : std::vector&lt;std::vector&lt;double&gt;&gt;</text><ellipse cx="5662.5" cy="388.1206" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="549" x="5671.5" y="392.0526">predict_proba(std::vector&lt;std::vector&lt;int&gt;&gt; &amp; X) : std::vector&lt;std::vector&lt;double&gt;&gt;</text><ellipse cx="5662.5" cy="407.1885" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="318" x="5671.5" y="411.1205">predict_proba(torch::Tensor &amp; X) : torch::Tensor</text><ellipse cx="5662.5" cy="426.2565" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="439" x="5671.5" y="430.1884">score(std::vector&lt;std::vector&lt;int&gt;&gt; &amp; X, std::vector&lt;int&gt; &amp; y) : float</text><ellipse cx="5662.5" cy="445.3244" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="323" x="5671.5" y="449.2564">score(torch::Tensor &amp; X, torch::Tensor &amp; y) : float</text><ellipse cx="5662.5" cy="464.3923" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="250" x="5671.5" y="468.3243">show() const : std::vector&lt;std::string&gt;</text><ellipse cx="5662.5" cy="483.4602" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="292" x="5671.5" y="487.3922">topological_order() : std::vector&lt;std::string&gt;</text><polygon fill="#FFFF44" points="5662.5,497.5281,5666.5,501.5281,5662.5,505.5281,5658.5,501.5281" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="322" x="5671.5" y="506.4601">trainModel(const torch::Tensor &amp; weights) : void</text><polygon fill="#FFFF44" points="5662.5,516.596,5666.5,520.596,5662.5,524.596,5658.5,520.596" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="293" x="5671.5" y="525.528">voting(torch::Tensor &amp; votes) : torch::Tensor</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="5652.5" x2="6287.5" y1="533.63" y2="533.63"/><polygon fill="none" points="5662.5,543.664,5666.5,547.664,5662.5,551.664,5658.5,547.664" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="328" x="5671.5" y="552.5959">models : std::vector&lt;std::unique_ptr&lt;Classifier&gt;&gt;</text><polygon fill="none" points="5662.5,562.7319,5666.5,566.7319,5662.5,570.7319,5658.5,566.7319" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="162" x="5671.5" y="571.6639">n_models : unsigned int</text><polygon fill="none" points="5662.5,581.7998,5666.5,585.7998,5662.5,589.7998,5658.5,585.7998" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="137" x="5671.5" y="590.7318">predict_voting : bool</text><polygon fill="none" points="5662.5,600.8677,5666.5,604.8677,5662.5,608.8677,5658.5,604.8677" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="275" x="5671.5" y="609.7997">significanceModels : std::vector&lt;double&gt;</text></g><!--class C_0001186398587753535158--><g id="elem_C_0001186398587753535158"><rect codeLine="291" fill="#F0F8FF" height="105.2038" id="C_0001186398587753535158" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="257" x="711.5" y="279.8779"/><ellipse cx="726.5" cy="295.8779" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M725.9688,302.7998 Q724.2188,302.7998 723.0781,302.0654 Q721.9531,301.3154 721.3906,299.9717 Q720.8438,298.6123 720.8438,296.8154 Q720.8438,294.7842 721.5,293.331 Q722.1563,291.8779 723.4375,291.0967 Q724.7188,290.3154 726.5938,290.3154 Q727.4844,290.3154 728.1563,290.5029 Q728.8281,290.6748 729.5156,291.0185 L728.7031,293.0342 Q728.0781,292.7217 727.5313,292.5967 Q727,292.4717 726.5156,292.4717 Q725.3438,292.4717 724.6406,293.0029 Q723.9375,293.5342 723.6406,294.4873 Q723.3438,295.4404 723.3438,296.706 Q723.3438,298.7217 724.0625,299.6904 Q724.7813,300.6435 726.375,300.6435 Q726.9688,300.6435 727.5938,300.4873 Q728.2188,300.331 729.0469,299.956 L729.0469,302.1748 Q728.3125,302.4873 727.5156,302.6435 Q726.7344,302.7998 725.9688,302.7998 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="225" x="740.5" y="301.3099">bayesnet::(anonymous_45089536)</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="712.5" x2="967.5" y1="311.8779" y2="311.8779"/><line style="stroke:#0000FF;stroke-width:0.5;" x1="712.5" x2="967.5" y1="319.8779" y2="319.8779"/><ellipse cx="722.5" cy="334.9119" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="731.5" y="338.8439">CFS : std::string</text><ellipse cx="722.5" cy="353.9798" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="113" x="731.5" y="357.9118">FCBF : std::string</text><ellipse cx="722.5" cy="373.0477" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115" x="731.5" y="376.9797">IWSS : std::string</text></g><!--class C_0000602764946063116717--><g id="elem_C_0000602764946063116717"><rect codeLine="298" fill="#F0F8FF" height="105.2038" id="C_0000602764946063116717" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="257" x="1003.5" y="279.8779"/><ellipse cx="1018.5" cy="295.8779" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1017.9688,302.7998 Q1016.2188,302.7998 1015.0781,302.0654 Q1013.9531,301.3154 1013.3906,299.9717 Q1012.8438,298.6123 1012.8438,296.8154 Q1012.8438,294.7842 1013.5,293.331 Q1014.1563,291.8779 1015.4375,291.0967 Q1016.7188,290.3154 1018.5938,290.3154 Q1019.4844,290.3154 1020.1563,290.5029 Q1020.8281,290.6748 1021.5156,291.0185 L1020.7031,293.0342 Q1020.0781,292.7217 1019.5313,292.5967 Q1019,292.4717 1018.5156,292.4717 Q1017.3438,292.4717 1016.6406,293.0029 Q1015.9375,293.5342 1015.6406,294.4873 Q1015.3438,295.4404 1015.3438,296.706 Q1015.3438,298.7217 1016.0625,299.6904 Q1016.7813,300.6435 1018.375,300.6435 Q1018.9688,300.6435 1019.5938,300.4873 Q1020.2188,300.331 1021.0469,299.956 L1021.0469,302.1748 Q1020.3125,302.4873 1019.5156,302.6435 Q1018.7344,302.7998 1017.9688,302.7998 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="225" x="1032.5" y="301.3099">bayesnet::(anonymous_45090163)</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="1004.5" x2="1259.5" y1="311.8779" y2="311.8779"/><line style="stroke:#0000FF;stroke-width:0.5;" x1="1004.5" x2="1259.5" y1="319.8779" y2="319.8779"/><ellipse cx="1014.5" cy="334.9119" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="107" x="1023.5" y="338.8439">ASC : std::string</text><ellipse cx="1014.5" cy="353.9798" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="116" x="1023.5" y="357.9118">DESC : std::string</text><ellipse cx="1014.5" cy="373.0477" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="120" x="1023.5" y="376.9797">RAND : std::string</text></g><!--class C_0000358471592399852382--><g id="elem_C_0000358471592399852382"><rect codeLine="305" fill="#F0F8FF" height="170.4075" id="C_0000358471592399852382" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="538" x="6269" y="1526.5479"/><ellipse cx="6461.75" cy="1542.5479" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M6461.2188,1549.4698 Q6459.4688,1549.4698 6458.3281,1548.7354 Q6457.2031,1547.9854 6456.6406,1546.6417 Q6456.0938,1545.2823 6456.0938,1543.4854 Q6456.0938,1541.4542 6456.75,1540.001 Q6457.4063,1538.5479 6458.6875,1537.7667 Q6459.9688,1536.9854 6461.8438,1536.9854 Q6462.7344,1536.9854 6463.4063,1537.1729 Q6464.0781,1537.3448 6464.7656,1537.6885 L6463.9531,1539.7042 Q6463.3281,1539.3917 6462.7813,1539.2667 Q6462.25,1539.1417 6461.7656,1539.1417 Q6460.5938,1539.1417 6459.8906,1539.6729 Q6459.1875,1540.2042 6458.8906,1541.1573 Q6458.5938,1542.1104 6458.5938,1543.376 Q6458.5938,1545.3917 6459.3125,1546.3604 Q6460.0313,1547.3135 6461.625,1547.3135 Q6462.2188,1547.3135 6462.8438,1547.1573 Q6463.4688,1547.001 6464.2969,1546.626 L6464.2969,1548.8448 Q6463.5625,1549.1573 6462.7656,1549.3135 Q6461.9844,1549.4698 6461.2188,1549.4698 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="144" x="6482.25" y="1547.9799">bayesnet::BoostAODE</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="6270" x2="6806" y1="1558.5479" y2="1558.5479"/><ellipse cx="6280" cy="1573.5819" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="300" x="6289" y="1577.5139">BoostAODE(bool predict_voting = false) : void</text><ellipse cx="6280" cy="1592.6498" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="195" x="6289" y="1596.5818">~BoostAODE() = default : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="6270" x2="6806" y1="1604.6838" y2="1604.6838"/><polygon fill="#FFFF44" points="6280,1614.7177,6284,1618.7177,6280,1622.7177,6276,1618.7177" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="325" x="6289" y="1623.6497">buildModel(const torch::Tensor &amp; weights) : void</text><ellipse cx="6280" cy="1638.7856" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="512" x="6289" y="1642.7176">graph(const std::string &amp; title = "BoostAODE") const : std::vector&lt;std::string&gt;</text><ellipse cx="6280" cy="1657.8535" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="472" x="6289" y="1661.7855">setHyperparameters(const nlohmann::json &amp; hyperparameters_) : void</text><polygon fill="#FFFF44" points="6280,1671.9215,6284,1675.9215,6280,1679.9215,6276,1675.9215" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="322" x="6289" y="1680.8534">trainModel(const torch::Tensor &amp; weights) : void</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="6270" x2="6806" y1="1688.9554" y2="1688.9554"/></g><!--class C_0000131858426172291700--><g id="elem_C_0000131858426172291700"><rect codeLine="316" fill="#F0F8FF" height="113.2038" id="C_0000131858426172291700" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="677" x="501.5" y="1040.1179"/><ellipse cx="786.75" cy="1056.1179" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M786.2188,1063.0398 Q784.4688,1063.0398 783.3281,1062.3054 Q782.2031,1061.5554 781.6406,1060.2117 Q781.0938,1058.8523 781.0938,1057.0554 Q781.0938,1055.0242 781.75,1053.571 Q782.4063,1052.1179 783.6875,1051.3367 Q784.9688,1050.5554 786.8438,1050.5554 Q787.7344,1050.5554 788.4063,1050.7429 Q789.0781,1050.9148 789.7656,1051.2585 L788.9531,1053.2742 Q788.3281,1052.9617 787.7813,1052.8367 Q787.25,1052.7117 786.7656,1052.7117 Q785.5938,1052.7117 784.8906,1053.2429 Q784.1875,1053.7742 783.8906,1054.7273 Q783.5938,1055.6804 783.5938,1056.946 Q783.5938,1058.9617 784.3125,1059.9304 Q785.0313,1060.8835 786.625,1060.8835 Q787.2188,1060.8835 787.8438,1060.7273 Q788.4688,1060.571 789.2969,1060.196 L789.2969,1062.4148 Q788.5625,1062.7273 787.7656,1062.8835 Q786.9844,1063.0398 786.2188,1063.0398 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="98" x="807.25" y="1061.5499">bayesnet::MST</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="502.5" x2="1177.5" y1="1072.1179" y2="1072.1179"/><ellipse cx="512.5" cy="1087.1519" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="141" x="521.5" y="1091.0839">MST() = default : void</text><ellipse cx="512.5" cy="1106.2198" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="651" x="521.5" y="1110.1518">MST(const std::vector&lt;std::string&gt; &amp; features, const torch::Tensor &amp; weights, const int root) : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="502.5" x2="1177.5" y1="1118.2538" y2="1118.2538"/><ellipse cx="512.5" cy="1133.2877" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="380" x="521.5" y="1137.2197">maximumSpanningTree() : std::vector&lt;std::pair&lt;int,int&gt;&gt;</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="502.5" x2="1177.5" y1="1145.3217" y2="1145.3217"/></g><!--class C_0001197041682001898467--><g id="elem_C_0001197041682001898467"><rect codeLine="324" fill="#F0F8FF" height="170.4075" id="C_0001197041682001898467" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="403" x="1213.5" y="1011.5179"/><ellipse cx="1355.25" cy="1027.5179" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1354.7188,1034.4398 Q1352.9688,1034.4398 1351.8281,1033.7054 Q1350.7031,1032.9554 1350.1406,1031.6117 Q1349.5938,1030.2523 1349.5938,1028.4554 Q1349.5938,1026.4242 1350.25,1024.971 Q1350.9063,1023.5179 1352.1875,1022.7367 Q1353.4688,1021.9554 1355.3438,1021.9554 Q1356.2344,1021.9554 1356.9063,1022.1429 Q1357.5781,1022.3148 1358.2656,1022.6585 L1357.4531,1024.6742 Q1356.8281,1024.3617 1356.2813,1024.2367 Q1355.75,1024.1117 1355.2656,1024.1117 Q1354.0938,1024.1117 1353.3906,1024.6429 Q1352.6875,1025.1742 1352.3906,1026.1273 Q1352.0938,1027.0804 1352.0938,1028.346 Q1352.0938,1030.3617 1352.8125,1031.3304 Q1353.5313,1032.2835 1355.125,1032.2835 Q1355.7188,1032.2835 1356.3438,1032.1273 Q1356.9688,1031.971 1357.7969,1031.596 L1357.7969,1033.8148 Q1357.0625,1034.1273 1356.2656,1034.2835 Q1355.4844,1034.4398 1354.7188,1034.4398 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="111" x="1375.75" y="1032.9499">bayesnet::Graph</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="1214.5" x2="1615.5" y1="1043.5179" y2="1043.5179"/><ellipse cx="1224.5" cy="1058.5519" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="120" x="1233.5" y="1062.4839">Graph(int V) : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="1214.5" x2="1615.5" y1="1070.5858" y2="1070.5858"/><ellipse cx="1224.5" cy="1085.6198" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="234" x="1233.5" y="1089.5518">addEdge(int u, int v, float wt) : void</text><ellipse cx="1224.5" cy="1104.6877" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="117" x="1233.5" y="1108.6197">find_set(int i) : int</text><ellipse cx="1224.5" cy="1123.7556" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="377" x="1233.5" y="1127.6876">get_mst() : std::vector&lt;std::pair&lt;float,std::pair&lt;int,int&gt;&gt;&gt;</text><ellipse cx="1224.5" cy="1142.8235" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="168" x="1233.5" y="1146.7555">kruskal_algorithm() : void</text><ellipse cx="1224.5" cy="1161.8915" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="181" x="1233.5" y="1165.8234">union_set(int u, int v) : void</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="1214.5" x2="1615.5" y1="1173.9254" y2="1173.9254"/></g><!--class C_0000344502277874806837--><g id="elem_C_0000344502277874806837"><rect codeLine="335" fill="#F0F8FF" height="170.4075" id="C_0000344502277874806837" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="1158" x="1200" y="2358.7879"/><ellipse cx="1718.25" cy="2374.7879" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1717.7188,2381.7098 Q1715.9688,2381.7098 1714.8281,2380.9754 Q1713.7031,2380.2254 1713.1406,2378.8817 Q1712.5938,2377.5223 1712.5938,2375.7254 Q1712.5938,2373.6942 1713.25,2372.241 Q1713.9063,2370.7879 1715.1875,2370.0067 Q1716.4688,2369.2254 1718.3438,2369.2254 Q1719.2344,2369.2254 1719.9063,2369.4129 Q1720.5781,2369.5848 1721.2656,2369.9285 L1720.4531,2371.9442 Q1719.8281,2371.6317 1719.2813,2371.5067 Q1718.75,2371.3817 1718.2656,2371.3817 Q1717.0938,2371.3817 1716.3906,2371.9129 Q1715.6875,2372.4442 1715.3906,2373.3973 Q1715.0938,2374.3504 1715.0938,2375.616 Q1715.0938,2377.6317 1715.8125,2378.6004 Q1716.5313,2379.5535 1718.125,2379.5535 Q1718.7188,2379.5535 1719.3438,2379.3973 Q1719.9688,2379.241 1720.7969,2378.866 L1720.7969,2381.0848 Q1720.0625,2381.3973 1719.2656,2381.5535 Q1718.4844,2381.7098 1717.7188,2381.7098 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="113" x="1738.75" y="2380.2199">bayesnet::KDBLd</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="1201" x2="2357" y1="2390.7879" y2="2390.7879"/><ellipse cx="1211" cy="2405.8219" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="121" x="1220" y="2409.7539">KDBLd(int k) : void</text><ellipse cx="1211" cy="2424.8898" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="164" x="1220" y="2428.8218">~KDBLd() = default : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="1201" x2="2357" y1="2436.9238" y2="2436.9238"/><ellipse cx="1211" cy="2451.9577" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1132" x="1220" y="2455.8897">fit(torch::Tensor &amp; X, torch::Tensor &amp; y, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states) : KDBLd &amp;</text><ellipse cx="1211" cy="2471.0256" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="477" x="1220" y="2474.9576">graph(const std::string &amp; name = "KDB") const : std::vector&lt;std::string&gt;</text><ellipse cx="1211" cy="2490.0935" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="272" x="1220" y="2494.0255">predict(torch::Tensor &amp; X) : torch::Tensor</text><ellipse cx="1211" cy="2509.1615" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="138" x="1220" y="2513.0934">version() : std::string</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="1201" x2="2357" y1="2521.1954" y2="2521.1954"/></g><!--class C_0000786111576121788282--><g id="elem_C_0000786111576121788282"><rect codeLine="346" fill="#F0F8FF" height="151.3396" id="C_0000786111576121788282" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="501" x="6093.5" y="1021.0579"/><ellipse cx="6286.25" cy="1037.0579" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M6285.7188,1043.9798 Q6283.9688,1043.9798 6282.8281,1043.2454 Q6281.7031,1042.4954 6281.1406,1041.1517 Q6280.5938,1039.7923 6280.5938,1037.9954 Q6280.5938,1035.9642 6281.25,1034.511 Q6281.9063,1033.0579 6283.1875,1032.2767 Q6284.4688,1031.4954 6286.3438,1031.4954 Q6287.2344,1031.4954 6287.9063,1031.6829 Q6288.5781,1031.8548 6289.2656,1032.1985 L6288.4531,1034.2142 Q6287.8281,1033.9017 6287.2813,1033.7767 Q6286.75,1033.6517 6286.2656,1033.6517 Q6285.0938,1033.6517 6284.3906,1034.1829 Q6283.6875,1034.7142 6283.3906,1035.6673 Q6283.0938,1036.6204 6283.0938,1037.886 Q6283.0938,1039.9017 6283.8125,1040.8704 Q6284.5313,1041.8235 6286.125,1041.8235 Q6286.7188,1041.8235 6287.3438,1041.6673 Q6287.9688,1041.511 6288.7969,1041.136 L6288.7969,1043.3548 Q6288.0625,1043.6673 6287.2656,1043.8235 Q6286.4844,1043.9798 6285.7188,1043.9798 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="107" x="6306.75" y="1042.4899">bayesnet::AODE</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="6094.5" x2="6593.5" y1="1053.0579" y2="1053.0579"/><ellipse cx="6104.5" cy="1068.0919" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="263" x="6113.5" y="1072.0239">AODE(bool predict_voting = false) : void</text><ellipse cx="6104.5" cy="1087.1598" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="94" x="6113.5" y="1091.0918">~AODE() : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="6094.5" x2="6593.5" y1="1099.1938" y2="1099.1938"/><polygon fill="#FFFF44" points="6104.5,1109.2277,6108.5,1113.2277,6104.5,1117.2277,6100.5,1113.2277" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="325" x="6113.5" y="1118.1597">buildModel(const torch::Tensor &amp; weights) : void</text><ellipse cx="6104.5" cy="1133.2956" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="475" x="6113.5" y="1137.2276">graph(const std::string &amp; title = "AODE") const : std::vector&lt;std::string&gt;</text><ellipse cx="6104.5" cy="1152.3635" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="466" x="6113.5" y="1156.2955">setHyperparameters(const nlohmann::json &amp; hyperparameters) : void</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="6094.5" x2="6593.5" y1="1164.3975" y2="1164.3975"/></g><!--class C_0001369655639257755354--><g id="elem_C_0001369655639257755354"><rect codeLine="356" fill="#F0F8FF" height="208.5433" id="C_0001369655639257755354" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="1175" x="2392.5" y="2339.7179"/><ellipse cx="2910.75" cy="2355.7179" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M2910.2188,2362.6398 Q2908.4688,2362.6398 2907.3281,2361.9054 Q2906.2031,2361.1554 2905.6406,2359.8117 Q2905.0938,2358.4523 2905.0938,2356.6554 Q2905.0938,2354.6242 2905.75,2353.171 Q2906.4063,2351.7179 2907.6875,2350.9367 Q2908.9688,2350.1554 2910.8438,2350.1554 Q2911.7344,2350.1554 2912.4063,2350.3429 Q2913.0781,2350.5148 2913.7656,2350.8585 L2912.9531,2352.8742 Q2912.3281,2352.5617 2911.7813,2352.4367 Q2911.25,2352.3117 2910.7656,2352.3117 Q2909.5938,2352.3117 2908.8906,2352.8429 Q2908.1875,2353.3742 2907.8906,2354.3273 Q2907.5938,2355.2804 2907.5938,2356.546 Q2907.5938,2358.5617 2908.3125,2359.5304 Q2909.0313,2360.4835 2910.625,2360.4835 Q2911.2188,2360.4835 2911.8438,2360.3273 Q2912.4688,2360.171 2913.2969,2359.796 L2913.2969,2362.0148 Q2912.5625,2362.3273 2911.7656,2362.4835 Q2910.9844,2362.6398 2910.2188,2362.6398 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="130" x="2931.25" y="2361.1499">bayesnet::SPODELd</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="2393.5" x2="3566.5" y1="2371.7179" y2="2371.7179"/><ellipse cx="2403.5" cy="2386.7519" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="158" x="2412.5" y="2390.6839">SPODELd(int root) : void</text><ellipse cx="2403.5" cy="2405.8198" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="181" x="2412.5" y="2409.7518">~SPODELd() = default : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="2393.5" x2="3566.5" y1="2417.8538" y2="2417.8538"/><ellipse cx="2403.5" cy="2432.8877" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="964" x="2412.5" y="2436.8197">commonFit(const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states) : SPODELd &amp;</text><ellipse cx="2403.5" cy="2451.9556" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1149" x="2412.5" y="2455.8876">fit(torch::Tensor &amp; X, torch::Tensor &amp; y, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states) : SPODELd &amp;</text><ellipse cx="2403.5" cy="2471.0235" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1069" x="2412.5" y="2474.9555">fit(torch::Tensor &amp; dataset, const std::vector&lt;std::string&gt; &amp; features, const std::string &amp; className, std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states) : SPODELd &amp;</text><ellipse cx="2403.5" cy="2490.0915" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="494" x="2412.5" y="2494.0234">graph(const std::string &amp; name = "SPODE") const : std::vector&lt;std::string&gt;</text><ellipse cx="2403.5" cy="2509.1594" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="272" x="2412.5" y="2513.0914">predict(torch::Tensor &amp; X) : torch::Tensor</text><ellipse cx="2403.5" cy="2528.2273" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="138" x="2412.5" y="2532.1593">version() : std::string</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="2393.5" x2="3566.5" y1="2540.2613" y2="2540.2613"/></g><!--class C_0000487273479333793647--><g id="elem_C_0000487273479333793647"><rect codeLine="369" fill="#F0F8FF" height="170.4075" id="C_0000487273479333793647" rx="2.5" ry="2.5" style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,3.0;" width="1198" x="5390" y="2358.7879"/><ellipse cx="5923.25" cy="2374.7879" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M5922.7188,2381.7098 Q5920.9688,2381.7098 5919.8281,2380.9754 Q5918.7031,2380.2254 5918.1406,2378.8817 Q5917.5938,2377.5223 5917.5938,2375.7254 Q5917.5938,2373.6942 5918.25,2372.241 Q5918.9063,2370.7879 5920.1875,2370.0067 Q5921.4688,2369.2254 5923.3438,2369.2254 Q5924.2344,2369.2254 5924.9063,2369.4129 Q5925.5781,2369.5848 5926.2656,2369.9285 L5925.4531,2371.9442 Q5924.8281,2371.6317 5924.2813,2371.5067 Q5923.75,2371.3817 5923.2656,2371.3817 Q5922.0938,2371.3817 5921.3906,2371.9129 Q5920.6875,2372.4442 5920.3906,2373.3973 Q5920.0938,2374.3504 5920.0938,2375.616 Q5920.0938,2377.6317 5920.8125,2378.6004 Q5921.5313,2379.5535 5923.125,2379.5535 Q5923.7188,2379.5535 5924.3438,2379.3973 Q5924.9688,2379.241 5925.7969,2378.866 L5925.7969,2381.0848 Q5925.0625,2381.3973 5924.2656,2381.5535 Q5923.4844,2381.7098 5922.7188,2381.7098 Z " fill="#000000"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="123" x="5943.75" y="2380.2199">bayesnet::AODELd</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="5391" x2="6587" y1="2390.7879" y2="2390.7879"/><ellipse cx="5401" cy="2405.8219" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="275" x="5410" y="2409.7539">AODELd(bool predict_voting = true) : void</text><ellipse cx="5401" cy="2424.8898" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="174" x="5410" y="2428.8218">~AODELd() = default : void</text><line style="stroke:#0000FF;stroke-width:1.0;stroke-dasharray:1.0,2.0;" x1="5391" x2="6587" y1="2436.9238" y2="2436.9238"/><polygon fill="#FFFF44" points="5401,2446.9577,5405,2450.9577,5401,2454.9577,5397,2450.9577" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="325" x="5410" y="2455.8897">buildModel(const torch::Tensor &amp; weights) : void</text><ellipse cx="5401" cy="2471.0256" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1172" x="5410" y="2474.9576">fit(torch::Tensor &amp; X_, torch::Tensor &amp; y_, const std::vector&lt;std::string&gt; &amp; features_, const std::string &amp; className_, std::map&lt;std::string,std::vector&lt;int&gt;&gt; &amp; states_) : AODELd &amp;</text><ellipse cx="5401" cy="2490.0935" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="503" x="5410" y="2494.0255">graph(const std::string &amp; name = "AODELd") const : std::vector&lt;std::string&gt;</text><polygon fill="#FFFF44" points="5401,2504.1615,5405,2508.1615,5401,2512.1615,5397,2508.1615" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#0000FF" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="322" x="5410" y="2513.0934">trainModel(const torch::Tensor &amp; weights) : void</text><line style="stroke:#0000FF;stroke-width:0.5;" x1="5391" x2="6587" y1="2521.1954" y2="2521.1954"/></g><!--link C_0001303524929067080934 to C_0001303524929067080934--><g id="link_C_0001303524929067080934_C_0001303524929067080934"><path codeLine="379" d="M4916.41,3005.1879 C4938.3,3008.3779 4951,3012.5079 4951,3017.5579 C4951,3022.6079 4944.2373,3025.8627 4922.3473,3029.0527 " fill="none" id="C_0001303524929067080934-to-C_0001303524929067080934" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="4916.41,3029.9179,4925.8928,3032.5783,4921.3577,3029.1969,4924.7391,3024.6619,4916.41,3029.9179" style="stroke:#181818;stroke-width:1.0;"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="4959" y="3015.4109"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="46" x="4969" y="3022.9549">parents</text></g><!--link C_0001303524929067080934 to C_0001303524929067080934--><g id="link_C_0001303524929067080934_C_0001303524929067080934"><path codeLine="380" d="M4916.41,2982.3379 C4979.57,2988.8379 5021,3000.5779 5021,3017.5579 C5021,3034.5279 4985.5385,3045.6537 4922.3785,3052.1537 " fill="none" id="C_0001303524929067080934-to-C_0001303524929067080934-1" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="4916.41,3052.7679,4925.7722,3055.8255,4921.3837,3052.2561,4924.9532,3047.8676,4916.41,3052.7679" style="stroke:#181818;stroke-width:1.0;"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="5029" y="3015.4109"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="48" x="5039" y="3022.9549">children</text></g><!--reverse link C_0001186707649890429575 to C_0001303524929067080934--><g id="link_C_0001186707649890429575_C_0001303524929067080934"><path codeLine="381" d="M4426.0817,2770.212 C4421.7217,2796.992 4419.35,2811.5979 4415.25,2836.7779 " fill="none" id="C_0001186707649890429575-backto-C_0001303524929067080934" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="4428.01,2758.3679,4423.0978,2763.6472,4426.0817,2770.212,4430.9939,2764.9327,4428.01,2758.3679" style="stroke:#181818;stroke-width:1.0;"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="4425" y="2795.3609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="37" x="4435" y="2802.9049">nodes</text></g><!--link C_0000327135989451974539 to C_0000738420730783851375--><g id="link_C_0000327135989451974539_C_0000738420730783851375"><path codeLine="382" d="M2364.18,608.7379 C2055.44,980.9379 1534.93,1611.6879 1457,1726.9579 C1431.31,1764.9579 1409.1382,1805.2243 1391.4082,1839.6343 " fill="none" id="C_0000327135989451974539-to-C_0000738420730783851375" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="1388.66,1844.9679,1396.338,1838.7996,1390.9502,1840.5232,1389.2265,1835.1354,1388.66,1844.9679" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0002043996622900301644 to C_0001186707649890429575--><g id="link_C_0002043996622900301644_C_0001186707649890429575"><path codeLine="383" d="M4005.4399,1507.5042 C4107.7899,1709.6842 4224.84,1940.9079 4320.32,2129.5279 " fill="none" id="C_0002043996622900301644-backto-C_0001186707649890429575" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="4000.02,1496.7979,3999.1612,1503.9577,4005.4399,1507.5042,4006.2987,1500.3444,4000.02,1496.7979" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="4294,1893.8209,4298,1897.8209,4294,1901.8209,4290,1897.8209" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="38" x="4301" y="1903.3649">model</text></g><!--reverse link C_0002043996622900301644 to C_0000736965376885623323--><g id="link_C_0002043996622900301644_C_0000736965376885623323"><path codeLine="384" d="M4460.7712,1476.0876 C4617.8512,1565.7676 4767.71,1651.3179 4899.38,1726.4879 " fill="none" id="C_0002043996622900301644-backto-C_0000736965376885623323" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="4450.35,1470.1379,4453.5774,1476.5865,4460.7712,1476.0876,4457.5438,1469.639,4450.35,1470.1379" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="4829,1607.6009,4833,1611.6009,4829,1615.6009,4825,1611.6009" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="44" x="4836" y="1617.1449">metrics</text></g><!--reverse link C_0002043996622900301644 to C_0000738420730783851375--><g id="link_C_0002043996622900301644_C_0000738420730783851375"><path codeLine="385" d="M3133.9008,1220.2063 C2795.1308,1292.0163 2389.5,1392.9879 2029,1526.5479 C1872.73,1584.4379 1854.28,1647.9279 1695,1696.9579 C1593.1,1728.3179 1545.26,1667.1479 1457,1726.9579 C1416.24,1754.5779 1391.39,1805.9879 1377.57,1845.0679 " fill="none" id="C_0002043996622900301644-backto-C_0000738420730783851375" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="3145.64,1217.7179,3138.941,1215.0491,3133.9008,1220.2063,3140.5999,1222.8752,3145.64,1217.7179" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="2035,1607.6009,2039,1611.6009,2035,1615.6009,2031,1611.6009" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="37" x="2042" y="1617.1449">status</text></g><!--reverse link C_0000327135989451974539 to C_0002043996622900301644--><g id="link_C_0000327135989451974539_C_0002043996622900301644"><path codeLine="386" d="M3043.2426,618.2897 C3088.4926,646.9097 3119.9,666.7879 3166.76,696.4179 " fill="none" id="C_0000327135989451974539-backto-C_0002043996622900301644" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="3028.03,608.6679,3040.0353,623.3605,3046.4498,613.2188,3028.03,608.6679" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0002043996622900301644 to C_0001112865019015250005--><g id="link_C_0002043996622900301644_C_0001112865019015250005"><path codeLine="387" d="M3129.654,1414.2847 C2930.724,1512.6247 2728.99,1616.6579 2533,1726.9579 C2480.76,1756.3579 2424.48,1791.3679 2376.97,1821.9679 " fill="none" id="C_0002043996622900301644-backto-C_0001112865019015250005" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="3145.79,1406.3079,3126.9951,1408.906,3132.3129,1419.6634,3145.79,1406.3079" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0002043996622900301644 to C_0001760994424884323017--><g id="link_C_0002043996622900301644_C_0001760994424884323017"><path codeLine="388" d="M3128.4279,1291.2259 C2779.3679,1401.6259 2363.83,1548.9279 1995,1726.9579 C1933.43,1756.6779 1868.53,1797.3879 1817.9,1831.5179 " fill="none" id="C_0002043996622900301644-backto-C_0001760994424884323017" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="3145.59,1285.7979,3126.6186,1285.5052,3130.2373,1296.9466,3145.59,1285.7979" style="stroke:#181818;stroke-width:1.0;"/></g><!--link C_0002219995589162262979 to C_0001186707649890429575--><g id="link_C_0002219995589162262979_C_0001186707649890429575"><path codeLine="389" d="M3329.18,2012.1879 C3422.77,2047.2479 3525.2114,2085.6328 3636.8314,2127.4528 " fill="none" id="C_0002219995589162262979-to-C_0001186707649890429575" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="3642.45,2129.5579,3635.4255,2122.6546,3637.7678,2127.8037,3632.6187,2130.146,3642.45,2129.5579" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0001760994424884323017 to C_0001668829096702037834--><g id="link_C_0001760994424884323017_C_0001668829096702037834"><path codeLine="390" d="M1624.5904,1974.9096 C1573.8304,2010.4896 1521.86,2042.2079 1457,2068.9779 C1341.67,2116.5579 1300.15,2087.0779 1183,2129.9779 C1017.47,2190.5779 840.06,2288.2279 722.04,2358.3579 " fill="none" id="C_0001760994424884323017-backto-C_0001668829096702037834" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="1639.33,1964.5779,1621.1465,1969.9964,1628.0343,1979.8228,1639.33,1964.5779" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0002219995589162262979 to C_0001668829096702037834--><g id="link_C_0002219995589162262979_C_0001668829096702037834"><path codeLine="391" d="M2725.709,2017.9659 C2657.969,2040.6159 2602.27,2055.7779 2533,2068.9779 C2238,2125.1879 1472.9,2051.5979 1183,2129.9779 C1007.04,2177.5379 824.21,2283.0979 708,2358.4679 " fill="none" id="C_0002219995589162262979-backto-C_0001668829096702037834" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="2742.78,2012.2579,2723.8063,2012.2756,2727.6117,2023.6562,2742.78,2012.2579" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0000736965376885623323 to C_0001695326193250580823--><g id="link_C_0000736965376885623323_C_0001695326193250580823"><path codeLine="392" d="M5869.6644,1974.134 C6109.8044,2009.824 6364.18,2058.3679 6606,2129.9779 C6715.66,2162.4479 6830.72,2207.5879 6935.67,2253.4879 " fill="none" id="C_0000736965376885623323-backto-C_0001695326193250580823" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="5851.86,1971.4879,5868.7824,1980.0689,5870.5465,1968.1992,5851.86,1971.4879" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0001695326193250580823 to C_0000011627355691342494--><g id="link_C_0001695326193250580823_C_0000011627355691342494"><path codeLine="393" d="M7848.1978,2640.774 C8155.4778,2754.674 8508.18,2885.4079 8710.77,2960.4979 " fill="none" id="C_0001695326193250580823-backto-C_0000011627355691342494" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="7831.32,2634.5179,7846.1124,2646.4,7850.2832,2635.1481,7831.32,2634.5179" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0001695326193250580823 to C_0000144682015341746929--><g id="link_C_0001695326193250580823_C_0000144682015341746929"><path codeLine="394" d="M6885.1165,2641.5937 C6788.5865,2683.6237 6702.42,2719.8079 6606,2758.0079 C6416.31,2833.1579 6194.99,2910.2979 6046.62,2960.5179 " fill="none" id="C_0001695326193250580823-backto-C_0000144682015341746929" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="6901.62,2634.4079,6882.7213,2636.0925,6887.5118,2647.0948,6901.62,2634.4079" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0001695326193250580823 to C_0000008268514674428553--><g id="link_C_0001695326193250580823_C_0000008268514674428553"><path codeLine="395" d="M7353.7304,2652.2843 C7372.2604,2766.1843 7391.66,2885.4079 7403.88,2960.4979 " fill="none" id="C_0001695326193250580823-backto-C_0000008268514674428553" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="7350.84,2634.5179,7347.8082,2653.2478,7359.6525,2651.3209,7350.84,2634.5179" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0002043996622900301644 to C_0000512022813807538451--><g id="link_C_0002043996622900301644_C_0000512022813807538451"><path codeLine="396" d="M3798,1514.7579 C3798,1644.4479 3798,1756.2179 3798,1831.4379 " fill="none" id="C_0002043996622900301644-backto-C_0000512022813807538451" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="3798,1496.7579,3792,1514.7579,3804,1514.7579,3798,1496.7579" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0001985241386355360576 to C_0002043996622900301644--><g id="link_C_0001985241386355360576_C_0002043996622900301644"><path codeLine="397" d="M5639.3759,410.2382 C5406.3959,467.4182 5096,550.2879 4820,647.8979 C4698.89,690.7279 4571.95,741.4179 4450.33,793.0279 " fill="none" id="C_0001985241386355360576-backto-C_0002043996622900301644" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="5651.03,407.3779,5644.2495,404.9233,5639.3759,410.2382,5646.1564,412.6928,5651.03,407.3779" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="4826,653.2509,4830,657.2509,4826,661.2509,4822,657.2509" style="stroke:#B38D22;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="44" x="4833" y="662.7949">models</text></g><!--reverse link C_0002043996622900301644 to C_0001985241386355360576--><g id="link_C_0002043996622900301644_C_0001985241386355360576"><path codeLine="398" d="M4467.4145,860.7974 C4864.4345,721.4674 5336.98,555.6379 5651.26,445.3379 " fill="none" id="C_0002043996622900301644-backto-C_0001985241386355360576" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="4450.43,866.7579,4469.4013,866.4589,4465.4276,855.1359,4450.43,866.7579" style="stroke:#181818;stroke-width:1.0;"/></g><!--link C_0000358471592399852382 to C_0001695326193250580823--><g id="link_C_0000358471592399852382_C_0001695326193250580823"><path codeLine="399" d="M6617.65,1697.3179 C6739.92,1827.1279 6972.8763,2074.4502 7137.5663,2249.3102 " fill="none" id="C_0000358471592399852382-to-C_0001695326193250580823" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="7141.68,2253.6779,7138.4213,2244.3838,7138.2519,2250.0381,7132.5976,2249.8688,7141.68,2253.6779" style="stroke:#181818;stroke-width:1.0;"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="6970" y="1895.8209"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="91" x="6980" y="1903.3649">featureSelector</text></g><!--reverse link C_0001985241386355360576 to C_0000358471592399852382--><g id="link_C_0001985241386355360576_C_0000358471592399852382"><path codeLine="400" d="M5995.4729,636.2934 C6024.4829,977.9434 6068.86,1488.2279 6076,1496.5479 C6103.59,1528.6679 6183.15,1553.3779 6268.64,1571.4579 " fill="none" id="C_0001985241386355360576-backto-C_0000358471592399852382" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="5993.95,618.3579,5989.4944,636.801,6001.4514,635.7857,5993.95,618.3579" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0001112865019015250005 to C_0000344502277874806837--><g id="link_C_0001112865019015250005_C_0000344502277874806837"><path codeLine="401" d="M2185.0921,1987.474 C2095.3121,2088.184 1948.31,2253.0779 1854.4,2358.4179 " fill="none" id="C_0001112865019015250005-backto-C_0000344502277874806837" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="2197.07,1974.0379,2180.6134,1983.4814,2189.5708,1991.4667,2197.07,1974.0379" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0002219995589162262979 to C_0000344502277874806837--><g id="link_C_0002219995589162262979_C_0000344502277874806837"><path codeLine="402" d="M2676.4784,2018.1693 C2548.5784,2062.6393 2435.8,2103.3979 2375,2129.9779 C2217.71,2198.7179 2044.72,2291.6179 1925.82,2358.3279 " fill="none" id="C_0002219995589162262979-backto-C_0000344502277874806837" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="2693.48,2012.2579,2674.5079,2012.5021,2678.4488,2023.8365,2693.48,2012.2579" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0001985241386355360576 to C_0000786111576121788282--><g id="link_C_0001985241386355360576_C_0000786111576121788282"><path codeLine="403" d="M6117.728,634.5579 C6188.678,779.1779 6261.41,927.4079 6307.15,1020.6279 " fill="none" id="C_0001985241386355360576-backto-C_0000786111576121788282" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="6109.8,618.3979,6112.3414,637.2006,6123.1147,631.9153,6109.8,618.3979" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0000512022813807538451 to C_0001369655639257755354--><g id="link_C_0000512022813807538451_C_0001369655639257755354"><path codeLine="404" d="M3684.3422,1974.5562 C3544.3322,2067.6762 3301.6,2229.1079 3135.66,2339.4679 " fill="none" id="C_0000512022813807538451-backto-C_0001369655639257755354" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="3699.33,1964.5879,3681.0195,1969.5603,3687.665,1979.5521,3699.33,1964.5879" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0002219995589162262979 to C_0001369655639257755354--><g id="link_C_0002219995589162262979_C_0001369655639257755354"><path codeLine="405" d="M3015.6814,2029.9512 C3007.3614,2126.3012 2997.04,2245.7179 2988.96,2339.2879 " fill="none" id="C_0002219995589162262979-backto-C_0001369655639257755354" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="3017.23,2012.0179,3009.7037,2029.435,3021.6592,2030.4674,3017.23,2012.0179" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0001985241386355360576 to C_0000487273479333793647--><g id="link_C_0001985241386355360576_C_0000487273479333793647"><path codeLine="406" d="M5972.7223,636.2572 C5977.1023,1121.9072 5985.62,2068.0479 5988.24,2358.3579 " fill="none" id="C_0001985241386355360576-backto-C_0000487273479333793647" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="5972.56,618.2579,5966.7226,636.3113,5978.7221,636.2031,5972.56,618.2579" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link C_0002219995589162262979 to C_0000487273479333793647--><g id="link_C_0002219995589162262979_C_0000487273479333793647"><path codeLine="407" d="M3326.2178,2017.9355 C3394.5178,2040.8155 3450.98,2056.0779 3521,2068.9779 C3925.96,2143.5779 4974.18,2027.4879 5373,2129.9779 C5554.25,2176.5479 5743.34,2282.5979 5863.42,2358.3379 " fill="none" id="C_0002219995589162262979-backto-C_0000487273479333793647" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="3309.15,2012.2179,3324.3119,2023.6248,3328.1236,2012.2462,3309.15,2012.2179" style="stroke:#181818;stroke-width:1.0;"/></g><!--SRC=[xLphSzis4l-klu8JpRHo_HY-7shh6SUESfdOZYVofVccWKNOueKF7GawSNlDttuBWfH04f18DN7jcqjc4ebuB7QnZzykG960X5YPXoY-EyoZa7xACiKFq5sA8YLAV1mEsBCND-W1Pp4cu_459camprueA5DEPohySGpRiot3iLtNidN3q8robAnP6Q8mcEERCCS_Xq6CnwjFHtv22FP_9lWBAPugVmpsIugZFULNnSUtA0-9CbRkay1VjysJE2CAITBvOZo-nd6MfCeFIeQYPOYp0uKrPyGVZ-_n7BhzKdpEO71yTmmzRp4YUTheofgXjM3d4aMuQWvYKZxCeob116TxaYMrQ9QVOOPZIlX-mnff7-WIeXiSFYuJHqU3_IaEWShRbpWZl-7WRW7x8X7pvw8PoDuaIGXwCSUnJsd-gjoYC0DwUPm5Tp7s2vAVuBbAAJLP7Up3z7v0WYH6uIl_3cycHwUeDRN6isLd8vxGRPYWGghSBEtsmT1FJfFe9eWHdIxxvVfOi9_NT9uioTCvRavJV5wY03eTAD0FPiGnIPFbWuIfSk-glTd0iv_aDo4UxDzXCfqdiDt55e5ri97rTR3E8De8VGaYsESbYcFOc-iKur5lXP9k_5gXqYGXSc50ZuD2ys51ESbH-2Q-JTAe4B9CC46QaSbcwMIOxloahmY7osGvA-Qd-zlQsNlQzNemcms6AzkfE6Co6Wmh2OauBkKu69OctjBNFzlUzHASxjgrQePgMBhfwPvgEwghUeR9krP1Sq_NIicD1CwYvWYGxvykWj0VqTxAJsjF1mrNA0MzRhNCGupI4VSzYPOvmQTNrv9TzX516IOxE3csb-0abo6Qusa4-hU0hXsqW2qDp8Wkg-LDb1zO6-KSU1mrbPgnV5nsco3wy0C2kJ95Yj2IN_a1y-LqaiB358EeGZNjjbIiehboormVcAPeOtBFDgugHSl5I1O9AEszJLgx7mNn90Z3WWJlm0VxAOwIUopM2TOcKOkCPmgcMhM0ZOcC0PFFIVg9imVD1KLtRDDpFTNKFSknQlRGRkvh3umYfxdLasBNse-PUCjldDtiVrrFrK8jfL5n8QwsFyBmNREwhMQxx-VHSZPV4fbwtGQa6sRQulAt6ofLjAw8H6Wv8jIKDJ2Nd9sFCaOUdYk7sn1b48EhdL67kXEcB173anK4zSdLP1kSvsaDs0eyABM-J8AQre2bjRgIwMFczSjOj6cQbJ-5_XVeo_KYnSZdHt3n0CoQS-b2wUHnyEySpvQ4-VhZAW01gqsEAawdpAAb8KuY8cdu83HjxC9n40CO1__xE-OSwZB5VZ3lgCpYDA4-HOCbGLfGzfyjq-G6xKPOO277uecxBuSKtxkvuIApAiW89ine6j2DBxbBu5EBR95yxgJJ95acON8Np54uWwMGqMP8SO_JZ2BzlOR15k4Vntd4Htzg-7as8xLAWslgyA_gk8PhQGQ4_sAKh1L2-kMxznSdvuFVJjvVlhbyFNZr_lsxzq0CtG1fm6mymPU0G0kt4Tm6EEN86hgZ6HQ02jFIFCUq36yzNjQZ9_3uMYSkGGr_L6J_LDeH7hBgXbZvxZH-26AZD2f-Yp93Rn_FMAYB0fpKDZvsJnx-l_HiQwBKaRDjiEJZWGY7F7bzaqC9DfZ6oaR_owJTJUeJcsFpw0QdxsxhiLnEgknU8OUEtRjoCYrSS8iLvfSBx00PR-3_us69qoLAOHC8UFYDGQ0jtW-heB3PWsq1933wnOiTX5w1YQtwkoUOjS0ZejbQhhOQNG_TWg4bcDXfEKAK8gUnmo8PrDZHrglf6U9jJzibFcsO0vEc8Z9bYCDa4Q4u7e__bIKnJBAeTwkcBA9iRKOU1lLGAHuL9QbVXlEkmuVmVn1VqDENKIVNN5LGXlS2Ozn4L0o3H118Lqt3ysnRrpq0EwfccsO30Wbwz8H07FgfwYd54HHNKzaAaAhYIBPEE8OtUH3wPopEZWJwrDvuDgJl3Wpd2pp_D0beROxtXDqBCayUdusLMfnyjd5VnCTJ19NFOvqTIkrrDhgKP-eWQajTHOoQkCc4CAdTBbrD0mWrGP0ahUs3BJRLEGHnUakDepV1BlMDBile4yXNfQ-_22hMy-oE05Od5BjKFgeOl-aCi7jGvmAwzDYnDFgM_BkTHu8RWUWBNMXLQJ2CcWSymuXTOO3dvMK6U4IN3W_Aq3mOngrHCJNPpGUXXNrjh6_ocyu6v1blRu9ZehTdB_aZ8artRKlLF5MpT0kUD8w8MiqzOGfG6nNN60wOsYbaWGcYGE18DJYiGlk9GKeFUB4gUajpdvXg1wG-L0XTz7Pd6vbjEQoxFhdaTi6nLSypJTrqNTFG0GywjLreD_VS1Q36WQklxEkZ2Plosa7OOa5TfU0wCXHow5hNFC-pBDVJ03_RkkTulBG4pJsbLP5iEURbMOKUEk26sO4CCiouhLZHukyGC6pyXfvCzJwdMoDvy5kpCA4Urm-oUOf9yFkccoCFUpqyJJ7lMMtQ5ISxdLWTh4-5rtbCrzL0u0NBmn-xn5mQA3xUjaF1IaOi2snIZVnm2SdUrTNa3Vse_0Ha7xfSKG7bF_SvKxTjruMapxCTI08DnstSKMatzpVrSxzXxCK3OGBuJFAeWeVDjpHwEfi-QF4Fkf1W_gUo-KH6L1qeZppPvK1U2ppBq6tDCo2eMgxgwaQZG23eqLCHQgJ_ZXkV4VeoQOngtw7iVF7eQvsVkhjazwKkS1gGqybqn5zQAzkc-UhqURqKnA_hHZZgl3Zv7udg7eNnr6eQ7GwvMQgokeouvHxYK7GcFCmU8WOvKVZFU8vJ0bYPF8nAZfgyK8VNXB3hdIcpjc5MY1Nx4p4YBfQzwiJMBbjpbZSdMHbxxLRZ0JU2YLasOwaCq2nK5f7R1JNWZYG1oDgwOrYMxMa6u2YlvdG5pNsBSQ1qpz_2AjEfHOSjE7Po-dB22LepJTlL8LamJCqnRK-lGJD1Sr-d1kIUgwGRLp390YPR9A7F-pZANjyjUFFRjARh42jirz9Csu6KmRMi-li5xUQUMq39_GzlGS5UtosONhqxUyNjWQNfa8Uuck6gZcMufgNLzg3Tt7CF2deZ_W9vkNhMy8Yv7UDyv-pkLPpX2BQ2WqQUQ-acYCO6VspOgkNODO3SRkufkuhagBman6fszmbXxs2GDCUSG5Uz9J8jWS8CfNSpqD3HjYgXj7pPcgbB_N3RCSdtB_R-zMjlZrVr7LQRZG37eplSlL0h6VbjwiQjoPakxhIkSkXtAMZ_pLNoRr3mtgdQ_cHAt4E9NjmdPPRSBdGKbHHXaPcx6Bi-RQBA6CzMW-hrweQdh789sWK6pn5a8XSYSXMA5tZ_4OgJ-25AycncMgeB6Q-zLtzzmG1txpeG9E6lPhdDrnSQpVqY0GY80lUcpwGOhFcCWeB6iwtiU9336nmxggtgz6KBqrPj0n8Efrxa5JJtP-TaUjfS-jchzhFt9vTdszbvcIGPEQa36yDoJKUpFDtmQ20sNBt6GxkvPt1UqPH4v-8DIIuyh_i_0kPPNPnQI-QHpX1sEWyJREd5z9fFrWmDpCVKRStHTKzpLBMUhBMQ-xw9FBqMluKylVwkBrEkaBleBSukRrkAXVUQAWRldZn7DJMQpwgQwxcGKDNTKwkvf_WAUWN8_x0dUXUAjkIitdDVdQvz9lmxCB4_exTuQ8zWZyDqioWZ6mHHJ7KW40meywSqppv1X4FXNP86P15nfMQ8AKcyebWjROjAlZrxoTV7LSC4twdhZkCwfglQhb7taktc_WUIvpuxagmVFpxx8dd1GxSYUTVZpszV96_jVoF0EAwjQHfaTPgkEQwhDm9CkxddzlU8BMLO-Tx1vFl7aIx5YzePLV4J51QWAzq2S0NOgl4UTQjvb_95QOMY0eRS5259Zf9u8d-xxt5ChLobx9BP4tGEMrRyDAxlSOlyXfMdn_9YjJ1ckexk6ARZ6OO1_zXcFOorctVmOs0cdMfO9vjCQWUd9bJvcK3dPptqQRP5eMQzDQg0poSzDAhSn0ugjICUb_uCnU7XiVmtAiRAuPBzVi7k4ypBtsKOID_yJmuFDyuGq_hWGFh-tj7HiVojG-cLzpLHmOh62gjVT1Wk-jKaEhoyZjTfWjRRa301kqSdv_gN_rGJYAxyIyckXudkttKP9hWm9htyjDeQqUz1I2-OSSG4LrQan3eC4sqMFwnzDK9w8s8zJ7J4ssMOuC2o4xNs8Lk7RHET2qbFDP8DghMoZQoJjWYELAJrchKd4KW0_C0jVmq38gPq_HpRWggHz7efFwoT2dRGE-cmBOiKP1xIqpfEjWAitCKuPCEsB580Axg8H31iyEDh7ECKqNiXdo6HN_-mtO5IOXz5FRAEjC6Fv-SVBbRFYcwhRvfpf1xPocY2_IH5vTT3_UXsRdXx_mK0]--></g></svg>