We present a method to compute the exact topology of a real algebraic surface
S, implicitly given by a polynomial fβQ[x,y,z] of arbitrary
degree N.
Additionally, our analysis provides geometric information as it
supports the computation of arbitrary precise samples of S
including critical points.
We use a projection approach,
similar to Collins' cylindrical algebraic decomposition (cad).
In comparison we reduce the number of output cells to O(N5) by constructing
a special planar arrangement instead of a full cad in the projection plane.
Furthermore, our approach applies numerical and combinatorial methods to
minimize costly symbolic computations. The algorithm handles all sorts of
degeneracies without transforming the surface into a generic position.
We provide a complete implementation of the algorithm, written in C++. It shows
good performance for many well known examples from algebraic geometry