1: \begin{abstract}
2: We describe a subdivision algorithm for isolating the
3: complex roots of a polynomial $F\in\mathbb{C}[x]$.
4: Given an oracle that provides
5: approximations of each of the coefficients of $F$ to any absolute error bound and given an arbitrary square $\mathcal{B}$ in the complex plane
6: containing only simple roots of $F$, our algorithm
7: returns disjoint isolating disks for the roots of $F$ in $\mathcal{B}$.
8:
9: Our complexity analysis bounds the absolute error to which the coefficients of $F$ have to be provided,
10: the total number of iterations, and the overall bit complexity.
11: It further shows that the complexity of our algorithm
12: is controlled by the geometry of the roots in
13: a near neighborhood of the input square $\mathcal{B}$, namely, the number of
14: roots, their absolute values and pairwise distances.
15: The number of subdivision steps is near-optimal.
16: For the \emph{benchmark problem}, namely, to isolate all the roots of
17: a polynomial of degree $n$ with integer
18: coefficients of bit size less than $\tau$,
19: our algorithm needs $\tilde{O}(n^3+n^2\tau)$ bit operations, which
20: is comparable to the record bound of Pan (2002).
21: It is the first time that such a bound has been achieved using subdivision
22: methods, and independent of divide-and-conquer techniques
23: such as Sch\"onhage's splitting circle technique.
24:
25: Our algorithm uses the
26: quadtree construction of Weyl (1924) with two key ingredients:
27: using Pellet's Theorem (1881) combined with Graeffe iteration,
28: we derive a "soft-test" to count the number of roots in a disk.
29: Using Schr\"oder's modified Newton operator combined with bisection,
30: in a form inspired by the quadratic interval method from Abbot (2006),
31: we achieve quadratic convergence towards root clusters.
32: Relative to the divide-conquer algorithms,
33: our algorithm is quite simple with the potential of being practical.
34: This paper is self-contained: we provide pseudo-code
35: for all subroutines used by our algorithm.
36: \end{abstract}
37: