[WIP] Locality Sensitive Hashing for approximate nearest neighbor search(GSoC)

More generally, k indices of h bits each can be populated using m hash bits for m >= k*h, using h bits chosen uniformly without repetition for each, with the permutations encoded as a matrix multiply. The question is: at what point does the reuse begin to hurt results? to what extent does the reuse help performance? I don't know if there is a reasonable answer to these questions easy to implement inside the GSOC, do you? Are there papers quantifying the effects of sharing (even for LSH, ignoring the *Forest aspect)?