Abstract. Using the notions of Q-heaps and fusion trees developed by Fredman and Willard, we develop general transformation techniques to reduce a number of computational geometry problems to their special versions in partially ranked spaces. In particular, we develop a fast fractional cascading technique, which uses linear space and enables sublogarithmic iterative search on catalog trees in the case when the degree of each node is bounded by O(log n), for some constant > 0, where n is the total size of all the lists stored in the tree. We apply the fast fractional cascading technique in combination with the other techniques to derive the first linear-space sublogarithmic time algorithms for the two fundamental geometric retrieval problems: orthogonal segment intersection and rectangular point enclosure.Key words. searching, computational geometry, geometric retrieval, fractional cascading, orthogonal segment intersection, rectangular point enclosure AMS subject classifications. 68P10, 68P05, 68Q251. Introduction. Q-heaps and fusion trees [10,11] are data structures that achieve sublogarithmic search time on one-dimensional data. In particular, a Q-heap supports constant time insertion, deletion and predecessor search on very "small" subsets of a larger set using linear space. In [30], Willard illustrated how upper bounds for several search problems can be improved using the Q-heap. In this paper, we further explore the Q-heap technique in the context of computational geometry by using it to develop several general techniques, which lead to faster algorithms for a number of geometric retrieval problems.A geometric retrieval problem is to preprocess a set S of n geometric objects so that, when given a query specifying a set of geometric constraints, the subset Q of S consisting of the objects that satisfy these constraints can be reported quickly. Examples of geometric retrieval problems include orthogonal segment intersection [26,3], rectangular point enclosure [19,27,3], and orthogonal range queries [2,29,20,3,4,21,25] and their special cases [19,30,5,18]. A typical data structure for handling such a problem often involves a primary constant-degree search tree T whose nodes are each equipped with secondary structures, which are built on a subset of S and are capable of handling special versions of the original query very quickly. There are two main ideas behind such a typical data structure. First, the objects in S are distributed among the nodes of T in such a way that, the number of nodes of T visited during a search process is bounded by the depth of T or the output size. Second, for each node v visited, the search query on the set S(v) of objects stored there can be performed very fast. The first idea is often realized by either ensuring that a non-root node v is visited only if it is on a specific path from the root of T to a leaf node (for example, in handling the segment intersection and rectangle point enclosure problems [3]), or the time spent at v can be compensated by the time spent at reporting Q ∩...