[ all classes ]
[ lzwpack.data ]
Coverage Summary for Class: Binary (lzwpack.data)
| Class | Method, % | Line, % |
|---|---|---|
| Binary$ | 100% (3/ 3) | 100% (11/ 11) |
| total | 100% (3/ 3) | 100% (11/ 11) |
1 package lzwpack.data
2
3 import java.lang.{Long => JavaLong}
4
5 object Binary {
6 /**
7 * Returns n rounded up to nearest 2^k - 1, k ∈ {0,1,2...}.
8 */
9 def bitmask(n: Long): Long = {
10 var v = n
11 v |= v >> 1
12 v |= v >> 2
13 v |= v >> 4
14 v |= v >> 8
15 v |= v >> 16
16 v |= v >> 32
17 v
18 }
19
20 /**
21 * Returns the amount of bits it takes to represent `n` in binary.
22 */
23 def bitsize(n: Long): Int = if(n == 0) 1 else JavaLong.bitCount(bitmask(n))
24 }