A locality-sensitive hashing library
C++ C
Latest commit 939d19e Feb 21, 2014 @salviati Merge pull request #1 from a1k0n/patch-1
Fix bug in negative orthoplex vertex indices
Failed to load latest commit information.
COPYING initial commit Mar 14, 2013
Makefile initial commit Mar 14, 2013
README.md initial commit Mar 14, 2013
bitvector64.h initial commit Mar 14, 2013
hash.cc initial commit Mar 14, 2013
hash.h initial commit Mar 14, 2013
lsh.h initial commit Mar 14, 2013
lsh_test.cc initial commit Mar 14, 2013
math.cc initial commit Mar 14, 2013
math.h initial commit Mar 14, 2013
querycontext.h initial commit Mar 14, 2013
slsh.h Fix bug in negative orthoplex vertex indices Feb 18, 2014
types.h initial commit Mar 14, 2013
util.cc initial commit Mar 14, 2013
util.h initial commit Mar 14, 2013

README.md

Introduction

slash is a high-performance locality-sensitive hashing (LSH) [1] library, written in C++. It currently implements Spherical LSH (SLSH) [2] which is suitable for high dimensional feature-spaces.

Dependencies

gperftools, sparsehash.

Usage

Simply copy the files lsh.h, slsh.h, querycontext.h, math.h and math.cc into your source tree. To start using the library, you need to define a class satisfying an interface. (see BitVector64 class defined in bitvector64.h for a working example) and a hash function (see hash.*). The file lsh_test.cc contains a benchmark suite.

License

slash is released under GNU General Public License version 3.

References

[1] A. Gionis, P. Indyk and R. Motwani, ``Similarity Search in High Dimensions via Hashing'', Proc. 25th International Conference on Very Large Data Bases, VLDB1999, pp.518-529, 1999.

[2] `Terasawa, K., Tanaka, Y., 2007. Spherical LSH for Approximate Nearest-Neighbor Search on Unit Hypersphere. Springer. pp. 27–38''.