sets up the LSH hashing functions

% These function sets up the LSH hashing functions and the hash 
% tables based on these functions.
% Input:
%     l : number of functions (i.e., of hash tables)
%     k : number of bits in a function (i.e., length of a key)
%     d : is the dimension of the data.
%    case 'w' : choose the bin width manually by writing 'w',a
%                where a is the value you want
% Output:
%     W : the width of intervals on random projection line
%     A : projection matrix (d x k)
%     b : random shifts (1 x k)
%