Module: Simhash
- Defined in:
- lib/simhash/sugar.rb
Class Method Summary collapse
-
.cluster(simhashes, threshold) ⇒ Object
Cluster.
- .hamming_distance(hash1, hash2) ⇒ Object
-
.lotate(hash, n = 1) ⇒ Object
Bitwise left rotate.
- .similarity(hash1, hash2) ⇒ Object
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 |