<p>In <a href="https://github.com/mlpack/mlpack/pull/746#discussion_r76261196">src/mlpack/core/tree/address.hpp</a>:</p>
<pre style='color:#555'>&gt; +namespace mlpack {
&gt; +
&gt; +namespace bound {
&gt; +
&gt; +namespace addr {
&gt; +
&gt; +/**
&gt; + * Calculate the address of a point. Be careful, the point and the address
&gt; + * variables should be equal-sized and the type of the address should correspond
&gt; + * to the type of the vector.
&gt; + *
&gt; + * @param address The resulting address.
&gt; + * @param point The point that is being translated to the address.
&gt; + */
&gt; +template&lt;typename AddressType, typename VecType&gt;
&gt; +void PointToAddress(AddressType&amp; address, const VecType&amp; point)
</pre>
<p>If you don't mind, I'd like to add some documentation on what exactly is going on in this function.  I spent a long time reading it, and it appears that really all we are doing (from a high level) is reordering the bits in the floating point number.  So in the one-dimensional case, we have a number of the form</p>

<pre><code>[[ mantissa ][ exponent ]]
</code></pre>

<p>but your code transforms it roughly to</p>

<pre><code>[[ exponent ][ mantissa ]]
</code></pre>

<p>(but not exactly, since some modification of the mantissa may be necessary).  In the multi-dimensional case, after we transform the representation, we have to interleave the bits of the new representation across all of the elements in the address vector.  Is that correct?  If so I can add those comments (or you can add them if you like, maybe it is better if you add them since you are more familiar with the code).</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/pull/746/files/f17843fc8e8ef2b1c4b04d572c521575f20a1f3c#r76261196">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AJ4bFPiJMvMYiWR_3UPfI0CYd0zrSdINks5qja8tgaJpZM4JZrEi">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AJ4bFNIZRt8BFyejJpBGtWWMWIfoJNoaks5qja8tgaJpZM4JZrEi.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/746/files/f17843fc8e8ef2b1c4b04d572c521575f20a1f3c#r76261196"></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":"PERSON","message":"@rcurtin in #746: If you don't mind, I'd like to add some documentation on what exactly is going on in this function.  I spent a long time reading it, and it appears that really all we are doing (from a high level) is reordering the bits in the floating point number.  So in the one-dimensional case, we have a number of the form\r\n\r\n```\r\n[[ mantissa ][ exponent ]]\r\n```\r\n\r\nbut your code transforms it roughly to\r\n\r\n```\r\n[[ exponent ][ mantissa ]]\r\n```\r\n\r\n(but not exactly, since some modification of the mantissa may be necessary).  In the multi-dimensional case, after we transform the representation, we have to interleave the bits of the new representation across all of the elements in the address vector.  Is that correct?  If so I can add those comments (or you can add them if you like, maybe it is better if you add them since you are more familiar with the code)."}],"action":{"name":"View Pull Request","url":"https://github.com/mlpack/mlpack/pull/746/files/f17843fc8e8ef2b1c4b04d572c521575f20a1f3c#r76261196"}}}</script>