We show how to preprocess a set S of points in R-d into an external memory
data structure that efficiently supports linear-constraint queries. Each qu
ery is in the form of a linear constraint x(d) less than or equal to a(0) Sigma (d-1)(i=1)a(i)x(i); the data structure must report all the points of
S that satisfy the constraint. This problem is called halfspace range sear
ching 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 t
he first data structure that uses linear space and answers linear-constrain
t 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 opt
imal number of I/Os on the average. We present linear-size data structures
that can answer d-dimensional linear-constraint queries (and even more gene
ral 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 ti
me. (C) 2000 Academic Press.