Module: Simhash

Defined in:
lib/simhash/sugar.rb

Class Method Summary collapse

Class Method Details

.cluster(simhashes, threshold) ⇒ Object

Cluster



17
18
# File 'lib/simhash/sugar.rb', line 17

def self.cluster(simhashes, threshold)
end

.hamming_distance(hash1, hash2) ⇒ Object



2
3
4
# File 'lib/simhash/sugar.rb', line 2

def self.hamming_distance(hash1, hash2)
  (hash1 ^ hash2).to_s(2).count('1')
end

.lotate(hash, n = 1) ⇒ Object

Bitwise left rotate



11
12
13
14
# File 'lib/simhash/sugar.rb', line 11

def self.lotate(hash, n=1)
  (hash << n | hash >> (Jules::SIMHASH_BITLENGTH - n)) &
    ('1'*Jules::SIMHASH_BITLENGTH).to_i(2)
end

.similarity(hash1, hash2) ⇒ Object



6
7
8
# File 'lib/simhash/sugar.rb', line 6

def self.similarity(hash1, hash2)
  1 - (Simhash.hamming_distance(hash1, hash2) / Jules::SIMHASH_BITLENGTH.to_f)
end