Module: Bitcount::Pure

Defined in:
lib/bitcount/pure.rb

Class Method Summary collapse

Class Method Details

.layout_sizeObject



6
7
8
# File 'lib/bitcount/pure.rb', line 6

def layout_size
  64
end

.nlz(n, size = nil) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/bitcount/pure.rb', line 25

def nlz(n, size = nil)
  size ||= layout_size
  count = 0
  bits = n.to_s(2)
  layout_error if bits.size > size
  bits.rjust(size, "0").each_char do |b|
    (b == '0') ? count += 1 : break
  end
  count
end

.ntz(n, size = nil) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/bitcount/pure.rb', line 14

def ntz(n, size = nil)
  size ||= layout_size
  count = 0
  bits = n.to_s(2)
  layout_error if bits.size > size
  bits.rjust(size, "0").reverse.each_char do |b|
    (b == '0') ? count += 1 : break
  end
  count
end

.popcount(n) ⇒ Object



10
11
12
# File 'lib/bitcount/pure.rb', line 10

def popcount(n)
  n.to_s(2).count("1")
end