Skip to main content
. 2019 Mar 9;35(19):3599–3607. doi: 10.1093/bioinformatics/btz162

Fig. 4.

Fig. 4.

Conceptual idea of bit-vector merging. Red bars represent bit-vectors, which are stored in memory. Gray bars represent input/output columns, which are never stored explicitly, but represented implicitly by the respective bit-vectors. The variable D is split into chunks of size O(logm), where the bits in each chunk encode the difference between a particular row in SA and SB, as indicated by green lines. The values in each chunk are used to compute the respective bits in MA>B and MB>A. In each iteration, the chunks are updated to represent a difference of SA and SB one row further down, indicated by down arrows. Once MA>B and MB>A have been computed, the ‘picking mask’ Mp is computed in parallel (horizonal arrows) and used in the final merging step (blue box)