Files
mlpack/doc/html/classmlpack_1_1tree_1_1RPlusTreeSplit.html
T

571 lines
28 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>mlpack: mlpack::tree::RPlusTreeSplit&lt; SplitPolicyType, SweepType &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra-stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">mlpack
&#160;<span id="projectnumber">master</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacemlpack.html">mlpack</a></li><li class="navelem"><a class="el" href="namespacemlpack_1_1tree.html">tree</a></li><li class="navelem"><a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html">RPlusTreeSplit</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
<a href="classmlpack_1_1tree_1_1RPlusTreeSplit-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">mlpack::tree::RPlusTreeSplit&lt; SplitPolicyType, SweepType &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>The <a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html" title="The RPlusTreeSplit class performs the split process of a node on overflow. ">RPlusTreeSplit</a> class performs the split process of a node on overflow.
<a href="classmlpack_1_1tree_1_1RPlusTreeSplit.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a2f140ea5eee740b2ef1cffcf4adbaec6"><td class="memItemLeft" align="right" valign="top">typedef SplitPolicyType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html#a2f140ea5eee740b2ef1cffcf4adbaec6">SplitPolicy</a></td></tr>
<tr class="separator:a2f140ea5eee740b2ef1cffcf4adbaec6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a610289d02f6b266356890faac27dae40"><td class="memTemplParams" colspan="2">template&lt;typename TreeType &gt; </td></tr>
<tr class="memitem:a610289d02f6b266356890faac27dae40"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html#a610289d02f6b266356890faac27dae40">SplitLeafNode</a> (TreeType *tree, std::vector&lt; bool &gt; &amp;relevels)</td></tr>
<tr class="memdesc:a610289d02f6b266356890faac27dae40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Split a leaf node using the "default" algorithm. <a href="#a610289d02f6b266356890faac27dae40">More...</a><br /></td></tr>
<tr class="separator:a610289d02f6b266356890faac27dae40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affac69cbb9908ec76145205b26ef16d9"><td class="memTemplParams" colspan="2">template&lt;typename TreeType &gt; </td></tr>
<tr class="memitem:affac69cbb9908ec76145205b26ef16d9"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html#affac69cbb9908ec76145205b26ef16d9">SplitNonLeafNode</a> (TreeType *tree, std::vector&lt; bool &gt; &amp;relevels)</td></tr>
<tr class="memdesc:affac69cbb9908ec76145205b26ef16d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Split a non-leaf node using the "default" algorithm. <a href="#affac69cbb9908ec76145205b26ef16d9">More...</a><br /></td></tr>
<tr class="separator:affac69cbb9908ec76145205b26ef16d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr class="memitem:acd25bab6c6e8a522fbc1d2dc6de4b325"><td class="memTemplParams" colspan="2">template&lt;typename TreeType &gt; </td></tr>
<tr class="memitem:acd25bab6c6e8a522fbc1d2dc6de4b325"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html#acd25bab6c6e8a522fbc1d2dc6de4b325">AddFakeNodes</a> (const TreeType *tree, TreeType *emptyTree)</td></tr>
<tr class="memdesc:acd25bab6c6e8a522fbc1d2dc6de4b325"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method is used to make sure that the tree has equivalent maximum depth in every branch. <a href="#acd25bab6c6e8a522fbc1d2dc6de4b325">More...</a><br /></td></tr>
<tr class="separator:acd25bab6c6e8a522fbc1d2dc6de4b325"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a285ef515b75a1cd3a2288139f4829f35"><td class="memTemplParams" colspan="2">template&lt;typename TreeType &gt; </td></tr>
<tr class="memitem:a285ef515b75a1cd3a2288139f4829f35"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html#a285ef515b75a1cd3a2288139f4829f35">InsertNodeIntoTree</a> (TreeType *destTree, TreeType *srcNode)</td></tr>
<tr class="memdesc:a285ef515b75a1cd3a2288139f4829f35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Insert a node into another node. <a href="#a285ef515b75a1cd3a2288139f4829f35">More...</a><br /></td></tr>
<tr class="separator:a285ef515b75a1cd3a2288139f4829f35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3887af6c8c3331acd9391d7b46566da0"><td class="memTemplParams" colspan="2">template&lt;typename TreeType &gt; </td></tr>
<tr class="memitem:a3887af6c8c3331acd9391d7b46566da0"><td class="memTemplItemLeft" align="right" valign="top">static bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html#a3887af6c8c3331acd9391d7b46566da0">PartitionNode</a> (const TreeType *node, size_t &amp;minCutAxis, typename TreeType::ElemType &amp;minCut)</td></tr>
<tr class="memdesc:a3887af6c8c3331acd9391d7b46566da0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Partition a node using SweepType. <a href="#a3887af6c8c3331acd9391d7b46566da0">More...</a><br /></td></tr>
<tr class="separator:a3887af6c8c3331acd9391d7b46566da0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9849d8b1b3604cf41e10b088aa9fbbc"><td class="memTemplParams" colspan="2">template&lt;typename TreeType &gt; </td></tr>
<tr class="memitem:ab9849d8b1b3604cf41e10b088aa9fbbc"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html#ab9849d8b1b3604cf41e10b088aa9fbbc">SplitLeafNodeAlongPartition</a> (TreeType *tree, TreeType *treeOne, TreeType *treeTwo, const size_t cutAxis, const typename TreeType::ElemType cut)</td></tr>
<tr class="memdesc:ab9849d8b1b3604cf41e10b088aa9fbbc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Split a leaf node along an axis. <a href="#ab9849d8b1b3604cf41e10b088aa9fbbc">More...</a><br /></td></tr>
<tr class="separator:ab9849d8b1b3604cf41e10b088aa9fbbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4314d2ecbc9eb80ad8edb8103f6a0753"><td class="memTemplParams" colspan="2">template&lt;typename TreeType &gt; </td></tr>
<tr class="memitem:a4314d2ecbc9eb80ad8edb8103f6a0753"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html#a4314d2ecbc9eb80ad8edb8103f6a0753">SplitNonLeafNodeAlongPartition</a> (TreeType *tree, TreeType *treeOne, TreeType *treeTwo, const size_t cutAxis, const typename TreeType::ElemType cut)</td></tr>
<tr class="memdesc:a4314d2ecbc9eb80ad8edb8103f6a0753"><td class="mdescLeft">&#160;</td><td class="mdescRight">Split a non-leaf node along an axis. <a href="#a4314d2ecbc9eb80ad8edb8103f6a0753">More...</a><br /></td></tr>
<tr class="separator:a4314d2ecbc9eb80ad8edb8103f6a0753"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename SplitPolicyType, template&lt; typename &gt; class SweepType&gt;<br />
class mlpack::tree::RPlusTreeSplit&lt; SplitPolicyType, SweepType &gt;</h3>
<p>The <a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html" title="The RPlusTreeSplit class performs the split process of a node on overflow. ">RPlusTreeSplit</a> class performs the split process of a node on overflow. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">SplitPolicyType</td><td>The class that helps to determine the subtree into which we should insert a child node. </td></tr>
<tr><td class="paramname">SweepType</td><td>The class that finds the partition of a node along a given axis. The partition algorithm tries to find a partition along each axis, evaluates each partition and chooses the best one. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="r__plus__tree__split_8hpp_source.html#l00032">32</a> of file <a class="el" href="r__plus__tree__split_8hpp_source.html">r_plus_tree_split.hpp</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="a2f140ea5eee740b2ef1cffcf4adbaec6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename SplitPolicyType , template&lt; typename &gt; class SweepType&gt; </div>
<table class="memname">
<tr>
<td class="memname">typedef SplitPolicyType <a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html">mlpack::tree::RPlusTreeSplit</a>&lt; SplitPolicyType, SweepType &gt;::<a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html#a2f140ea5eee740b2ef1cffcf4adbaec6">SplitPolicy</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="r__plus__tree__split_8hpp_source.html#l00035">35</a> of file <a class="el" href="r__plus__tree__split_8hpp_source.html">r_plus_tree_split.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="acd25bab6c6e8a522fbc1d2dc6de4b325"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename SplitPolicyType , template&lt; typename &gt; class SweepType&gt; </div>
<div class="memtemplate">
template&lt;typename TreeType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html">mlpack::tree::RPlusTreeSplit</a>&lt; SplitPolicyType, SweepType &gt;::AddFakeNodes </td>
<td>(</td>
<td class="paramtype">const TreeType *&#160;</td>
<td class="paramname"><em>tree</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TreeType *&#160;</td>
<td class="paramname"><em>emptyTree</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method is used to make sure that the tree has equivalent maximum depth in every branch. </p>
<p>The method should be invoked if one of two resulting subtrees is empty after the split process (i.e. the subtree contains no children). The method convert the empty node into an empty subtree (increase the node in depth).</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tree</td><td>One of two subtrees that is not empty. </td></tr>
<tr><td class="paramname">emptyTree</td><td>The empty subtree. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a285ef515b75a1cd3a2288139f4829f35"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename SplitPolicyType , template&lt; typename &gt; class SweepType&gt; </div>
<div class="memtemplate">
template&lt;typename TreeType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html">mlpack::tree::RPlusTreeSplit</a>&lt; SplitPolicyType, SweepType &gt;::InsertNodeIntoTree </td>
<td>(</td>
<td class="paramtype">TreeType *&#160;</td>
<td class="paramname"><em>destTree</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TreeType *&#160;</td>
<td class="paramname"><em>srcNode</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Insert a node into another node. </p>
</div>
</div>
<a class="anchor" id="a3887af6c8c3331acd9391d7b46566da0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename SplitPolicyType , template&lt; typename &gt; class SweepType&gt; </div>
<div class="memtemplate">
template&lt;typename TreeType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool <a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html">mlpack::tree::RPlusTreeSplit</a>&lt; SplitPolicyType, SweepType &gt;::PartitionNode </td>
<td>(</td>
<td class="paramtype">const TreeType *&#160;</td>
<td class="paramname"><em>node</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t &amp;&#160;</td>
<td class="paramname"><em>minCutAxis</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">typename TreeType::ElemType &amp;&#160;</td>
<td class="paramname"><em>minCut</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Partition a node using SweepType. </p>
<p>This method invokes SweepType::Sweep(Non)LeafNode() for each dimension and chooses the best one. The method returns false if the node needn't partitioning. Overwise, the method returns true. If the method failed in finding an acceptable partition, the minCutAxis will be equal to the number of dimensions.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">node</td><td>The node that is being split. </td></tr>
<tr><td class="paramname">minCutAxis</td><td>The axis along which the node will be split. </td></tr>
<tr><td class="paramname">minCut</td><td>The coordinate at which the node will be split. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a610289d02f6b266356890faac27dae40"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename SplitPolicyType , template&lt; typename &gt; class SweepType&gt; </div>
<div class="memtemplate">
template&lt;typename TreeType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html">mlpack::tree::RPlusTreeSplit</a>&lt; SplitPolicyType, SweepType &gt;::SplitLeafNode </td>
<td>(</td>
<td class="paramtype">TreeType *&#160;</td>
<td class="paramname"><em>tree</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; bool &gt; &amp;&#160;</td>
<td class="paramname"><em>relevels</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Split a leaf node using the "default" algorithm. </p>
<p>If necessary, this split will propagate upwards through the tree. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">node.</td><td>The node that is being split. </td></tr>
<tr><td class="paramname">relevels</td><td>Not used. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ab9849d8b1b3604cf41e10b088aa9fbbc"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename SplitPolicyType , template&lt; typename &gt; class SweepType&gt; </div>
<div class="memtemplate">
template&lt;typename TreeType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html">mlpack::tree::RPlusTreeSplit</a>&lt; SplitPolicyType, SweepType &gt;::SplitLeafNodeAlongPartition </td>
<td>(</td>
<td class="paramtype">TreeType *&#160;</td>
<td class="paramname"><em>tree</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TreeType *&#160;</td>
<td class="paramname"><em>treeOne</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TreeType *&#160;</td>
<td class="paramname"><em>treeTwo</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>cutAxis</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const typename TreeType::ElemType&#160;</td>
<td class="paramname"><em>cut</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Split a leaf node along an axis. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tree</td><td>The node that is being split into two new nodes. </td></tr>
<tr><td class="paramname">treeOne</td><td>The first subtree of two resulting subtrees. </td></tr>
<tr><td class="paramname">treeOne</td><td>The second subtree of two resulting subtrees. </td></tr>
<tr><td class="paramname">cutAxis</td><td>The axis along which the node is being split. </td></tr>
<tr><td class="paramname">cut</td><td>The coordinate at which the node is being split. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="affac69cbb9908ec76145205b26ef16d9"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename SplitPolicyType , template&lt; typename &gt; class SweepType&gt; </div>
<div class="memtemplate">
template&lt;typename TreeType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool <a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html">mlpack::tree::RPlusTreeSplit</a>&lt; SplitPolicyType, SweepType &gt;::SplitNonLeafNode </td>
<td>(</td>
<td class="paramtype">TreeType *&#160;</td>
<td class="paramname"><em>tree</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; bool &gt; &amp;&#160;</td>
<td class="paramname"><em>relevels</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Split a non-leaf node using the "default" algorithm. </p>
<p>If this is a root node, the tree increases in depth. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">node.</td><td>The node that is being split. </td></tr>
<tr><td class="paramname">relevels</td><td>Not used. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a4314d2ecbc9eb80ad8edb8103f6a0753"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename SplitPolicyType , template&lt; typename &gt; class SweepType&gt; </div>
<div class="memtemplate">
template&lt;typename TreeType &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void <a class="el" href="classmlpack_1_1tree_1_1RPlusTreeSplit.html">mlpack::tree::RPlusTreeSplit</a>&lt; SplitPolicyType, SweepType &gt;::SplitNonLeafNodeAlongPartition </td>
<td>(</td>
<td class="paramtype">TreeType *&#160;</td>
<td class="paramname"><em>tree</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TreeType *&#160;</td>
<td class="paramname"><em>treeOne</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TreeType *&#160;</td>
<td class="paramname"><em>treeTwo</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const size_t&#160;</td>
<td class="paramname"><em>cutAxis</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const typename TreeType::ElemType&#160;</td>
<td class="paramname"><em>cut</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Split a non-leaf node along an axis. </p>
<p>This method propagates the split downward up to a leaf node if necessary.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tree</td><td>The node that is being split into two new nodes. </td></tr>
<tr><td class="paramname">treeOne</td><td>The first subtree of two resulting subtrees. </td></tr>
<tr><td class="paramname">treeOne</td><td>The second subtree of two resulting subtrees. </td></tr>
<tr><td class="paramname">cutAxis</td><td>The axis along which the node is being split. </td></tr>
<tr><td class="paramname">cut</td><td>The coordinate at which the node is being split. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/mlpack/core/tree/rectangle_tree/<a class="el" href="r__plus__tree__split_8hpp_source.html">r_plus_tree_split.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
<script type="text/javascript">
var x = document.getElementsByClassName("formulaDsp");
var i;
for (i = 0; i < x.length; i++)
{
x[i].width /= 4;
}
</script>
</html>