@@ -34,8 +34,8 @@ namespace bits {
3434 in `overflow_positions` of the 1-bit positions of the block i if it is sparse.
3535 Its space is m/L*64 bits.
3636 - An array `overflow_positions` holding the positions of the L ones
37- in sparse blocks. As we have at most m /L2 sparse blocks, its space is
38- m /L2*L*64 bits at most.
37+ in sparse blocks. As we have at most n /L2 sparse blocks, its space is
38+ n /L2*L*64 bits at most.
3939 - An array `subblock_inventory[0..m/L3)` such that `subblock_inventory[i]`
4040 holds the result of Select(iL3). Its space is m/L3*log2(L2) bits.
4141
@@ -61,15 +61,11 @@ namespace bits {
6161
6262 For these block sizes, we have a space usage of at most:
6363 m/2^10*64 (block_inventory) +
64- m/2^16*2^10*64 + (sparse blocks) +
65- m/2^5*2^4 (dense blocks) =
66- 25/16 m = 1.5625 m bits.
64+ n/2^16*2^10*64 (sparse blocks) +
65+ m/2^5*2^4 (dense blocks).
6766
6867 (When used to index the high bitvector of Elias-Fano, sparse blocks are rare;
6968 so the space usage is likely close to 9/16 m.)
70-
71- If 0.0 <= d = m/n <= 1.0 is the density of the bitvector, the index costs at most
72- 25/16 dn extra bits, for a total of n(1+25/16d) bits.
7369*/
7470
7571template < //
0 commit comments