[mlpack-git] master: Fix element access, and corner case where mod is 0. (eea2aa4)

gitdub at mlpack.org gitdub at mlpack.org
Wed Jun 29 11:07:06 EDT 2016


Repository : https://github.com/mlpack/mlpack
On branch  : master
Link       : https://github.com/mlpack/mlpack/compare/e6bc4b41704e546a7495fcca90db7cd0919ca189...eea2aa43b9b914b4d64f45bdf1f5358faefe2522

>---------------------------------------------------------------

commit eea2aa43b9b914b4d64f45bdf1f5358faefe2522
Author: Ryan Curtin <ryan at ratml.org>
Date:   Wed Jun 29 11:07:06 2016 -0400

    Fix element access, and corner case where mod is 0.


>---------------------------------------------------------------

eea2aa43b9b914b4d64f45bdf1f5358faefe2522
 src/mlpack/methods/lsh/lsh_search_impl.hpp | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/mlpack/methods/lsh/lsh_search_impl.hpp b/src/mlpack/methods/lsh/lsh_search_impl.hpp
index 64ad80a..e500407 100644
--- a/src/mlpack/methods/lsh/lsh_search_impl.hpp
+++ b/src/mlpack/methods/lsh/lsh_search_impl.hpp
@@ -193,14 +193,19 @@ void LSHSearch<SortPolicy>::Train(const arma::mat& referenceSet,
     // Now we hash every key, point ID to its corresponding bucket.  We must
     // also normalize the hashes to the range [0, secondHashSize).
     arma::rowvec unmodVector = secondHashWeights.t() * arma::floor(hashMat);
-    for (size_t j = 0; j < secondHashVectors.n_cols; ++j)
+    for (size_t j = 0; j < unmodVector.n_elem; ++j)
     {
       double shs = (double) secondHashSize; // Convenience cast.
       if (unmodVector[j] >= 0.0)
-        secondHashVectors[j] = size_t(fmod(unmodVector[j], shs));
+      {
+        secondHashVectors(i, j) = size_t(fmod(unmodVector[j], shs));
+      }
       else
-        secondHashVectors[j] = secondHashSize -
-            size_t(fmod(-unmodVector[j], shs));
+      {
+        const double mod = fmod(-unmodVector[j], shs);
+        secondHashVectors(i, j) = (mod < 1.0) ? 0 : secondHashSize -
+            size_t(mod);
+      }
     }
   }
 




More information about the mlpack-git mailing list