<p>It does, but the names of those tree types have changed a little bit; for the standard cover tree use <code>tree::StandardCoverTree</code> [1], for the ball tree, use <code>tree::BallTree</code> [2], for the R tree, use <code>tree::RTree</code> [3], and for the R*-tree, use <code>tree::RStarTree</code> [4].  The basic idea was that a user shouldn't need to explicitly specify the metric for the tree or the statistic type either; instead, they could just specify the type of the tree (as a template template parameter) and then we could use the other template parameters of the class to fill in the rest.</p>

<p>In order to do this, we had to develop a <code>TreeType</code> policy class that takes three template parameters (metric, matrix type, and statistic) [5], then we had to refactor all of the dual-tree algorithms to use this policy class (this was done for the 2.0.0 release).  In general, template typedefs are used to turn more-general classes like <code>BinarySpaceTree</code> (which has four template parameters) into the three that are necessary for the <code>TreeType</code> policy class.  Each of the four tree types I mentioned earlier is a template typedef.</p>

<p>[1] <a href="http://mlpack.org/docs/mlpack-2.0.1/doxygen.php?doc=namespacemlpack_1_1tree.html#a97bb6c0e6c1be359a95c89d21b1afd42">http://mlpack.org/docs/mlpack-2.0.1/doxygen.php?doc=namespacemlpack_1_1tree.html#a97bb6c0e6c1be359a95c89d21b1afd42</a><br>
[2] <a href="http://mlpack.org/docs/mlpack-2.0.1/doxygen.php?doc=namespacemlpack_1_1tree.html#a918273941d2d1d3999bf232280530d50">http://mlpack.org/docs/mlpack-2.0.1/doxygen.php?doc=namespacemlpack_1_1tree.html#a918273941d2d1d3999bf232280530d50</a><br>
[3] <a href="http://mlpack.org/docs/mlpack-2.0.1/doxygen.php?doc=namespacemlpack_1_1tree.html#ae9e12acec37727ae9a4dbca379ba4317">http://mlpack.org/docs/mlpack-2.0.1/doxygen.php?doc=namespacemlpack_1_1tree.html#ae9e12acec37727ae9a4dbca379ba4317</a><br>
[4] <a href="http://mlpack.org/docs/mlpack-2.0.1/doxygen.php?doc=namespacemlpack_1_1tree.html#adbf07e6ff61d2d7840b2c7ea88d25fb7">http://mlpack.org/docs/mlpack-2.0.1/doxygen.php?doc=namespacemlpack_1_1tree.html#adbf07e6ff61d2d7840b2c7ea88d25fb7</a><br>
[5] <a href="http://mlpack.org/docs/mlpack-2.0.1/doxygen.php?doc=trees.html">http://mlpack.org/docs/mlpack-2.0.1/doxygen.php?doc=trees.html</a></p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">&mdash;<br>Reply to this email directly or <a href="https://github.com/mlpack/mlpack/issues/528#issuecomment-190249646">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AJ4bFAhagT1Assvq-hELiGicX6yfrZZFks5powQagaJpZM4Hkfnv.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/mlpack/mlpack/issues/528#issuecomment-190249646"></link>
  <meta itemprop="name" content="View Issue"></meta>
</div>
<meta itemprop="description" content="View this Issue on GitHub"></meta>
</div>