<p>After about two days of investigation of <code>BinarySpaceTree</code> I've given up doing that merge, because of these, few reasons:</p>

<ul>
<li>
<code>BinarySpaceTree</code> is both quite universal, but in the same time - pretty much bound to tasks like kNN, etc. For example, the split criteria is solely bound to the <code>Bound</code> type, i.e. the space boundaries, which is not exactly the case in DET, where the split is based on a broader term of <em>error</em>.</li>
<li>Also, there is a good amount of methods, related to this approach, and having nothing to do with DET's task (<code>*Distance</code>, <code>*Descendants</code>, etc.). In the same time methods a-la <code>ComputeValue</code> are missing as a concept.</li>
<li>Some of the template arguments of <code>BinarySpaceTree</code> class are really making it pretty weird to provide necessary classes, being templated themselves - I know this is because of ease of providing these arguments.</li>
</ul>

<p>So, at the end of the day, I've realized it is more like a "hack", rather than different instantiation - the value that <code>BinarySpaceTree</code> would bring would be comparably small to the custom implementation that <code>DTree</code> requires.</p>

<p>However, I've made the the whole DET algorithm implementation sparse-matrix enabled (Pull Request <a href="https://github.com/mlpack/mlpack/pull/802" class="issue-link js-issue-link" data-url="https://github.com/mlpack/mlpack/issues/802" data-id="183646953" data-error-text="Failed to load issue title" data-permission-text="Issue title is private">#802</a>), so it shouldn't be difficult for this merge to happen, should someone wants to do it.</p>

<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/issues/227#issuecomment-254470448">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AJ4bFPs6tNMQINqBzEqKCn9FnTMyjLXcks5q1KF4gaJpZM4DM2SH">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AJ4bFKp0ohYSSI4S_bTWvCeJXcaOqNmJks5q1KF4gaJpZM4DM2SH.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/227#issuecomment-254470448"></link>
  <meta itemprop="name" content="View Issue"></meta>
</div>
<meta itemprop="description" content="View this Issue 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":"PERSON","message":"@thejonan in #227: After about two days of investigation of `BinarySpaceTree` I've given up doing that merge, because of these, few reasons:\r\n\r\n- `BinarySpaceTree` is both quite universal, but in the same time - pretty much bound to tasks like kNN, etc. For example, the split criteria is solely bound to the `Bound` type, i.e. the space boundaries, which is not exactly the case in DET, where the split is based on a broader term of _error_.\r\n- Also, there is a good amount of methods, related to this approach, and having nothing to do with DET's task (`*Distance`, `*Descendants`, etc.). In the same time methods a-la `ComputeValue` are missing as a concept.\r\n- Some of the template arguments of `BinarySpaceTree` class are really making it pretty weird to provide necessary classes, being templated themselves - I know this is because of ease of providing these arguments.\r\n\r\nSo, at the end of the day, I've realized it is more like a \"hack\", rather than different instantiation - the value that `BinarySpaceTree` would bring would be comparably small to the custom implementation that `DTree` requires.\r\n\r\nHowever, I've made the the whole DET algorithm implementation sparse-matrix enabled (Pull Request #802), so it shouldn't be difficult for this merge to happen, should someone wants to do it."}],"action":{"name":"View Issue","url":"https://github.com/mlpack/mlpack/issues/227#issuecomment-254470448"}}}</script>