  Geometric predicates are a basic ingredient to implement a vast range of
algorithms in computational geometry. Modern implementations employ floating
point filtering techniques to combine efficiency and robustness, and
state-of-the-art predicates are guaranteed to be always exact while being only
slightly slower than corresponding (inexact) floating point implementations.
Unfortunately, if the input to these predicates is an intermediate construction
of an algorithm, its floating point representation may be affected by an
approximation error, and correctness is no longer guaranteed. This paper
introduces the concept of indirect geometric predicate: instead of taking the
intermediate construction as an explicit input, an indirect predicate considers
the primitive geometric elements which are combined to produce such a
construction. This makes it possible to keep track of the floating point
approximation, and thus to exploit efficient filters and expansion arithmetic
to exactly resolve the predicate with minimal overhead with respect to a naive
floating point implementation. As a representative example, we show how to
extend standard predicates to the case of points of intersection of linear
elements (i.e. lines and planes) and show that, on classical problems, this
approach outperforms state-of-the-art solutions based on lazy exact
intermediate representations.
