f1056e0dd5a16b36.tex
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: