cache-oblivious planar orthogonal range searching and counting
We present the first cache-oblivious data structure for planar orthogonal range counting, and improve on previous results for cache-oblivious planar orthogonal range searching.Our range counting structure uses O(N log 2 N) space and answers queries using O(log B N) memory transfers, where B is the block size of any memory level in a multilevel memory hierarchy. Using bit manipulation techniques, the space can be further reduced to O(N). The structure can also be modified to support more general semigroup range sum queries in O(log B N) memory transfers, using O(N log 2 N) space for three-sided queries and O(N log 2 2 N/log 2 log 2 N) space for four-sided queries.Based on the O(N log N) space range counting structure, we develop a data structure that uses O(N log 2 N) space and answers three-sided range queries in O(log B N+T/B) memory transfers, where T is the number of reported points. Based on this structure, we present a general four-sided range searching structure that uses O(N log 2 2 N/log 2 log 2 N) space and answers queries in O(log B N + T/B) memory transfers.
cache-oblivious orthogonal range searching range counting semi-group range queries