I’m still working on a succinct data structure library for Zig. So far got the rank-0/rank-1/select-0/select-1 operations performed solidly, after several changes of algorithms and rounds of algorithm evolution. Also a balanced parentheses bit vector built on top of the lower level operations with a Range Min/Max Tree implementation is done, but the performance of RMMTree is atrocious; need another rounds of algorithm evolution. Once that’s done, succinct data structure trees can be implemented.
For demo, not much to show for a low level library. May be some benchmark numbers. It’s run on a single core of a mid tier laptop of last year model (Intel Core Ultra 7 255H).
Benchmark - rank, sequential, various bit sizes and densities
Alg: Popzy, bits: 100.0M, bit density: 0.01%, bit randomization: 10.84ms, vec build: 2.44ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
sequential rank(), 100.0M, 5.0M, 0.01%, 32, 8.38, 1.68
sequential rank(), 100.0M, 5.0M, 0.01%, 128, 9.66, 1.93
sequential rank(), 100.0M, 5.0M, 0.01%, 512, 18.45, 3.69
sequential rank(), 100.0M, 5.0M, 0.01%, 4096, 23.81, 4.77
sequential rank(), 100.0M, 5.0M, 0.01%, 65536, 19.27, 3.87
sequential rank(), 100.0M, 4.7M, 0.01%, 524288, 22.44, 4.76
sequential rank(), 100.0M, 4.2M, 0.01%, 4194304, 21.45, 5.12
sequential rank(), 100.0M, 8.4M, 0.01%, 16777216, 43.22, 5.15
sequential rank(), 100.0M, 8.4M, 0.01%, 67108864, 43.18, 5.15
Alg: Popzy, bits: 100.0M, bit density: 10.00%, bit randomization: 765.02ms, vec build: 3.14ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
sequential rank(), 100.0M, 5.0M, 10.00%, 32, 8.38, 1.68
sequential rank(), 100.0M, 5.0M, 10.00%, 128, 9.68, 1.94
sequential rank(), 100.0M, 5.0M, 10.00%, 512, 17.55, 3.51
sequential rank(), 100.0M, 5.0M, 10.00%, 4096, 25.26, 5.06
sequential rank(), 100.0M, 5.0M, 10.00%, 65536, 26.02, 5.22
sequential rank(), 100.0M, 4.7M, 10.00%, 524288, 24.85, 5.27
sequential rank(), 100.0M, 4.2M, 10.00%, 4194304, 22.40, 5.34
sequential rank(), 100.0M, 8.4M, 10.00%, 16777216, 43.14, 5.14
sequential rank(), 100.0M, 8.4M, 10.00%, 67108864, 44.31, 5.28
Alg: Popzy, bits: 100.0M, bit density: 50.00%, bit randomization: 16.87ms, vec build: 2.73ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
sequential rank(), 100.0M, 5.0M, 50.00%, 32, 8.38, 1.68
sequential rank(), 100.0M, 5.0M, 50.00%, 128, 9.69, 1.94
sequential rank(), 100.0M, 5.0M, 50.00%, 512, 19.87, 3.97
sequential rank(), 100.0M, 5.0M, 50.00%, 4096, 26.51, 5.30
sequential rank(), 100.0M, 5.0M, 50.00%, 65536, 26.55, 5.33
sequential rank(), 100.0M, 4.7M, 50.00%, 524288, 23.97, 5.08
sequential rank(), 100.0M, 4.2M, 50.00%, 4194304, 21.29, 5.08
sequential rank(), 100.0M, 8.4M, 50.00%, 16777216, 42.08, 5.02
sequential rank(), 100.0M, 8.4M, 50.00%, 67108864, 44.98, 5.36
Alg: Popzy, bits: 500.0M, bit density: 0.01%, bit randomization: 73.05ms, vec build: 16.11ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
sequential rank(), 500.0M, 5.0M, 0.01%, 32, 8.38, 1.68
sequential rank(), 500.0M, 5.0M, 0.01%, 128, 10.14, 2.03
sequential rank(), 500.0M, 5.0M, 0.01%, 512, 18.57, 3.71
sequential rank(), 500.0M, 5.0M, 0.01%, 4096, 26.02, 5.21
sequential rank(), 500.0M, 5.0M, 0.01%, 65536, 25.54, 5.13
sequential rank(), 500.0M, 4.7M, 0.01%, 524288, 24.50, 5.19
sequential rank(), 500.0M, 4.2M, 0.01%, 4194304, 21.74, 5.18
sequential rank(), 500.0M, 8.4M, 0.01%, 16777216, 40.02, 4.77
sequential rank(), 500.0M, 8.4M, 0.01%, 67108864, 44.31, 5.28
sequential rank(), 500.0M, 24.4M, 0.01%, 268435456, 124.53, 5.10
Alg: Popzy, bits: 500.0M, bit density: 10.00%, bit randomization: 3931.88ms, vec build: 13.62ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
sequential rank(), 500.0M, 5.0M, 10.00%, 32, 7.19, 1.44
sequential rank(), 500.0M, 5.0M, 10.00%, 128, 7.72, 1.54
sequential rank(), 500.0M, 5.0M, 10.00%, 512, 14.32, 2.86
sequential rank(), 500.0M, 5.0M, 10.00%, 4096, 20.05, 4.01
sequential rank(), 500.0M, 5.0M, 10.00%, 65536, 25.19, 5.06
sequential rank(), 500.0M, 4.7M, 10.00%, 524288, 25.28, 5.36
sequential rank(), 500.0M, 4.2M, 10.00%, 4194304, 21.91, 5.22
sequential rank(), 500.0M, 8.4M, 10.00%, 16777216, 42.96, 5.12
sequential rank(), 500.0M, 8.4M, 10.00%, 67108864, 45.49, 5.42
sequential rank(), 500.0M, 24.4M, 10.00%, 268435456, 125.15, 5.13
Alg: Popzy, bits: 500.0M, bit density: 50.00%, bit randomization: 82.94ms, vec build: 15.01ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
sequential rank(), 500.0M, 5.0M, 50.00%, 32, 8.68, 1.74
sequential rank(), 500.0M, 5.0M, 50.00%, 128, 10.92, 2.18
sequential rank(), 500.0M, 5.0M, 50.00%, 512, 19.10, 3.82
sequential rank(), 500.0M, 5.0M, 50.00%, 4096, 25.18, 5.04
sequential rank(), 500.0M, 5.0M, 50.00%, 65536, 25.07, 5.03
sequential rank(), 500.0M, 4.7M, 50.00%, 524288, 24.84, 5.26
sequential rank(), 500.0M, 4.2M, 50.00%, 4194304, 21.15, 5.04
sequential rank(), 500.0M, 8.4M, 50.00%, 16777216, 43.06, 5.13
sequential rank(), 500.0M, 8.4M, 50.00%, 67108864, 47.06, 5.61
sequential rank(), 500.0M, 24.4M, 50.00%, 268435456, 103.84, 4.26
Alg: Popzy, bits: 1.0B, bit density: 0.01%, bit randomization: 145.83ms, vec build: 31.45ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
sequential rank(), 1.0B, 5.0M, 0.01%, 32, 8.41, 1.68
sequential rank(), 1.0B, 5.0M, 0.01%, 128, 9.65, 1.93
sequential rank(), 1.0B, 5.0M, 0.01%, 512, 17.22, 3.44
sequential rank(), 1.0B, 5.0M, 0.01%, 4096, 24.65, 4.93
sequential rank(), 1.0B, 5.0M, 0.01%, 65536, 25.11, 5.04
sequential rank(), 1.0B, 4.7M, 0.01%, 524288, 19.51, 4.13
sequential rank(), 1.0B, 4.2M, 0.01%, 4194304, 19.61, 4.68
sequential rank(), 1.0B, 8.4M, 0.01%, 16777216, 43.99, 5.24
sequential rank(), 1.0B, 8.4M, 0.01%, 67108864, 44.78, 5.34
sequential rank(), 1.0B, 24.4M, 0.01%, 268435456, 117.80, 4.83
sequential rank(), 1.0B, 48.8M, 0.01%, 536870912, 236.98, 4.86
Alg: Popzy, bits: 1.0B, bit density: 10.00%, bit randomization: 7970.90ms, vec build: 27.95ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
sequential rank(), 1.0B, 5.0M, 10.00%, 32, 6.71, 1.34
sequential rank(), 1.0B, 5.0M, 10.00%, 128, 9.66, 1.93
sequential rank(), 1.0B, 5.0M, 10.00%, 512, 18.54, 3.71
sequential rank(), 1.0B, 5.0M, 10.00%, 4096, 24.82, 4.97
sequential rank(), 1.0B, 5.0M, 10.00%, 65536, 25.06, 5.03
sequential rank(), 1.0B, 4.7M, 10.00%, 524288, 24.95, 5.29
sequential rank(), 1.0B, 4.2M, 10.00%, 4194304, 21.35, 5.09
sequential rank(), 1.0B, 8.4M, 10.00%, 16777216, 42.23, 5.03
sequential rank(), 1.0B, 8.4M, 10.00%, 67108864, 44.09, 5.26
sequential rank(), 1.0B, 24.4M, 10.00%, 268435456, 113.57, 4.65
sequential rank(), 1.0B, 48.8M, 10.00%, 536870912, 225.44, 4.62
Alg: Popzy, bits: 1.0B, bit density: 50.00%, bit randomization: 167.22ms, vec build: 27.63ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
sequential rank(), 1.0B, 5.0M, 50.00%, 32, 6.56, 1.31
sequential rank(), 1.0B, 5.0M, 50.00%, 128, 7.59, 1.52
sequential rank(), 1.0B, 5.0M, 50.00%, 512, 15.90, 3.18
sequential rank(), 1.0B, 5.0M, 50.00%, 4096, 19.42, 3.89
sequential rank(), 1.0B, 5.0M, 50.00%, 65536, 23.16, 4.65
sequential rank(), 1.0B, 4.7M, 50.00%, 524288, 19.97, 4.23
sequential rank(), 1.0B, 4.2M, 50.00%, 4194304, 20.99, 5.01
sequential rank(), 1.0B, 8.4M, 50.00%, 16777216, 36.10, 4.30
sequential rank(), 1.0B, 8.4M, 50.00%, 67108864, 45.12, 5.38
sequential rank(), 1.0B, 24.4M, 50.00%, 268435456, 103.24, 4.23
sequential rank(), 1.0B, 48.8M, 50.00%, 536870912, 204.88, 4.20
Alg: Popzy, bits: 5.0B, bit density: 0.01%, bit randomization: 677.25ms, vec build: 140.22ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
sequential rank(), 5.0B, 5.0M, 0.01%, 32, 8.47, 1.69
sequential rank(), 5.0B, 5.0M, 0.01%, 128, 10.46, 2.09
sequential rank(), 5.0B, 5.0M, 0.01%, 512, 18.86, 3.77
sequential rank(), 5.0B, 5.0M, 0.01%, 4096, 26.26, 5.26
sequential rank(), 5.0B, 5.0M, 0.01%, 65536, 25.13, 5.04
sequential rank(), 5.0B, 4.7M, 0.01%, 524288, 25.66, 5.44
sequential rank(), 5.0B, 4.2M, 0.01%, 4194304, 20.48, 4.88
sequential rank(), 5.0B, 8.4M, 0.01%, 16777216, 42.00, 5.01
sequential rank(), 5.0B, 8.4M, 0.01%, 67108864, 44.85, 5.35
sequential rank(), 5.0B, 24.4M, 0.01%, 268435456, 110.34, 4.52
sequential rank(), 5.0B, 48.8M, 0.01%, 536870912, 221.03, 4.53
sequential rank(), 5.0B, 97.6M, 0.01%, 1073741824, 466.10, 4.78
sequential rank(), 5.0B, 390.5M, 0.01%, 4294967296, 1869.38, 4.79
Alg: Popzy, bits: 5.0B, bit density: 10.00%, bit randomization: 37437.64ms, vec build: 148.12ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
sequential rank(), 5.0B, 5.0M, 10.00%, 32, 6.59, 1.32
sequential rank(), 5.0B, 5.0M, 10.00%, 128, 9.45, 1.89
sequential rank(), 5.0B, 5.0M, 10.00%, 512, 15.15, 3.03
sequential rank(), 5.0B, 5.0M, 10.00%, 4096, 22.07, 4.42
sequential rank(), 5.0B, 5.0M, 10.00%, 65536, 22.49, 4.52
sequential rank(), 5.0B, 4.7M, 10.00%, 524288, 23.42, 4.96
sequential rank(), 5.0B, 4.2M, 10.00%, 4194304, 19.70, 4.70
sequential rank(), 5.0B, 8.4M, 10.00%, 16777216, 37.49, 4.47
sequential rank(), 5.0B, 8.4M, 10.00%, 67108864, 38.69, 4.61
sequential rank(), 5.0B, 24.4M, 10.00%, 268435456, 119.01, 4.88
sequential rank(), 5.0B, 48.8M, 10.00%, 536870912, 248.32, 5.09
sequential rank(), 5.0B, 97.6M, 10.00%, 1073741824, 451.21, 4.62
sequential rank(), 5.0B, 390.5M, 10.00%, 4294967296, 1926.23, 4.93
Alg: Popzy, bits: 5.0B, bit density: 50.00%, bit randomization: 793.55ms, vec build: 142.69ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
sequential rank(), 5.0B, 5.0M, 50.00%, 32, 6.75, 1.35
sequential rank(), 5.0B, 5.0M, 50.00%, 128, 7.75, 1.55
sequential rank(), 5.0B, 5.0M, 50.00%, 512, 16.42, 3.28
sequential rank(), 5.0B, 5.0M, 50.00%, 4096, 22.90, 4.58
sequential rank(), 5.0B, 5.0M, 50.00%, 65536, 24.03, 4.82
sequential rank(), 5.0B, 4.7M, 50.00%, 524288, 21.95, 4.65
sequential rank(), 5.0B, 4.2M, 50.00%, 4194304, 18.53, 4.42
sequential rank(), 5.0B, 8.4M, 50.00%, 16777216, 35.44, 4.23
sequential rank(), 5.0B, 8.4M, 50.00%, 67108864, 36.85, 4.39
sequential rank(), 5.0B, 24.4M, 50.00%, 268435456, 120.41, 4.93
sequential rank(), 5.0B, 48.8M, 50.00%, 536870912, 225.48, 4.62
sequential rank(), 5.0B, 97.6M, 50.00%, 1073741824, 422.77, 4.33
sequential rank(), 5.0B, 390.5M, 50.00%, 4294967296, 1832.38, 4.69
-----------------------
Benchmark - rank, random, various bit sizes and densities
Alg: Popzy, bits: 100.0M, bit density: 0.01%, bit randomization: 10.95ms, vec build: 2.54ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
random rank(), 100.0M, 5.0M, 0.01%, 32, 8.06, 1.61
random rank(), 100.0M, 5.0M, 0.01%, 128, 20.86, 4.17
random rank(), 100.0M, 5.0M, 0.01%, 512, 37.74, 7.55
random rank(), 100.0M, 5.0M, 0.01%, 4096, 36.83, 7.37
random rank(), 100.0M, 5.0M, 0.01%, 65536, 43.07, 8.61
random rank(), 100.0M, 5.0M, 0.01%, 524288, 45.44, 9.09
random rank(), 100.0M, 5.0M, 0.01%, 4194304, 44.10, 8.82
random rank(), 100.0M, 5.0M, 0.01%, 16777216, 42.12, 8.42
random rank(), 100.0M, 5.0M, 0.01%, 67108864, 51.31, 10.26
Alg: Popzy, bits: 100.0M, bit density: 10.00%, bit randomization: 779.41ms, vec build: 3.10ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
random rank(), 100.0M, 5.0M, 10.00%, 32, 7.09, 1.42
random rank(), 100.0M, 5.0M, 10.00%, 128, 22.23, 4.45
random rank(), 100.0M, 5.0M, 10.00%, 512, 35.91, 7.18
random rank(), 100.0M, 5.0M, 10.00%, 4096, 39.23, 7.85
random rank(), 100.0M, 5.0M, 10.00%, 65536, 38.43, 7.69
random rank(), 100.0M, 5.0M, 10.00%, 524288, 41.62, 8.32
random rank(), 100.0M, 5.0M, 10.00%, 4194304, 47.23, 9.45
random rank(), 100.0M, 5.0M, 10.00%, 16777216, 49.28, 9.86
random rank(), 100.0M, 5.0M, 10.00%, 67108864, 58.95, 11.79
Alg: Popzy, bits: 100.0M, bit density: 50.00%, bit randomization: 17.16ms, vec build: 2.48ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
random rank(), 100.0M, 5.0M, 50.00%, 32, 8.44, 1.69
random rank(), 100.0M, 5.0M, 50.00%, 128, 22.99, 4.60
random rank(), 100.0M, 5.0M, 50.00%, 512, 43.55, 8.71
random rank(), 100.0M, 5.0M, 50.00%, 4096, 46.12, 9.22
random rank(), 100.0M, 5.0M, 50.00%, 65536, 45.60, 9.12
random rank(), 100.0M, 5.0M, 50.00%, 524288, 47.05, 9.41
random rank(), 100.0M, 5.0M, 50.00%, 4194304, 46.58, 9.32
random rank(), 100.0M, 5.0M, 50.00%, 16777216, 39.75, 7.95
random rank(), 100.0M, 5.0M, 50.00%, 67108864, 52.04, 10.41
Alg: Popzy, bits: 500.0M, bit density: 0.01%, bit randomization: 74.13ms, vec build: 15.42ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
random rank(), 500.0M, 5.0M, 0.01%, 32, 8.53, 1.71
random rank(), 500.0M, 5.0M, 0.01%, 128, 25.02, 5.00
random rank(), 500.0M, 5.0M, 0.01%, 512, 41.17, 8.23
random rank(), 500.0M, 5.0M, 0.01%, 4096, 40.27, 8.05
random rank(), 500.0M, 5.0M, 0.01%, 65536, 43.57, 8.71
random rank(), 500.0M, 5.0M, 0.01%, 524288, 46.73, 9.35
random rank(), 500.0M, 5.0M, 0.01%, 4194304, 44.50, 8.90
random rank(), 500.0M, 5.0M, 0.01%, 16777216, 49.38, 9.88
random rank(), 500.0M, 5.0M, 0.01%, 67108864, 53.21, 10.64
random rank(), 500.0M, 5.0M, 0.01%, 268435456, 207.94, 41.59
Alg: Popzy, bits: 500.0M, bit density: 10.00%, bit randomization: 3825.75ms, vec build: 13.89ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
random rank(), 500.0M, 5.0M, 10.00%, 32, 7.20, 1.44
random rank(), 500.0M, 5.0M, 10.00%, 128, 24.29, 4.86
random rank(), 500.0M, 5.0M, 10.00%, 512, 37.44, 7.49
random rank(), 500.0M, 5.0M, 10.00%, 4096, 39.75, 7.95
random rank(), 500.0M, 5.0M, 10.00%, 65536, 38.36, 7.67
random rank(), 500.0M, 5.0M, 10.00%, 524288, 42.23, 8.45
random rank(), 500.0M, 5.0M, 10.00%, 4194304, 40.48, 8.10
random rank(), 500.0M, 5.0M, 10.00%, 16777216, 42.76, 8.55
random rank(), 500.0M, 5.0M, 10.00%, 67108864, 60.24, 12.05
random rank(), 500.0M, 5.0M, 10.00%, 268435456, 197.78, 39.56
Alg: Popzy, bits: 500.0M, bit density: 50.00%, bit randomization: 88.04ms, vec build: 14.92ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
random rank(), 500.0M, 5.0M, 50.00%, 32, 8.93, 1.79
random rank(), 500.0M, 5.0M, 50.00%, 128, 25.75, 5.15
random rank(), 500.0M, 5.0M, 50.00%, 512, 39.11, 7.82
random rank(), 500.0M, 5.0M, 50.00%, 4096, 39.90, 7.98
random rank(), 500.0M, 5.0M, 50.00%, 65536, 37.46, 7.49
random rank(), 500.0M, 5.0M, 50.00%, 524288, 44.89, 8.98
random rank(), 500.0M, 5.0M, 50.00%, 4194304, 42.09, 8.42
random rank(), 500.0M, 5.0M, 50.00%, 16777216, 45.95, 9.19
random rank(), 500.0M, 5.0M, 50.00%, 67108864, 51.74, 10.35
random rank(), 500.0M, 5.0M, 50.00%, 268435456, 189.72, 37.94
Alg: Popzy, bits: 1.0B, bit density: 0.01%, bit randomization: 159.74ms, vec build: 31.09ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
random rank(), 1.0B, 5.0M, 0.01%, 32, 8.49, 1.70
random rank(), 1.0B, 5.0M, 0.01%, 128, 25.58, 5.12
random rank(), 1.0B, 5.0M, 0.01%, 512, 47.45, 9.49
random rank(), 1.0B, 5.0M, 0.01%, 4096, 44.59, 8.92
random rank(), 1.0B, 5.0M, 0.01%, 65536, 42.59, 8.52
random rank(), 1.0B, 5.0M, 0.01%, 524288, 43.94, 8.79
random rank(), 1.0B, 5.0M, 0.01%, 4194304, 47.72, 9.54
random rank(), 1.0B, 5.0M, 0.01%, 16777216, 41.72, 8.34
random rank(), 1.0B, 5.0M, 0.01%, 67108864, 52.81, 10.56
random rank(), 1.0B, 5.0M, 0.01%, 268435456, 205.82, 41.16
random rank(), 1.0B, 5.0M, 0.01%, 536870912, 231.00, 46.20
Alg: Popzy, bits: 1.0B, bit density: 10.00%, bit randomization: 6702.79ms, vec build: 31.05ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
random rank(), 1.0B, 5.0M, 10.00%, 32, 7.65, 1.53
random rank(), 1.0B, 5.0M, 10.00%, 128, 21.76, 4.35
random rank(), 1.0B, 5.0M, 10.00%, 512, 45.64, 9.13
random rank(), 1.0B, 5.0M, 10.00%, 4096, 41.77, 8.35
random rank(), 1.0B, 5.0M, 10.00%, 65536, 39.48, 7.90
random rank(), 1.0B, 5.0M, 10.00%, 524288, 44.94, 8.99
random rank(), 1.0B, 5.0M, 10.00%, 4194304, 38.94, 7.79
random rank(), 1.0B, 5.0M, 10.00%, 16777216, 50.76, 10.15
random rank(), 1.0B, 5.0M, 10.00%, 67108864, 45.39, 9.08
random rank(), 1.0B, 5.0M, 10.00%, 268435456, 176.98, 35.40
random rank(), 1.0B, 5.0M, 10.00%, 536870912, 230.69, 46.14
Alg: Popzy, bits: 1.0B, bit density: 50.00%, bit randomization: 170.83ms, vec build: 26.43ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
random rank(), 1.0B, 5.0M, 50.00%, 32, 8.93, 1.79
random rank(), 1.0B, 5.0M, 50.00%, 128, 21.96, 4.39
random rank(), 1.0B, 5.0M, 50.00%, 512, 41.40, 8.28
random rank(), 1.0B, 5.0M, 50.00%, 4096, 38.13, 7.63
random rank(), 1.0B, 5.0M, 50.00%, 65536, 41.73, 8.35
random rank(), 1.0B, 5.0M, 50.00%, 524288, 42.79, 8.56
random rank(), 1.0B, 5.0M, 50.00%, 4194304, 43.23, 8.65
random rank(), 1.0B, 5.0M, 50.00%, 16777216, 45.24, 9.05
random rank(), 1.0B, 5.0M, 50.00%, 67108864, 56.31, 11.26
random rank(), 1.0B, 5.0M, 50.00%, 268435456, 182.11, 36.42
random rank(), 1.0B, 5.0M, 50.00%, 536870912, 219.59, 43.92
Alg: Popzy, bits: 5.0B, bit density: 0.01%, bit randomization: 772.96ms, vec build: 153.86ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
random rank(), 5.0B, 5.0M, 0.01%, 32, 8.43, 1.69
random rank(), 5.0B, 5.0M, 0.01%, 128, 25.24, 5.05
random rank(), 5.0B, 5.0M, 0.01%, 512, 47.74, 9.55
random rank(), 5.0B, 5.0M, 0.01%, 4096, 44.78, 8.96
random rank(), 5.0B, 5.0M, 0.01%, 65536, 47.42, 9.48
random rank(), 5.0B, 5.0M, 0.01%, 524288, 48.63, 9.73
random rank(), 5.0B, 5.0M, 0.01%, 4194304, 50.14, 10.03
random rank(), 5.0B, 5.0M, 0.01%, 16777216, 43.03, 8.61
random rank(), 5.0B, 5.0M, 0.01%, 67108864, 50.17, 10.03
random rank(), 5.0B, 5.0M, 0.01%, 268435456, 205.39, 41.08
random rank(), 5.0B, 5.0M, 0.01%, 536870912, 233.29, 46.66
random rank(), 5.0B, 5.0M, 0.01%, 1073741824, 244.06, 48.81
random rank(), 5.0B, 5.0M, 0.01%, 4294967296, 274.50, 54.90
Alg: Popzy, bits: 5.0B, bit density: 10.00%, bit randomization: 37061.15ms, vec build: 157.38ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
random rank(), 5.0B, 5.0M, 10.00%, 32, 6.60, 1.32
random rank(), 5.0B, 5.0M, 10.00%, 128, 21.65, 4.33
random rank(), 5.0B, 5.0M, 10.00%, 512, 45.11, 9.02
random rank(), 5.0B, 5.0M, 10.00%, 4096, 47.33, 9.47
random rank(), 5.0B, 5.0M, 10.00%, 65536, 48.66, 9.73
random rank(), 5.0B, 5.0M, 10.00%, 524288, 47.99, 9.60
random rank(), 5.0B, 5.0M, 10.00%, 4194304, 51.25, 10.25
random rank(), 5.0B, 5.0M, 10.00%, 16777216, 45.76, 9.15
random rank(), 5.0B, 5.0M, 10.00%, 67108864, 44.49, 8.90
random rank(), 5.0B, 5.0M, 10.00%, 268435456, 194.22, 38.84
random rank(), 5.0B, 5.0M, 10.00%, 536870912, 224.47, 44.89
random rank(), 5.0B, 5.0M, 10.00%, 1073741824, 246.36, 49.27
random rank(), 5.0B, 5.0M, 10.00%, 4294967296, 268.75, 53.75
Alg: Popzy, bits: 5.0B, bit density: 50.00%, bit randomization: 857.09ms, vec build: 150.40ms
Type, Bits, Calls, Density, Bit Span, Run (ms), ns/rank
random rank(), 5.0B, 5.0M, 50.00%, 32, 8.50, 1.70
random rank(), 5.0B, 5.0M, 50.00%, 128, 26.07, 5.21
random rank(), 5.0B, 5.0M, 50.00%, 512, 45.86, 9.17
random rank(), 5.0B, 5.0M, 50.00%, 4096, 45.88, 9.18
random rank(), 5.0B, 5.0M, 50.00%, 65536, 48.61, 9.72
random rank(), 5.0B, 5.0M, 50.00%, 524288, 48.25, 9.65
random rank(), 5.0B, 5.0M, 50.00%, 4194304, 49.02, 9.80
random rank(), 5.0B, 5.0M, 50.00%, 16777216, 50.08, 10.02
random rank(), 5.0B, 5.0M, 50.00%, 67108864, 54.03, 10.81
random rank(), 5.0B, 5.0M, 50.00%, 268435456, 206.23, 41.25
random rank(), 5.0B, 5.0M, 50.00%, 536870912, 220.71, 44.14
random rank(), 5.0B, 5.0M, 50.00%, 1073741824, 243.24, 48.65
random rank(), 5.0B, 5.0M, 50.00%, 4294967296, 267.92, 53.58




