Sha256: 27fd3bc8bb701d28fe70e94b054b1eaf92536255ebfd9d89239e6300286a7790
Contents?: true
Size: 478 Bytes
Versions: 1
Compression:
Stored size: 478 Bytes
Contents
# frozen_string_literal: true module Xor class Filter def initialize(size) @size = size @hashes = Array.new(size, 0) end def add(value) hash1, hash2 = hash(value) @hashes[hash1 % @size] ^= hash2 end def include?(value) hash1, hash2 = hash(value) (@hashes[hash1 % @size] ^ hash2).zero? end private def hash(value) hash1 = value.hash hash2 = hash1 >> 16 [hash1, hash2] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
xor-0.1.0 | lib/xor.rb |