<p>I removed central nodes. Thus, the VP tree may be implemented in terms of <code>BinarySpaceTree</code>. So, I decided to remove the <code>VantagePointTree</code> class. Since a point may be a vantage point several times, <code>TreeTraits::FirstSiblingFirstPointIsCentroid</code> has become useless. So, I removed that.</p>

<p>Moreover, I tried to improve distance calculations in <code>HRectBound</code>. Right now, the kd tree works much faster on my system.</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>&nbsp;&nbsp;<a href='https://github.com/mlpack/mlpack/pull/760'>https://github.com/mlpack/mlpack/pull/760</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Vantage point tree improvements.</li>
  <li>Fixed VantagePointSplit removal.</li>
  <li>HRectBound improvements.</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-0">src/mlpack/core/tree/CMakeLists.txt</a>
    (13)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-1">src/mlpack/core/tree/binary_space_tree.hpp</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-2">src/mlpack/core/tree/binary_space_tree/binary_space_tree.hpp</a>
    (17)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-3">src/mlpack/core/tree/binary_space_tree/binary_space_tree_impl.hpp</a>
    (47)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-4">src/mlpack/core/tree/binary_space_tree/traits.hpp</a>
    (24)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-5">src/mlpack/core/tree/binary_space_tree/typedef.hpp</a>
    (58)
  </li>
  <li>
    <strong>R</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-6">src/mlpack/core/tree/binary_space_tree/vantage_point_split.hpp</a>
    (0)
  </li>
  <li>
    <strong>R</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-7">src/mlpack/core/tree/binary_space_tree/vantage_point_split_impl.hpp</a>
    (0)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-8">src/mlpack/core/tree/cover_tree/traits.hpp</a>
    (6)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-9">src/mlpack/core/tree/hollow_ball_bound.hpp</a>
    (29)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-10">src/mlpack/core/tree/hollow_ball_bound_impl.hpp</a>
    (169)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-11">src/mlpack/core/tree/hrectbound_impl.hpp</a>
    (168)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-12">src/mlpack/core/tree/rectangle_tree/traits.hpp</a>
    (12)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-13">src/mlpack/core/tree/tree_traits.hpp</a>
    (6)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-14">src/mlpack/core/tree/vantage_point_tree.hpp</a>
    (21)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-15">src/mlpack/core/tree/vantage_point_tree/dual_tree_traverser.hpp</a>
    (98)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-16">src/mlpack/core/tree/vantage_point_tree/dual_tree_traverser_impl.hpp</a>
    (237)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-17">src/mlpack/core/tree/vantage_point_tree/single_tree_traverser.hpp</a>
    (63)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-18">src/mlpack/core/tree/vantage_point_tree/single_tree_traverser_impl.hpp</a>
    (113)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-19">src/mlpack/core/tree/vantage_point_tree/traits.hpp</a>
    (66)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-20">src/mlpack/core/tree/vantage_point_tree/typedef.hpp</a>
    (76)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-21">src/mlpack/core/tree/vantage_point_tree/vantage_point_tree.hpp</a>
    (508)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-22">src/mlpack/core/tree/vantage_point_tree/vantage_point_tree_impl.hpp</a>
    (937)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-23">src/mlpack/methods/neighbor_search/neighbor_search_rules_impl.hpp</a>
    (55)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-24">src/mlpack/methods/neighbor_search/ns_model.hpp</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-25">src/mlpack/methods/range_search/range_search_rules_impl.hpp</a>
    (42)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-26">src/mlpack/methods/range_search/rs_model.hpp</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/mlpack/mlpack/pull/760/files#diff-27">src/mlpack/tests/vantage_point_tree_test.cpp</a>
    (82)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/mlpack/mlpack/pull/760.patch'>https://github.com/mlpack/mlpack/pull/760.patch</a></li>
  <li><a href='https://github.com/mlpack/mlpack/pull/760.diff'>https://github.com/mlpack/mlpack/pull/760.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">&mdash;<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/mlpack/mlpack/pull/760">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AJ4bFE4frTee87kNxqP95c7tP9NhSQlZks5qfLj2gaJpZM4JjVKx">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AJ4bFHTPtOAdv0lkUl6DVRLG12wFHWx3ks5qfLj2gaJpZM4JjVKx.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/pull/760"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/mlpack/mlpack","title":"mlpack/mlpack","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/mlpack/mlpack"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"Vantage point tree and HRectBound improvements (#760)"}],"action":{"name":"View Pull Request","url":"https://github.com/mlpack/mlpack/pull/760"}}}</script>