Sha256: 48c8a67690583e0abea796eb50d59c38a1d2a742e8d4784ec72eccd97b6403ea
Contents?: true
Size: 884 Bytes
Versions: 1
Compression:
Stored size: 884 Bytes
Contents
require "bx/version" class Bx class ::Integer def hi_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 lo_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 def keys @hash.keys end def values @hash.values end def bits_bytes @hash.each_value.sum(&:size) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bx-0.1.1 | lib/bx.rb |