Sha256: 6c07ad795bf6e7c9eb986e777fd9e4c03a2e5940e9b478e5ed0b447ab994592d
Contents?: true
Size: 774 Bytes
Versions: 1
Compression:
Stored size: 774 Bytes
Contents
require "bx/version" class Bx class ::Integer def highest_one_bits int = self Enumerator.new do |e| loop do b_len = int.bit_length break if b_len == 0 pos = b_len - 1 e << pos int = int ^ (1 << pos) end end end def lowest_one_bits int = self Enumerator.new do |e| off = 0 loop do lowest = int & -int break if lowest == 0 b_len = lowest.bit_length off += b_len e << off - 1 int = int >> b_len end end end end def initialize @hash = Hash.new{ |h, k| h[k] = 0 } end def []=(key, id) @hash[key] |= (1 << id) end def [](key) @hash[key] end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bx-0.1.0 | lib/bx.rb |