Abstract:We show how to preprocess a set S of points in Rd into an external memory data structure that efficiently supports linear-constraint queries. Each query is the form of linear constraints xd≤a0+Σi = 1d-1 aixi; the data structure must report all the points of S that satisfy, the constraint. This problem is called halfspace range searching in the computational geometry literature. Our goal is to minimize the number of disk blocks required to store the data structure and the number of disk accesses (I/Os) required to answer a query. For d = 2, we present the first data structure that uses linear space and answers linear-constraint queries using an optimal number of I/Os in the worst case. For d = 3, we present a near-linear-size data structure that answers queries using an optimal number of I/Os on the average. We present linear-size data structures that can answer d-dimensional linear-constraint queries (and even more general d-dimensional simplex queries) efficiently in the worst case. For the d = 3 case, we also show how to obtain trade-offs between space and query time.