“…Algorithm Source Section Main idea SCANCOUNT [9] 5.1 Allocate array of counters, scan values while incrementing counters and, finally, scan array of counters for matching counts MGOPT [10,11] 5.2 Set aside the largest T 1 inputs, merge the remaining N T C 1 inputs using a heap and then look up matching values in the largest inputs DSK [9] 5.2 Similar to MGOPT, but during the merger of the small inputs, some values are skipped; requires a tuning parameter BSTM Modified from [8,12] 5.3.1 Transforms the query into a Boolean circuit to be evaluated on the bitmaps W2CTI Novel 6.1 Merge inputs two by two starting with lowest-cardinality inputs while maintaining counters and prune results as early as possible LOOPED Novel 6.2 Allocates T temporary bitmaps corresponding to the count values 1; 2; : : : ; T ; the first bitmap updates the first temporary bitmap, the second bitmap updates the first two temporary bitmaps, and so on RBMRG Novel, inspired by [13] 6.3 Using a heap, merge Run-length-encoding-compressed words unions, which are well understood, we assume that 2 6 T 6 N 1. These queries are often called T -overlap [15,16], T -occurrence [9,17] or T -threshold [11,18] queries. We can map a T -overlap query to a query over bitmaps using a Boolean threshold function: given N bits, the T -threshold function #.T; ¹b 1 ; : : : ; b N º/ returns true if at least T bits are true; it returns false otherwise.…”