Master‘s Thesis in Computer Science
Certified Numerical Root Finding
submitted by
Alexander Kobel
on February 14, 2011
IV
E R SIT
A
S
SA
R
IS
S
UN
Saarland University
Faculty of Natural Sciences and Technology I
Department of Computer Science
Saarbrücken, Germany
A VIE N
Max-Planck-Institute for Informatics
Saarbrücken, Germany
Advisor and First Reviewer
Dr. Michael Sagraloff
Supervisor and Second Reviewer
Prof. Dr. Kurt Mehlhorn
Non-Plagiarism Statement
Hereby I confirm that this thesis is my own work
and that I have documented all sources used.
Statement of Consistency
Hereby I confirm that this thesis is identical
to the digital version submitted at the same time.
Declaration of Consent
Herewith I agree that my thesis will be made available
through the library of the Computer Science Department.
Saarbrücken, February 14, 2011
Alexander Kobel
Abstract
Root isolation of univariate polynomials is one of the fundamental problems in computational algebra.
It aims to find disjoint regions on the real line or complex plane, each containing a single root of a
given polynomial, such that the union of the regions comprises all roots.
For root solving over the field of complex numbers, numerical methods are the de facto standard.
They are known to be reliable, highly efficient, and apply to a broad range of different input types.
Unfortunately, most of the existing solvers fail to provide guarantees on the correctness of their
output. For those that do, the theoretical superiority is matched by the effort required for an efficient
implementation.
We strongly feel that there is no need to suffer the pain of theoretically optimal algorithms to
develop an efficient library for certified algebraic root finding. As evidence, we present ARCAVOID, a
highly generic and fast numerical Las Vegas-algorithm. It uses the well-established Aberth-Ehrlich
simultaneous root finding iteration. Certificate on the exactness of the results are provided by rigorous
application of interval arithmetics. Our implementation transparently handles the case of bitstream
coefficients that can be approximated to any arbitrary precision, but cannot be represented exactly as
rational numbers.
While the convergence of the Aberth-Ehrlich method is not proven – and, thus, our approach
cannot strictly be considered complete – we are not aware of any instance where it fails. Practically
speaking, its runtime is output-sensitive in the geometric configuration of the roots, in particular
the separation of close roots. In contrast, the influence of degree and complexity of the coefficients
backs out, although it remains perceptible. Our algorithm requires no advanced data structures, and
the implementation does not feature complicated asymptotically fast algorithms. Yet, we provide
extensive benchmarks proving that ARCAVOID can compete with sophisticated state-of-the-art root
solvers, whose intricacy is orders of magnitude higher.
We emphasize the importance of complex root finding even for applications where it may not be
considered in the first place, namely real algebraic geometry. Traditionally used real root solvers
cannot deliver information about the global root structure of a polynomial. When exploiting this
information, the integration of ARCAVOID into a framework for algebraic plane curve analysis yields
significant benefits over existing methods.
i
Acknowledgements
If I remember correctly, the theoretical computer science course, held by Kurt Mehlhorn, has been
the second lecture I ever attended in my academic studies. After the semester, he offered me a
“HiWi” position as student assistant in the Algorithms and Data Structures working group at the
Max-Planck-Institute for Informatics. I am grateful for this opportunity, and since then felt affiliated
with people and work there. Thus, I am glad that you allowed me to renew this bond when you
agreed to supervise this thesis.
I am deeply indebted to Michael Sagraloff. Your everlasting belief in my abilities and your invaluable
advise on this thesis as well as on personal matters are a cornerstone of this work.
Whenever a technical problem emerged, Eric Berberich supported me with words and deeds.
Without your help and incredible motivation, the implementation as it stands would not have been
possible.
For the second time, I have the pleasure to mention Pavel Emeliyanenko. As for my Bachelor thesis,
you have contributed seemingly small, yet integral, pieces of the implementation, and once again I
rely on a wealth of your prior work.
In the rare cases Eric could not answer a question on existing implementations, Michael Hemmer
and Michael Kerber, both former members of Kurt Mehlhorn’s working group, offered their support.
I thank Daniel Fries and Tobias Schnur for their helpful remarks on some not-so-early versions of
this thesis.
I can hardly verbalize how much I appreciate the professional and personal atmosphere at the
Max-Planck-Institute. It has been a great pleasure and opportunity to be a member of your team.
iii
Contents
Notation
ix
1 Introduction
1.1 Structure of the Thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
2
2 Computing with Numbers and Polynomials
2.1 Problem Statement and Terminology . . . . .
2.2 (Arbitrary Precision) Floating Point Numbers
2.3 Interval Arithmetic . . . . . . . . . . . . . . . .
2.4 Bitstreams . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
4
5
6
3 Established Root Isolation Methods
3.1 History of Polynomial Root Finding . . . . . . . . . . . . . . . . . .
3.2 Generic Subdivision Algorithm for Root Solving . . . . . . . . . .
3.2.1 Root Bounds . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Traditional Real Root Solvers . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Sturmian Chain Root Solver . . . . . . . . . . . . . . . . . .
3.3.2 Descartes Method . . . . . . . . . . . . . . . . . . . . . . . .
3.3.3 EVAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Pros and Cons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Theoretical Complexity . . . . . . . . . . . . . . . . . . . . .
3.4.2 Quality of the Predicates . . . . . . . . . . . . . . . . . . . .
3.4.3 Adaptiveness to Local Root Finding and Root Separation
3.4.4 Handling of Inexact Coefficients . . . . . . . . . . . . . . .
3.4.5 Numerical Stability . . . . . . . . . . . . . . . . . . . . . . .
3.4.6 Exploitation of Sparsity . . . . . . . . . . . . . . . . . . . . .
3.4.7 Ease of Implementability . . . . . . . . . . . . . . . . . . . .
3.4.8 Practical Complexity and Existing Implementations . . .
3.5 Traditional Complex Root Solvers . . . . . . . . . . . . . . . . . . .
3.5.1 Eigenvalue Iterations . . . . . . . . . . . . . . . . . . . . . .
3.5.2 Homotopy Continuation . . . . . . . . . . . . . . . . . . . .
3.5.3 Optimal Results . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.4 CEVAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.5 Complex Solvers for Real Root Isolation . . . . . . . . . . .
3.6 Root Isolation for Polynomials with Multiple (Real) Roots . . . .
3.6.1 Known Number of Complex Roots . . . . . . . . . . . . . .
3.6.2 Known Number of Real Roots . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
11
12
13
14
14
16
21
22
22
23
23
23
23
24
24
25
25
25
26
26
27
29
30
30
31
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 ARCAVOID
33
4.1 Outline of ARCAVOID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.1 Polynomial and Root Neighborhoods . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.2 Root Inclusion Certificates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
v
4.2 Simultaneous Root Approximation Methods . . . . . . . . . . .
4.2.1 The Newton-Raphson Method . . . . . . . . . . . . . . .
4.2.2 The Weierstraß-Durand-Kerner Method . . . . . . . . .
4.2.3 The Aberth-Ehrlich Method . . . . . . . . . . . . . . . .
4.3 Opening: The Choice of a Starting Configuration . . . . . . . .
4.4 Middle Game: Precision Handling in Numerical Root Finding
4.5 Endgame: Speed-up Strategies for Ill-conditioned Roots . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
38
39
40
41
42
43
44
5 Implementation and Experiments
5.1 Integration of ARCAVOID in the CGAL Framework .
5.2 Benchmarks for Univariate Solving . . . . . . . . . .
5.2.1 Contestants . . . . . . . . . . . . . . . . . . . .
5.3 Results and Interpretation . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
47
47
48
48
50
6 Applications
6.1 Solving of Bivariate Polynomial Equation Systems
6.1.1 BISOLVE . . . . . . . . . . . . . . . . . . . . .
6.2 ARCAVOID in BISOLVE . . . . . . . . . . . . . . . . .
6.3 BISOLVE-based Curve Analysis . . . . . . . . . . . .
6.3.1 ARCAVOID in Curve Analysis . . . . . . . .
6.4 Results and Interpretation . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
59
59
60
63
64
66
68
.
.
.
.
.
.
7 Conclusion and Outlook
71
7.1 Directions of Further Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
A Appendix
75
B Bibliography
77
vi
List of Figures
2.1 Representation of a (32 bit) floating point number according to IEEE 754 . . . . . . . .
2.2 Distribution of the dyadic bigfloats of precision 4 (F(4) ) on the real axis . . . . . . . . . .
4
7
3.1 The monomial and Bernstein basis polynomials of degree 4 over the unit interval . . . 19
3.2 The Descartes method for a polynomial in Bézier curve representation . . . . . . . . . . 20
4.1
4.2
4.3
4.4
Root neighborhoods for different approximations of f = Z 15 − 0.95 . . . . . . . . . .
1 3
) (Z − 1+I
)2
Root neighborhoods for different approximations of f = Z 21 − (Z + 16
32
Four steps of the real-valued Newton-Raphson iteration . . . . . . . . . . . . . . . . .
Fields of force for a root approximation in Newton’s, WDK and Aberth’s method . .
.
.
.
.
.
.
.
.
35
35
39
41
5.1 Benchmark polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.1 The projection phase in BISOLVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.2 Curve analysis using BISOLVE: projection and lifting . . . . . . . . . . . . . . . . . . . . . . 65
6.3 Curve analysis using BISOLVE: arc connection . . . . . . . . . . . . . . . . . . . . . . . . . . 66
List of Algorithms
1
2
GenericSubdivision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
ARCAVOID (Outline) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
vii
Notation
We use the conventions N := {1, 2, 3, . . .} and N0 := {0, 1, 2, 3, . . .}. As usual, the doubly struck letters
Z, Q, R, and C denote the sets of integers, rational, real and complex numbers. F and CF denote the
sets of real or Cartesian complex dyadic bigfloat numbers (see definition 2.4 and 2.6). The meanings
of R≥0 := {x ∈ R : x ≥ 0}, F<2 := {x ∈ F : x < 2} and similar variants are obvious.
A superscript asterisk denotes the group of units of a ring; in particular, R∗ := R \ {0} and
∗ :=
C
C \ {0}. Although strictly speaking, the dyadic numbers do not form a field, we define
F∗ := F\{0} and CF∗ := CF\{0} as well. This is reasonable because bigfloats are used to approximate
values in R or C and simulate their characteristics as good as possible.
We denote the real and imaginary part of a complex number z by ℜz and ℑz, respectively, and write
I for the imaginary unit. We say that a complex number z is real if z ∈ R and imaginary if z ∈ C \ R.
If z = I y for some y ∈ R∗ , we call z purely imaginary.
For x ∈ R≥0 , we write ln x for the natural logarithm to the base e = exp(1) of x, where ln 0 := −∞.
By log b x, we mean the logarithm ln x/ ln b to the base b. For the special case b = 2 of the dyadic
logarithm, we omit the subscript and write log x := log2 x.
F(p) , CF(p) subset of the real or complex dyadic numbers exactly representable with a relative floating
point precision of p (that is at most p mantissa bits)
RI, CI
the sets of real and complex (closed) intervals
[z, z 0 ]
for z, z 0 ∈ C: complex box or interval {x + I y : ℜ(z) ≤ x ≤ ℜ(z 0 ) ∧ ℑ(z) ≤ y ≤ ℑ(z 0 )}
• Analogously to R: (z, z 0 ), (z, z 0 ], [z, z 0 ), where (some) inequalities are strict
D(m; r)
closed disc in C of radius r around m: {z ∈ C : |z − m| ≤ r}
D◦ (m; r)
open disc in C of radius r around m: {z ∈ C : |z − m| < r}
p
current relative working precision in number of mantissa bits
ix
1 Introduction
In this thesis, we describe the development of a solver for the complex algebraic root isolation problem:
For a polynomial equation
f (Z) = f n Z n + f n−1 Z n−1 + · · · + f2 Z 2 + f1 Z + f0 = 0, where f i ∈ C, f n 6= 0 and n ≥ 2,
determine the number r of complex roots and a set (C1 , . . . , C r ) of pairwise disjoint
connected regions in the complex plane such that each Ci contains exactly one root of f .
Particular interest belongs to the sub-problem of real root isolation of a polynomial with real valued
coefficients, where the region of interest is restricted to the zeros on the real axis. This is the domain
of many well-known methods, based on Sturm’s theorem or Descartes’ Rule of Signs. Those traditional
methods use subdivision schemes on a certain initial interval known to comprise all real roots of f .
After repeated refinement of the interval, an exclusion test will eventually recognize intervals that
cannot contain a root of f . On the other hand, an isolating region will be certified as such by an
inclusion predicate if the subdivision is sufficiently fine.
The efficiency of these algorithms, if properly implemented, is excellent. Yet, they do not offer
global information about the entire vanishing set of the polynomial. Exploiting this information can
drastically speed up applications in the field of geometric algorithms and computer algebra. Thus, the
interest in root finders that isolate all complex roots is not merely of theoretical nature.
Unfortunately, the inclusion and exclusion predicates applied on the reals do not generalize well
onto the complex setting. Subdivision solvers along these lines remain proof of concept. Instead,
most existing complex root finders rely on numerical methods. They are known for recognized for
their performance, but have a bad reputation for their stability and reliability of output: Most existing
implementations merely approximate zeros of the polynomial and lack to guarantee the correctness
of their solutions. We refer to such algorithms as uncertified methods.
[MPSolve] by Dario Bini and Giuseppe Fiorentino is an exception amongst the numerical solvers.
It is both extremely fast and provides certified output. Yet, it lacks two important features: Firstly,
MPSolve cannot handle “bitstream” coefficients that can be refined to any arbitrary finite precision,
but not be represented exactly. However, this is a must in the analysis of bivariate equations. Second,
the precision handling of MPSolve relies on a theoretical analysis that fixes specific constraints of
the arithmetic operations performed within the algorithm. In particular, it does not apply when
asymptotically fast sub-algorithms for, say, multi-point polynomial evaluation schemes are used.
Our complex root finder ARCAVOID (for “Approximation, Root Clustering and Verification of Isolating
Discs”) relaxes those restrictions. We transparently handle several kinds of bitstream inputs, and use
an adaptive precision handling that solely relies on the input rather than the exact algorithms used
for elementary operations. Furthermore, we integrate an endgame strategy for the fast refinement of
ill-conditioned root clusters.
ARCAVOID is seamlessly integrated into the Computational Geometry Algorithms Library [CGAL].
We show that the – already excellent – existing methods for real algebraic geometry therein can again
be significantly accelerated by our complex solver.
1
1.1 Structure of the Thesis
We start by giving a concise description of the complex root finding problem in chapter 2. We discuss
the possibilities of inputs to root solvers, leading to the notion of bitstream interval approximations to
represent arbitrary real and complex values, including transcendent numbers, in a manner suitable
for algorithm handling. We also give the necessary background on verified computations in arbitrary
precision.
In chapter 3, we explain a selection traditional approaches to real and complex root isolation.
In particular, we introduce the three major classes of subdivision solvers, based on Sturm’s theorem, Descartes’ Rule of Signs, and the Bolzano principle. For the latter, we also observe a recent
generalization for complex setting. We discuss the advantages and disadvantages of each approach.
These lead to the desired characteristics of our own root isolation method ARCAVOID, presented in
chapter 4. As ARCAVOID is based on simultaneous numerical root iteration schemes, we illuminate
the most renowned methods, each contributing its share to our algorithm design: Newton’s method,
the Weierstraß-Durand-Kerner iteration and the Aberth-Ehrlich method. We then turn towards a
termination criterion for the root iterations and the conservative, verified computation of inclusion
regions. After some explanations about the start-up phase and the precision handling in our solver,
we describe a refinement procedure to yield an asymptotic speedup for ill-conditioned roots.
We offer an implementation of ARCAVOID as a prototypical complex root solver package in the
Computational Geometry Algorithms Library CGAL. In chapter 5, we sketch the overall layout of the
library, and how and why it influences our algorithm design and implementation decisions. We give
extensive benchmarks of our solver against well-established contestants, both in real and complex
root solving, showing that ARCAVOID is, at least, on par with state-of-the-art industrial-grade solvers
whose complexity is orders of magnitude higher.
Finally, we show two use cases of ARCAVOID in computational algebraic geometry applications in
chapter 6: Bivariate equation solving over the reals and the topological analysis of real algebraic
plane curves. Somewhat surprisingly, the fact that complex root isolation provides global information
about the configuration of roots of a polynomial with real coefficients constitutes a tremendous
advantage in this setting. Experimental results prove a significant gain in performance over existing
techniques.
2
2 Computing with Numbers and Polynomials
2.1 Problem Statement and Terminology
This thesis deals with algorithms that take as input a vector ( f0 , f1 , . . . , f n ) ∈ Cn+1 of coefficients
representing a polynomial
f (Z) =
n
X
f i Z i = f n Z n + f n−1 Z n−1 + · · · + f2 Z 2 + f1 Z + f0
i=0
= fn
n
Y
(Z − ζ j ) = f n Z − ζ1 Z − ζ2 · · · Z − ζn .
j=1
We denote by n the degree deg f of f , and by ζ j its (complex) roots. We demand that the input
adheres to the following conditions:
1. the degree of f is known, that is its leading coefficient lc f = f n 6= 0 does not vanish and
2. the coefficients can be approximated to any arbitrary finite precision.
We assume deg f ≥ 2 to avoid case distinctions for linear or constant polynomials.
Naturally, when discussing the sub-problem of real root isolation, we assume the coefficients to be
real numbers, and we write X to denote the indeterminate in the corresponding ring of polynomials.
By root isolation, we mean that the algorithms return a set of isolating regions C ⊂ C of pairwise
disjoint connected
regions Ci ⊂ C, i = 1, . . . , r, where r denotes the number of distinct roots of f .
S
The union C∈C C shall comprise all roots, while each region Ci contains exactly one root of f . In
particular, if f is squarefree, r = n = deg f .
In the real case, the Ci actually are isolating intervals on the real axis of the form Ci = [a, b] ⊂ R,
a ≤ b, where the interval boundaries will be rational values. In complex root finding, we theoretically
allow arbitrary regions of the complex plane. In practice, however, subdivision solvers usually return
a set of boxes [z, z 0 ] = [x + I y, x 0 + I y 0 ], where x ≤ x 0 , y ≤ y 0 ∈ Q, while numerical algorithms
typically work on circular discs D(m; r) = {z ∈ C : |z − m| ≤ r} or unions thereof.
The problem of root isolation is intrinsically ill-condition if we allow non-squarefree inputs, that is
polynomials with multiple roots. It is well known that the position of the complex roots continuously
depends on the coefficients. An arbitrary small variation in the coefficients can split a multiple root
into several distinct ones, or makes real roots vanish into the complex plane.
While the problem is still solvable for polynomials with exactly known coefficients (say, f ∈ Z[Z]
or Q[Z]), it is fundamentally ill-posed for inputs that can be approximated to arbitrary precision but
cannot be handled exactly (see the section 2.4 on bitstreams). Thus, unless stated otherwise, we
impose the additional restriction that
3. f is squarefree, that is gcd( f , f 0 ) ∈ C∗ or, equivalently, ζ j 6= ζk for j 6= k.
We briefly discuss approaches to cope with the non-squarefree case in section 3.6.
3
2.2 (Arbitrary Precision) Floating Point Numbers
The representation of arbitrarily large integers or rationals (by pairs of integers for numerator and
denominator) imposes no particular difficulties. Fast operations, such as the Schönhage-Strassen algorithm for fast integer multiplication are a staple diet of computer algebra lectures and textbooks (see,
for example, [vzGG03]). But for operations resembling arithmetic on real numbers, implementations
of large rational numbers do not offer the best performance. Instead, floating point representations
are the method of choice.
Most modern computer architectures have built-in floating point number support according to
the industry standard IEEE 754 [AI08]. Number type libraries providing interfaces for bigfloat types
(floating point values with arbitrary large, but per-instance fixed precision) usually conform to the
same ideas. Well-known examples for such libraries include [GMP] and [MPFR], [LEDA] or [NTL].
The rough layout of a floating point number according to IEEE 754 is shown in figure 2.1. The
number consists of a sign bit, a signed integer1 exponent, and an unsigned integer mantissa (also
called significant), implicitly scaled by 21−p where p denotes the number of bits of the mantissa, such
that the normalized value lies in the range [0.5, 1). A similar layout is used for different bigfloat types
sign
s e e
31 30
exponent
mantissa
e e m m
23 22
m m
0
Figure 2.1: Representation of a (32 bit) floating point number according to IEEE 754
as well: all common approaches store a multi-precision number as (−1)s · m · 2e , where s is the sign
bit, m is a mantissa with precision p, and e is an exponent.
Actual implementations differ in details; for example, LEDA allows arbitrary large integers as
exponents, while GMP and MPFR only support exponents fitting in a long machine integer type.
On recent 64 bit architectures, a long has a range of at least 232 , often 264 > 1.844 · 1019 distinct
values. This exponent range in practice suffices for all applications but heavy number theory. Another
difference between implementations is the handling of the large integer mantissa. Some libraries like
LEDA use reference counted mantissae (including the sign bit), others like GMP use plain old data,
which is replicated on copies.
Typically, all these considerations neither influence the design decisions for an algorithm, nor do
they drastically affect the performance of an implementation. It is, however, worthwhile to keep them
in mind. For example, even with LEDA’s reference counting, the computation of an absolute value of a
number requires a new copy of the mantissa. Despite custom memory management, this overhead
incurs a roughly 25 % runtime penalty of the computation of x + | y| compared to a call of x + y or
x − y, depending on the (manually inspected) sign.
The more involved the algorithms, the more likely seemingly simple operations in the lower levels
become an unnoticed efficiency drain. The actual origins are often not visible to the programmer
without lots of effort spent on profiling, and even if they can be spotted, resolving them is troublesome.
Especially in generic programming, when workarounds and tweaks for library-specific characteristics
are undesired, we aim to have algorithms relying on as few predicates and constructions as simple as
possible. In particular, implementing a seemingly simple asymptotically fast algorithm even for mere
integer multiplication requires substantial effort to do it efficiently. For example, NTL features fast
arithmetic for algebraic structures over F2 whose development is worth several man years.
1
4
Actually, for technical reasons (faster comparisons) the exponent is not stored in the usual two’s complement-format for
signed integers. Rather an unsigned integer is used, but is implied a negative bias of half its maximum value.
Alas, in the setting of algebraic root finding, all theoretically fast techniques rely on several nontrivial ingredients: arbitrary precision number arithmetics, fast polynomial multiplication and division,
fast Taylor expansion, fast polynomial multi-point evaluation and interval arithmetic. Especially
when Fourier transforms come into play, which is an integral part for the currently known optimal
algorithms for all these tasks but interval arithmetic, one has additionally to take care of the reliability
and precision of the results.2
So, if performance characteristics of implementations, supported operations, and the interfaces
differ, what is actually reasonable to expect from a number type library? At least, all major projects
provide certain exactness guarantees for the handling of bigfloats. The natural approach for bigfloat
representations in the style of IEEE 754 is to specify the outcome of a basic calculation (such as +, −,
p
·, /, or k ) with a relative error below the unit in the last place (ULP), that is the computed value is
exact up to the value of the last bit of the mantissa.
Remark 2.1. For the elementary operations, requiring a relative error of at most half an ULP is feasible
(and corresponds to the specification of the round to nearest rounding mode in IEEE 754, basically
amounting to the best possible approximation of the exact result).
Example 2.2. For a general (say, transcendental) function φ consider in binary notation φ(x) =
(0.01̄)2 = (0.1)2 , which should be represented as (0.100 · · · 0)2 . On the other hand, φ( y) =
(0.011 · · · 101)2 is closer to (0.011 · · · 1)2 than to (0.100 · · · 0)2 , where both mantissae have the
same length. The (upper bound on the) length of the number of consecutive 1 bits in φ(x) or φ( y) is
not known a priori for a sufficiently complex φ; in particular, deciding φ(x) = φ( y) requires more
knowledge about φ than a simple evaluation rule can provide.
We conclude that it is not sensible to demand the precision within half an ULP in general, since
the number of (binary) digits necessary for the estimation of the result may be unbounded. Instead,
within an relative error of a full ULP, the calculation is feasible. Unsurprisingly, number type libraries
usually specify the sharper error bound for simple arithmetics, but the weaker one for the remaining
algorithms.
For an in-depth treatment of the implications of precision bounds and the widespread misinterpretations by programmers, we refer to the explanations by Kahan [Kah97; Kah04] and Lefèvre and Muller
[LM03; Mul05] and the more general discussion of computer arithmetic by Brent and Zimmermann
[BZ10].
2.3 Interval Arithmetic
Multiprecision floating point computations can provide arbitrary precision, but they lack rigorous
error bounds. Accumulated round-off and cancellation errors in an function evaluation can distort the
result beyond recognition. On the other hand, the same function may behave gentle on other inputs.
Interval arithmetic keeps track of the error, and thus gives certificates about the reliability of the
outcome of an operation: Instead of a single value x̃ as an approximation of the real value x, we
work on an interval x ∈ [a, b] ∈ RI containing x, where we denote the set of real intervals by
RI := {[a, b] : a, b ∈ R ∪ {−∞, ∞}} .
We write diam[a, b] := |b − a| for the diameter or width of an interval [a, b] ∈ RI.
2
We don’t claim this cannot be done. The RS library [RS] features the best known algorithms, and is implemented in a highly
efficient manner. Still, it’s applicable only for a subset of the problems we aim to solve (real root isolation for polynomials in
Z[X ]), and the implementation is specifically tuned for the GMP number types and does not easily generalize to a generic
programming paradigm.
5
For each operation ◦ : R × R → R on the real numbers, the corresponding induced operation on
intervals ◦ : RI × RI → RI yields the set of all possible results for pairwise application on the elements
in the intervals:
I ◦ J := x ◦ y : x ∈ I and y ∈ J .
In particular,
[a, b] + [c, d] =[a + c, b + d],
[a, b] · [c, d] =[min{ac, ad, bc, bd}, max{ac, ad, bc, bd}] and
[a, b]/[c, d] =[a, b] · [1/d, 1/c] if 0 ∈
/ [c, d].
In practice, we have to account for round-off errors. Thus, the boundary values of the outcome
˜, the
of interval computations are protected. We demand that, for in inexactly calculated operation ◦
following holds:
˜ J ⊃ I ◦ J = x ◦ y : x ∈ I and y ∈ J .
I◦
This is accomplished by use of the correct rounding mode, a basic attribute which each self-respecting
number type library provides.
Finally, we require that, for sufficiently high precision, the computed result of an expression over
intervals actually converges to the exact value. This is what we call the concept of a
Definition 2.3 (Box function). An interval-valued function f : RI → RI is called a box function if, for
a sequence of interval I1 ⊃ I2 ⊃ · · · of intervals I i ∈ RRI, it holds that
lim f (I i ) = f ( lim I i ).
i→∞
i→∞
We remark that each computation mentioned in this thesis actually can be, and is, implemented in
terms of box functions. For pointers on how this is actually done, we refer to [Kre+].
2.4 Bitstreams
How do we actually expect the input of a root finder to look like? For demanding problems, machine
precision integers or floating point numbers of two or four words do not suffice.
The situation is fairly obvious for coefficients in Z or Q (or, using Cartesian complex numbers, Z[I ]
and Q[I ]). Storing large integers is straightforward in arrays of digits, and a rational is defined by a
pair of integers. Similar, we can store floating point values to any given accuracy, only limited by the
machine memory (see section 2.2):
Definition 2.4 (Dyadic bigfloats). The set F := {(−1)s · m · 2e : s ∈ {0, 1}, m ∈ N0 , e ∈ Z} = {p/q ∈ Q :
p ∈ Z and q = 2n for some n ∈ N0 } is the set of dyadic floating point numbers or bigfloats of arbitrary,
but finite, precision. We call a bigfloat (−1)s · m · 2e ∈ F irreducible if 2 - m, that is the mantissa has no
trailing binary zeros.
For a representation x = (−1)s · m · 2e ∈ F, s is called the sign bit of x, m is the mantissa, and e is
the exponent. The (relative) precision prec(x) of x is the number of bits in the mantissa m, that is
prec(x) := dlog m + 1e. By convention, prec(0) = 0 and prec(x) = ∞ for x ∈ R \ F.
We write F(p) := {x ∈ F : prec(x) ≤ p} ⊂ F for the subset of bigfloats that can be exactly represented
with an irreducible bigfloat of mantissa length up to p.
6
Remark 2.5. The vigilant reader may have noticed that irreducibility, and thus the terms mantissa,
exponent and precision, are not well-defined. This is a deliberate decision. It is, of course, possible to
give a proper definition of bigfloats as equivalence classes of reducible dyadic fractions, in analogy to
the construction of rationals from integer, and derive an canonical isomorphism to F as presented
above. Yet, we find that the informal definition suffices for our needs and trust the reader to know
what we mean by the precision or mantissa length of a reducible bigfloat.
Unless stated otherwise, prec(x) shall denote the precision required to exactly write x in dyadic
form, that is irreducible.
−2
−1
0
1
2
Figure 2.2: Distribution of the dyadic bigfloats of precision 4 (F(4) ) on the real axis
As a simple extension, we define
Definition 2.6 (Complex bigfloats). The set CF := {x + I y : x, y ∈ F} is the set of complex Cartesian
dyadic floating point numbers or, in short, complex bigfloats of arbitrary, but finite precision.
Analogously, CF(p) := {x + I y : x, y ∈ F(p) } is the subset of complex bigfloats that can be exactly
represented with irreducible bigfloats of mantissa length up to p.
Alas, this leaves us with the duty of handling irrational coefficients. This is not merely a theoretical
problem: polynomials with coefficients that themselves are roots of algebraic equations arise, for
example, in the geometric analysis of algebraic curves and surfaces. The only reasonable requirement
we are allowed to ask for is an arbitrary precise refinement of the coefficients – exactly the same
kind that we want to return, the very reason why we perform root isolation. Conceptually this is
an equivalent to a sequence of nested intervals around the exact coefficients. If then we assume a
squarefree polynomial, it suffices to isolate the roots to some error margin depending on the quality
of the coefficient approximations.
The concept of this “refinement on demand” is intuitively expressed in the term of a
Definition 2.7 (Bitstream representation). An (absolute) bitstream representing a number x ∈ R is a
computable function that, given an arbitrary precision p ∈ N, returns a finitely representable value
x̃ ∈ F such that |x − x̃| ≤ 2−p .
A relative bitstream representing a number x ∈ R is a computable function that, given an arbitrary
precision p ∈ N, returns a finitely representable value x̃ ∈ F such that |x − x̃| ≤ 2−p |x|.
If the context is clear, we simply use the term approximation of x of (absolute or relative) precision p
for a concrete return value x̃ of a bitstream for x on p.
Eigenwillig stresses: [Eig08]
We have chosen the name “bitstream”, because it concisely captures the basic intuition
that we can let more and more bits flow into the significand of [x̃]. However, [an
absolute] bitstream does not necessarily behave like a fixed sequence of bits that is read
incrementally: by its definition, it is perfectly valid for a bitstream representing the
number 1 to provide the binary approximations 1.02 , 1.002 , 0.112 , 1.012 , 0.1112 , resp.,
in successive invocations for p = 1, 2, 2, 2, 3.
Note that a bitstream is not required to return values x̃ sharing the same sign of x as long as |x| < 2−p .
In particular, we can never conclude that a bitstream actually represents zero!
7
It comes to no surprise that the bitstream idea also allows to speed up operation on inputs that
actually are in Z[Z] or F[Z]. This is the case if approximations of the coefficients are already sufficient
to guarantee the isolating property of root regions, and the algorithm is not required to calculate in
full precision. In this situation, it is useful to establish the notion of
Definition 2.8 (Bitstream intervals). Let FI(p) := {[a, b] : a < b where a, b ∈ F(p) } denote the set of
bigfloat intervals of precision p ∈ N.
A bitstream interval representing a number x ∈ R is a computable function that, given an arbitrary
precision p ∈ N, returns an finitely representable interval I = [x̃ − , x̃ + ] ∈ FI(p) containing x, subject
to at least one of the following properties:
1. There exist at most one y ∈ F(p) with x̃ − < y < x̃ + , or
2. diam I = |x̃ + − x̃ − | ≤ 2−p .
Again, if there is no probability of confusion, we use the term interval approximation of x of precision
p instead of bitstream interval.
Remark 2.9. In intuitive terms, we demand that the interval returned is as tight as possible around x
within a relative precision p of the bounds unless an absolute approximation of 2−p can be achieved.
The first case can occur since the dyadic numbers are not dense in R∗ (see figure 2.2). In the latter
case, no further conditions are set.
Example 2.10. For the sake of readability, we use the decimal system, where the precision is given
with respect to the radix 10.
p
1. Let x = 2/2 ≈ 0.70711 and p = 3. The tight interval approximation I = [0.707, 0.708] =
[707·10−3 , 708·10−3 ] of x has interval boundaries with 3-digit mantissae and satisfies diam I =
0.001 ≤ 10−3 .
2. Let x = π ≈ 3.14159 and p = 3. The interval approximation I = [3.14, 3.15] = [314 · 10−2 ,
315 · 10−2 ] of x has interval boundaries with 3-digit mantissae. It does not satisfy diam I =
0.01 ≤ 10−3 , but there is no decimal number of at most three digits in (3.14, 3.15); thus, I still
is a valid p-bitstream interval approximation for x.
p
p
p
3
3
4
3. Let x = 2 − 5 4 − 6 + 3 5 ≈ 1.91896 · 10−6 and p = 3. The best possible p-interval
−8
approximation is [191 · 10 , 192 · 10−8 ], but any interval I = [a, b] with boundaries in F3 and
−1/2 · 10−3 ≤ a < x < b ≤ 1/2 · −10−3 is admissible. Thus, the bitstream interval procedure is
not forced to calculate any relative approximation of x or to decide its sign.
4. Let x = 0 and p > 0 arbitrary. All three bitstream (interval) procedures are expected to return 0
or the degenerate interval [0, 0]. Yet, the absolute bitstream does not offer the guarantee of
x = 0 to its caller, since every x 0 ∈ [−10−p , 10−p ] might yield the same output. In contrast, a
relative bitstream is forced to return x̃ = 0.
5. Let ω = cos(2π/5) + I sin(2π/5), x = ℜω5 . Then, in fact x = 0 as well and, thus, the intervals
[−1/2 · 10−k , 1/2 · 10−k ] are valid p-interval approximations for any values p < k. Either
boundary of the interval may be zero as well; however, note that the degenerate interval
approximation [0, 0] cannot be given unless the bitstream procedure performs a symbolic proof
of x = 0.
In particular, this implies that a relative bitstream for x is required to evaluate the expression
symbolically! If ω itself is given as a bitstream (interval), this is infeasible and, thus, only
absolute bitstreams or bitstream intervals can be applied.
8
Corollary 2.11. Both absolute and relative bitstreams for a real number x induce a canonical corresponding bitstream interval for x.
Proof. x̃ as absolute bitstream approximation of x of precision p + 2 implies x ∈ [x̃ − 22−p , x̃ + 22−p ],
where the interval has a width of 21−p . Conservatively rounding the interval boundaries to numbers
representable within p mantissa bits yields an interval [x̃ − , x̃ + ] ∈ RI with x̃ − ≤ x̃ − 22−p < x <
x̃ + 22−p ≤ x̃ + as desired.
An analogous argument applies to relative bitstreams.
We conclude this section with the remark that the notion of bitstreams and bitstream intervals can
be trivially generalized to complex numbers in Cartesian representation:
Definition 2.12 (Complex bitstreams and bitstream intervals). A complex (absolute or relative)
bitstream representing a number z ∈ C is a tuple of (absolute or relative) bitstreams representing the
numbers ℜz and ℑz. A complex bitstream interval representing a number z ∈ C is a tuple of bitstream
intervals representing the numbers ℜz and ℑz. In analogy to the real case, we write CI := [x] + I [ y] : [x], [ y] ∈ RI for the set of Cartesian
complex intervals.
9
3 Established Root Isolation Methods
It is instructive for the understanding of a new technique to examine already existing algorithms. In
root finding, the traditional solvers deal with the problem of real root isolation.
After a recall of the history of fundamental algebra and the clarification of basic notions, we briefly
present the most important and well-known theorems used in real root solving: the Sturmian chain
approach, Descartes’ Rule of Signs and EVAL. Even if the reader has a decent background knowledge
on the theory of those methods, we suggest to at least have a look at section 3.4. There, we discuss
the pros and cons of these approaches and their implications for complex root solving. In particular,
we will be concerned with the difficulties of an efficient implementation.
We close the chapter with a short review of classical complex root finding techniques.
3.1 History of Polynomial Root Finding
Polynomials are a remarkably versatile class of functions: In 1885, Karl Weierstraß gave a proof of the
Weierstraß approximation theorem. Each continuous function on a bounded interval can be uniformly
approximated arbitrarily well by a polynomial.
Marshall Harvey Stone generalized the statement to arbitrary compact Hausdorff spaces in 1937,
leading to the famous Stone-Weierstraß theorem; Sergei Nikitovich Mergelyan devised an analogous
result for complex functions in 1951.
While the proofs of the existence of arbitrary approximations were put forward just a few decades
ago, the actuality that they do exist has been used for centuries. It thus comes to no surprise that
polynomials are amongst the best studied objects in mathematics: Polynomials, due to their finite
number of terms, are a lot easier to handle than arbitrary functions, both in mathematical theory and
computational practice.
The single most important contribution in the research of polynomial structures is the
Fundamental Theorem of Algebra. The following equivalent statements hold (for polynomials over
the complex numbers):
1. The field of the complex numbers C is algebraically closed.
2. Every non-constant univariate polynomial has a complex root.
3. Every non-constant univariate polynomial has as many complex roots as its degree, counted with
multiplicities.
4. Every non-constant univariate polynomial factors into as many linear polynomials as its degree.
The Fundamental Theorem of Algebra dates back to 1608, when Peter Rothe recognized that the
degree of a non-trivial algebraic equation gives an upper bound on the number of (real) solutions.
Later, a number of great mathematicians delved into the subject, including such prominent ones as
Jean le Rond d’Alembert, Leonhard Euler, Joseph-Louis Lagrange, Pierre-Simon Laplace, and countless
others. There is no general consent on the question whom the credit of the “modern” wording belongs
11
to; however, Carl Friedrich Gauß is often mentioned with his doctorate thesis Demonstratio nova
theorematis omnem functionem algebraicam rationalem integram unius variabilis in factores reales primi
vel secundi gradus resolvi posse [A new proof of the theorem that every integral rational algebraic
function of one variable can be resolved into real factors of the first or second degree] in 1799.
According to today’s standards, Gauß’ geometric proof is incomplete due to the use of (then) unproven
properties of Jordan curves, but he subsequently gave not less than three other valid proofs. The first
to provide a rigorous argument for the general statement was Jean-Robert Argand in his Réflexions
sur la nouvelle théorie d’analyse [Reflections on the new theory of analysis] in 1814.
Coincidentally, in the same year when Gauß published his doctorate thesis, Paolo Ruffini failed to
show what is now called the Abel-Ruffini theorem or Abel’s impossibility theorem by just a minor gap:
Abel-Ruffini theorem. There is no general solution for polynomial equations of degree five or higher in
terms of algebraic radicals (that is a finite number of additions, subtractions, multiplications, divisions
and root extractions).
As can be expected due to the name, Ruffini’s work has been taken up and completed by Niels
Henrik Abel in 1824; he uses group theoretic arguments which precede the later Galois theory. With
the impossibility theorem, the hope for an explicit formula on the zeros of a general polynomial – as
can be given for degrees up to four – is extinguished.
Nevertheless, constructive proofs of the Fundamental Theorem have finally been assembled, and
thus the even older question of actually finding the roots of an algebraic equation has been solved
in theory. The first success of this kind by Karl Weierstraß in 1891 integrally employs the iterative
numerical solving method which we nowadays attribute to Emile Durand and Immo Kerner as well.
A large part of this thesis relies on and refines the ideas of this Weierstraß-Durand-Kerner (WDK)
iteration.
3.2 Generic Subdivision Algorithm for Root Solving
Traditional root finding algorithms rely on subdivision of an initial range of interest, discard regions
which are guaranteed not to contain a zero, and repeat until the increasingly smaller remaining areas
can be verified to each comprise a single root. These areas are called the isolating root regions of a
univariate polynomial f . Depending on the algorithm’s goal, the isolating regions can be intervals,
in the real case, or arbitrary regions in the complex plane. The three integral parts of a subdivision
algorithm thus are
1. an inclusion predicate Incl(A, f ) which holds only if the range A contains exactly one root of f ,
2. an exclusion predicate Excl(A, f ) which holds only if A does not contain a root of f ,
3. and
rule SD(A, f ), yielding a set SD(A, f ) = A = {A1 , . . . , Am } such that A ⊂
S a subdivision
0
A0 ∈A A .
The latter condition implies that we do not lose track of regions potentially containing a root.
Remark 3.1. Note that we do not require the inclusion (exclusion) predicate to hold if and only if A
contains a (no) root, but only that we can be sure to do the right thing if we report or discard a range
and the corresponding test holds. The weakened conditions might impose a higher recursion depth
on our algorithm, but guaranteed predicates typically are harder to figure out and more expensive to
evaluate. This can often compensate for the larger number of subdivision steps.
Of course, we rely on the predicates to eventually give the “correct” answers for small enough
ranges, and a subdivision rule that converges to evanescent regions. Otherwise, the algorithm might
not terminate.
12
Using these ingredients, the generic (iterative) subdivision method is given as follows:
Algorithm 1: GenericSubdivision
input : initial region A0 , polynomial f
output: list O of isolating regions for the roots of f
11
O←;
Q ← {A0 }
while Q is not empty do
pop A from Q
if Incl(A, f ) holds then
append A to O
else if Excl(A, f ) holds then
discard A
else
A ← SD(A, f )
append A to Q
12
return O
1
2
3
4
5
6
7
8
9
10
// queue for regions to be investigated further
// inclusion predicate
// exclusion predicate
// subdivision rule
Remark 3.2. The handling of corner cases (roots lying on the common boundary of some subdivided
regions) is a delicate issue in the design of subdivision algorithms. It is, however, easy for the isolation
of real roots, when A0 = [a, b] ⊂ R, and simply amounts to checking if the endpoints of intervals are
roots of f .
We will not discuss different choices of subdivision rules in-depth. The most simple approach
is subdivision on the center of A, which bisects (real case) or quarters (complex case) the area
into equally large pieces. More sophisticated algorithms evaluate heuristics on the current area to
get subdivision points close to an actual root. A prominent example in real root isolation is the
continued fraction [Sha07] subdivision rule, which involves root modulus bound computations in
an intertwined exclusion and subdivision step. The quadratic interval refinement [Abb06], based on
Newton’s iteration, conceptually fits into the subdivision schemes as well, but – as the name suggests –
is mainly used to further refine an interval already known to be isolating.
3.2.1 Root Bounds
For a complete solver delivering all complex or real roots of a polynomial, the subdivision procedure
needs to be called with a range guaranteed to enclose all roots. In the complex case, a naïve choice
comes to mind: we might start with just an arbitrary region and isolate all roots therein. If the
number of roots turns out to be less than the degree n of f we restart in a larger region, say, of
twice the diameter. However, this approach does not generalize to real root isolation, since we do
not have an a priori
bound on the number of real roots. Thus, a better idea is to derive a root
upper
ζ } and start with A = [−M , M ] (or A = [−M − I M , M + I M ] = {x + I y : |x| ≤
bound
M
≥
max
{
i
i
0
0
M ∧ y ≤ M } in the complex case).
Since root bounds will not play a major role in our algorithm presented later on, we will be content
with a brief citation of two popular examples: Cauchy’s bound relies on an elementary and well-known
theorem, while Fujiwara’s bound is recognizes as one of the sharpest a priori bounds for an agreeable
computational cost. For an in-depth discussion of the topic, we refer the reader to the exhaustive
collection of different bounds compiled by John M. McNamee [McN07] and the comparative study by
Prashant Batra [Bat08].
13
Theorem 3.3 (Cauchy’s root bound). Let f ∈ C[Z], f (Z) =
C Bf = 1 +
1
| fn|
P
i fi Z
i
be a polynomial of degree n. Then,
max{| f i |}
i<n
is a root bound for f , that is |ζ| ≤ C B f for all ζ ∈ C with f (ζ) = 0.
Proof. Without loss of generality, assume f n = 1. Write M := max{| f i |}. Then, for each root ζ of f ,
Pn−1
0 = f (ζ) = ζn + i=0 f i ζi , and the triangular inequality implies
n−1
n−1 n−1
n−1
X
X
X
X
i
f |ζ|i ≤
|ζ|n = f i ζi ≤
M
|ζ|
=
M
|ζ|i .
i
i=0
i=0
i=0
i=0
When |ζ| > 1, multiplication with |ζ| − 1 yields
|ζ|n (|ζ| − 1) ≤ M |ζ|n − 1 ≤ M |ζ|n
⇔
|ζ| − 1 ≤ M
⇔
|ζ| ≤ C B f .
The theorem is trivially true for |ζ| ≤ 1, so this completes the proof.
Theorem 3.4 (Fujiwara’s root bound [Fuj16]). Let f ∈ C[Z], f (Z) =
degree n. Then,
(
1
1
1
f
f n−1
f n−1 f n−2 2
m
,
, . . . , n−m , . . . , 1 F B f = 2 max f f
f
f
n
n
n
n
P
i fi Z
f0
, 2f
n
i
be a polynomial of
1 )
n
is a root bound for f , that is |ζ| ≤ F B f for all ζ ∈ C with f (ζ) = 0.
Proof. See [Eig08], section 2.4.
3.3 Traditional Real Root Solvers
Due to the importance of root finding as a basic step for algebraic or analytic computations, a countless
number of different techniques have been devised. Most of the established methods deal with real
root isolation, that is the computation of isolating intervals of a polynomial with real coefficients. (In
principle, real root finding is also feasible for inputs with complex coefficients, but this case is rarely
of interest.)
Of course, we can provide but a small selection of the work on polynomial root finding. Thus, we
limit our concentration on three of the most prominent algorithms. In his encyclopedic treatment
of the subject, McNamee [McN07] offers a wealth of information far beyond what we are able to
present.
As already mentioned, we defer the comparison and analysis of the benefits and drawbacks of the
methods to section 3.4.
3.3.1 Sturmian Chain Root Solver
The Sturmian chain1 root solver is an archetypical example of a subdivision solver for real root
isolation. It features extremely powerful – in fact, optimal – inclusion and exclusion predicates, is
well recognized for its stability, and reasonably easy to implement.
1
There seems to be no general consent on the terms “Sturmian” or just “Sturm”, and “chain” or “sequence”. All variants are
found in the literature.
14
The following description is loosely based on the corresponding section 2.2.2 in [BPR10].
Definition 3.5 (Sturmian remainder chain). Let f ∈ R[X ] be a squarefree polynomial with real
coefficients. The Sturmian (remainder) chain or Sturm sequence of f is a sequence of real polynomials
( f = s0 , s1 , . . . , s r ) with the following properties:
1. If f (x) = 0, then sgn(s1 (x)) = sgn( f 0 (x)),
2. If si (x) = 0 for 0 < i < r, then sgn(si−1 (x)) = − sgn(si+1 (x)), and
3. s r does not vanish, that is s r ∈ R∗ is a constant non-zero polynomial.
Remark 3.6. The way to obtain a (canonical) Sturm sequence is essentially Euclid’s algorithm on f
and its derivative f 0 :
s0 := f
s1 := f 0
s2 := − rem(s0 , s1 )
= s 1 q0 − s 0
s3 := − rem(s1 , s2 )
= s 2 q1 − s 1
..
.
s r := − rem(s r−2 , s r−1 ) = s r−1 q r−2 − s r−2
0 = − rem(s r−1 , s r )
The required properties 1 and 3 are trivially satisfied. To see 2, note that the term si qi−1 − si−1 in the
representation of si+1 reduces to −si−1 when evaluated on a root of si .
Definition 3.7 (Number of sign variations).
1. The number of sign variations V (a) of a sequence
a = (a0 , a1 , . . . , a r ) of non-zero real numbers is defined inductively as
¨
V (a0 ) := 0,
V (a0 , . . . , ak ) :=
V (a0 , . . . , ak−1 ) + 1
if ak−1 ak < 0
V (a0 , . . . , ak−1 )
if ak−1 ak > 0.
The number of sign variations V (a) of an arbitrary sequence a of real numbers is defined as
V (â), where â denotes the sequence a with its zero entries omitted.
2. The number of sign variations V (S; x) of a sequence of polynomials S = (s0 , s1 , . . . , s r ) with real
coefficients and x ∈ R ∪ {−∞, ∞} is defined as
V (S; x) := V (s0 (x), s1 (x), . . . , s r (x)),
where s(±∞) := lim x→±∞ sgn s(x).
Theorem 3.8 (Sturm’s theorem). Let S f = ( f = s0 , s1 , . . . , s r ) be a Sturmian chain of a squarefree
polynomial f . Let V (S f ; a, b) := V (S f ; a) − V (S f ; b), and m( f ; a, b) := #{ξ ∈ R : a < ξ ≤ b ∧ f (ξ) =
0} be the number of distinct real roots of f in the interval (a, b] for −∞ ≤ a < b ≤ ∞. Then,
m( f ; a, b) = V (S f ; a, b).
Proof. By the intermediate value theorem, a sign change of a polynomial can only occur at one of its
roots, so the sign variations remain constant in intervals where none of the polynomials in S f vanish.
Consequently, V (S f ; a, b) = 0 when si (x) 6= 0 for all a ≤ x ≤ b.
15
Now assume si (x) = 0 for 0 < i < r. Then, by condition 2, a sign change occurs between si−1 (x)
and si+1 (x). Continuity of polynomials guarantees that this sign change propagates on a neighborhood
of x and, thus, cannot affect the total number of sign changes across the chain.
Finally, if f (x) = 0, condition 1 provides that s1 (x) 6= 0, and, again, keeps its sign in a neighborhood
of x. On the other hand, f changes its sign, since f is squarefree and, thus, x cannot be a multiple
root. If f decreases at x, s1 (x) < 0, and f changes it sign from + to − when crossing x from “left”
to “right”; thus, the number of sign variations is diminished by one. Analogously, if f increases at x,
s1 (x) > 0, but f changes from − to +; again, one sign variation is lost.
Thus, the total sign variation across S f remains constant but on the roots of f , where it decreases
by one. This proves the theorem.
Remark 3.9. In fact, if f is not squarefree, the condition 3 can be relaxed to s r+1 = 0 or, equivalently,
s r = c · gcd( f , f 0 ) for some c ∈ R∗ . In this setting, Sturm’s theorem generalizes as well whenever the
interval boundaries a and b do not coincide with a multiple root of f .
To see this, let g = gcd( f , f 0 ) and f ∗ = f /g. By deduction of the canonical Sturm sequence,
S f ∗ = g · S f = (gs0 , gs1 , . . . , gs r ). But since, by assumption, g(a) 6= 0 6= g(b), the factors g(a) and g(b)
do not affect the number of sign variations in S f ∗ compared to S f . Thus, m( f ; a, b) = m( f ∗ ; a, b) =
V (S f ∗ ; a, b) = V (S f ; a, b).
The Sturmian Theorem as a Predicate for Subdivision Solvers
Sturm’s theorem simultaneously provides an inclusion and exclusion predicate for real root isolation
setting. Once the Sturmian remainder chain is precomputed, deciding whether an interval contains a
root reduces to polynomial evaluation of the polynomials in S f on the endpoints of the interval and
checking their signs.
The Sturm predicate is optimal in the sense that any subdivision that distributes the roots into
disjoint intervals already suffices for the root isolation.
InclSturm (a, b], f
:
V (S f ; a, b) = 1
ExclSturm (a, b], f
:
V (S f ; a, b) = 0
3.3.2 Descartes Method
There can be a lot of confusion about the proper attribution of an apostrophe when your theorems
turn out to outlast the centuries. Is it the Descartes method or rather the Descartes’ method which uses
René Descartes’ [sic!] Rule of Signs? Probably, Descartes never applied his sign rule in an algorithmic
scenario for root isolation. Thus, we felt it’s fair to use his name not as the originator of the algorithm,
but to identify all the variants that actually share the use of the Rule of Signs.
If not Descartes, who is accountable for those ideas which gave rise to the undisputedly leading
class of real root finders? Well, things are not obvious here, either. Collins and Akritas are the first to
publish a concise algorithm (with an unusual subdivision scheme loosely resembling the continued
fraction approach) in 1976, called a Descarte’s [sic!] algorithm, in which they attribute the theory
to Uspensky [CA76]. This choice resulted in long discussion, and after more than a decade, Akritas
eventually felt obligated to revoke Uspensky’s name in favor of Vincent [Akr86].
Although there is more than a single algorithm founded on the Rule of Signs, we use the singular
term, and stay in the line of the original description by Collins and Akritas. A very comprehensive
study of the Descartes method can be found in [Eig08], including both theoretical and applied results
and notes on efficient implementation.
16
P
Theorem 3.10 (Descartes’ Rule of Signs). Let f = i f i X i ∈ R[X ] be a polynomial with real coefficients.
Let ν f := V ( f0 , f1 , . . . , f n ) denote the number of sign changes in the coefficient sequence of f , and p
denote the number of strictly positive real roots of f , counted with multiplicity. Then,
ν := ν f ≥ p and ν ≡ p (mod 2).
In particular, ν = 1 ⇔ p = 1 and ν = 0 ⇔ p = 0.
Corollary 3.11. Let ν f− := V ( f0 , − f1 , f2 , − f3 , . . . , (−1)n f n ) denote the number of sign changes in the
coefficient sequence of f − = f (−X ), and n denote the number of strictly negative real roots of f , counted
with multiplicity. Then,
ν − := ν f− ≥ n and ν − ≡ n (mod 2).
In particular, ν − = 1 ⇔ n = 1 and ν − = 0 ⇔ n = 0.
Proof of Descartes’ Rule of Signs. We will only discuss the special cases ν = 0 and ν = 1. For a
complete proof, see [Eig08], chapter 2.
Without loss of generality, assume f0 > 0.
1. (case ν = 0) Let ν = 0 and assume that there exists a positive root
f . Since ν = 0, the
Pξ > 0 of P
non-zero coefficients f i share the same sign. Thus, 0 = | f (ξ)| = i f i ξi = i | f i |ξi . But since
both ξ > 0 and | f0 | > 0, the right hand side is positive, which contradicts the assumption p > 0.
2. (case ν = 1)PLet ν = P
1 and f0 , .P
. . , f k ≥ 0 and
< n. Then
P f k+1 , . . . , f n ≤ 0 for some 0 < k P
0 = f (ξ) = i f i ξi = i f i ξi = i≤k f i ξi + i>k f i ξi . But this is equivalent to i≤k f i ξi =
P
− i>k f i ξi . The left hand side is a strictly decreasing continuous function on R≥0 , starting at
f0 > 0, while the right hand side is strictly increasing from 0.
Thus, the equality has a unique positive real solution at the single point where the two functions
intersect.
Definition and Lemma 3.12 (Möbius transformation). The Möbius transformation f(a,b) of a polynomial f of degree n with respect to a non-degenerate open interval (a, b) ⊂ R is defined as
aX + b
n
f(a,b) (X ) := (X + 1) · f
.
X +1
f(a,b) is again a polynomial of degree n, and there is a one-to-one mapping between the positive real roots
of f(a,b) and the roots of f in (a, b).
Proof. It is trivial to see that f(a,b) ∈ R[X ] is a polynomial, since the denominator X + 1 occurs with
multiplicity ≤ n in the expansion of f ((aX + b)/(X + 1)) and, thus, gets cancelled by the (X + 1)n
∗
prefactor. Let f(a,b)
= f ((aX + b)/(X + 1)) denote the intermediate result before the normalization.
The one-by-one relation of the roots becomes clear by the iterative construction of f(a,b) : We
transform f such that the roots in (0, ∞) shift to (1, ∞), to (0, 1), to (0, b − a), and, eventually, to
(a, b). The sequence of transformations involved is
φ1 : (0, ∞) → (1, ∞),
X 7→ X + 1,
φ2 : (1, ∞) → (0, 1),
X 7→ 1/X ,
φ3 : (0, 1) → (0, b − a), X 7→ (b − a) X , and
φ4 : (0, b − a) → (a, b), X 7→ X + a.
17
Since each φi is bijective on the corresponding interval, the same holds for φ4 ◦ φ3 ◦ φ2 ◦ φ1 = φ :
(0, ∞) → (a, b), X 7→ (b − a)/(X + 1) + a = (aX + b)/(X + 1).
∗
∗
Thus, f (x) = f(a,b)
(φ(x)) for x ∈ (0, ∞) and f (φ −1 ( y)) = f(a,b)
( y) for y ∈ (a, b); in particular,
n
∗
this holds for the zeros of f and f(a,b) . Since (X + 1) > 0 for x > 0, multiplication by (X + 1)n does
∗
not affect the position or number of positive roots of f(a,b)
, which proves the lemma.
Descartes’ Rule of Signs as a Predicate for Subdivision Solvers
The Möbius transformations will serve as a tool to apply Descartes’ Rule of Signs for certain intervals.
When the sign variation drops to 0 for some f(a,b) , we know that f cannot have a root in (a, b), so we
discard the interval. On the other hand, a sign count of 1 for f(a,b) serves as an inclusion predicate
since, then, the Rule of Signs certifies the existence of exactly one root of f in (a, b).
InclDescartes (a, b), f
:
ν f(a,b) = 1
ExclDescartes (a, b), f
:
ν f(a,b) = 0
Still, we have to spend some thoughts about the termination of this algorithm – will the sign
count eventually go that low when the intervals are sufficiently tight around a root? Obreshkoff’s
circle theorems comes to help. While useful on their own, they are consequences of more general
statements. Once again, the reader is referred to [Eig08] for the whole story.
Lemma 3.13 (Obreshkoff’s circle theorem (simplified version)). Let f ∈ RR[X ] be a real polynomial,
and (a, b) for a < b be a non-degenerate bounded open real interval.
1. (“One-circle theorem”) Let D ⊂ C be the open disc within the circumcircle of [a, b].
If D does not contain a (complex) root of f , then ν f(a,b) = 0.
2. (“Two-circle theorem”) Let ∆+ , ∆− ⊂ C be the equilateral triangles in the upper and lower complex
plane with [a, b] as one edge, and let D± be the open discs within the circumcircles of ∆± .
If D+ ∪ D− contains exactly one simple root of f , then ν f(a,b) = 1.
Remark 3.14. Note that in the setting of the two-circle theorem the root is guaranteed to be real,
since otherwise both the complex root and its complex conjugate will be in the union D+ ∪ D− .
For squarefree polynomials, this result certifies the termination of the subdivision algorithm. Note,
however, that it also shows that the Rule of Signs does not induce an optimal set of predicates, contrary
to Sturm’s theorem: although an interval can be isolating, the Descartes test may fail to recognize this
fact if the Obreshkoff circles contain additional complex roots.
The Descartes Method for Polynomials in Bernstein Basis
There is such an intuitive graphical explanation of why the Descartes method works, we cannot
possibly deny the reader a brief description. As taught in elementary courses on numerics, the
monomial basis for polynomials shows excellent behavior in the proximity of zero. But for large
absolute values, the evaluation and interpolation problems are unstable; a topic we will address again
in section 3.4.5.
Thus, when a polynomial is to be inspected on some specified interval, a representation that
optimally shows the local behavior is desirable. The Bernstein basis provides exactly this. Nowadays,
it is best known for its use in Bézier curves and surfaces, a corner stone of modern vector graphics,
typography, or computer aided geometric design (CAGD).
18
The Bernstein basis polynomials of degree n over a non-degenerate interval [a, b] are given as
n
[a,b]
Bn,i (X ) :=
(X − a)i (b − X )n−i for 0 ≤ i ≤ n.
i
It is easily shown that these n + 1 polynomials are R-linear independent and, thus, indeed form a basis
of the R-vector space R[X ]≤n of polynomials of degree at most n. Thus, any polynomial f ∈ R[X ]≤n
can be written in Bernstein representation as
f (X ) =
n
X
[a,b]
bi
[a,b]
Bn,i (X ),
i=0
[a,b]
where the bi
are the Bernstein coefficient with respect to the underlying interval [a, b].
In contrary to the monomial basis, the Bernstein polynomials feature equidistantly distributed local
maxima in the base interval (see figure 3.1). Thus, the i-th Bernstein coefficient has a strong local
impact on f (x) when x is in the proximity of a + (b − a) · i/n. If x is not nearby, the significance of the
[a,b]
i-th basis function diminishes, and so does the contribution of bi
to f (x). This characteristic allows
numerically robust evaluation and interpolation in [a, b]; stability problems mainly arise outside of
the base interval.
x0
[0,1]
B4,0 (x) 1.0
1.0
[0,1]
x1
B4,1 (x)
x 2 0.5
B4,2 (x)
[0,1]
x3
x
4
0.5
[0,1]
B4,3 (x)
0.0
0
0.2
0.4
x
0.6
0.8
1
[0,1]
B4,4 (x)
0.0
0
0.2
0.4
x
0.6
0.8
1
Figure 3.1: The monomial and Bernstein basis polynomials of degree 4 over the unit interval
For an excellent comprehensive, yet easy to understand, explanation of the topic, we strongly recommend Farin’s classic gem on CAGD [Far02]. In the following, we completely ignore the mathematical
theory, but only concentrate on the geometric implications of the basis change.
A polynomial f in Bernstein form on some interval I can be imagined by a control polygon P, whose
nodes correspond to the coefficients of the basis polynomials in the representation of f (see figure
3.2 (b)). The control polygon satisfies three important properties: the X -extremal control points
(vertices) interpolate f , the graph of f over I is entirely contained in the convex hull of P, and the
control polygon converges to f on I with shrinking interval length.
By the interpolation property it is clear that I must contain a root of f if the outer control points
are on the opposite sides of the X -axis. In addition, the convex hull property ensures that f cannot
have a root in I if P does not cut the X -axis. In fact, the following holds:
Lemma 3.15. The number p of real roots of f in the interior of I is bounded from above by the number
ν of crossings of the edges of P with the X -axis. Additionally, p ≡ ν (mod 2).
This resembles Descartes’ Rule of Signs so closely, it may come to no surprise that the ν in lemma
3.15 actually equals the ν I in the Descartes method (lemmata 3.10 to 3.12).
As an additional give-away, the Bézier curve theory provides us with De Casteljau’s algorithm (figure
19
(a)
(b)
(c)
(d)
(e)
(f)
A visual explanation of the Descartes method for polynomials in the Bernstein basis (schematic).
The pictures on top show a polynomial graph and its Bézier control polygon on real interval. The
interval comprises a single root and a local extremum very close to, but not touching, the X = 0 axis.
The interval is subdivided on several split points using De Casteljau’s algorithm. The subdivisions are
shown with the according control polygons (close-ups (c) to (e)). The number of crossings of the
edges of the polygons with the X -axis correspond to the sign variations in the Descartes tests. For a
sufficiently fine (or well-chosen) subdivision, the number of crossings will eventually decrease to the
actual number of (simple) roots in the interpolation intervals.
The final graph summarizes the initial range of the polynomial along with the necessary subdivisions
for isolation of the roots.
Figure 3.2: The Descartes method for a polynomial in Bézier curve representation
20
3.2, (c) to (f)), a simple subdivision scheme to efficiently compute the control polygons of subregions
in a numerically stable way.
3.3.3 EVAL
Although the theorems involved in the Sturmian chain method and the Descartes algorithms look
simple, both involve some amount of non-trivial algebra to derive. The EVAL method is a more naïve,
yet useful, approach, resembling the way a human would probably look for roots.
It consists of two ingredients: firstly, we conservatively approximate whether an interval may
contain a zero of the polynomial. If so, we check whether the function is monotonic on the given
interval, and evaluate the signs at the boundaries of the interval. This comes quite close to the method
pupils get taught in secondary school level mathematics courses.
EVAL uses analytical results rather than algebraical ones. In fact, the method applies to arbitrary
continuously differentiable functions as well, not just polynomials, provided that we can handle local
Taylor expansions at any point.
Definition 3.16 (Taylor test, TK -test (real case)). Let f : R → R be a continuously differentiable real
function. Let I = (a, b) = (m − r, m + r) for −∞ < a < b < ∞ (or m ∈ R, r > 0) be a non-degenerate
open real interval, and K > 0. The K-Taylor test (or TK -test) for f holds on I if and only if
X f (k) (m) f
TK (m; r) : f (m) > K
r k.
k!
k≥1
Lemma 3.17. Let f , I be as above.
f
1. If T1 (m; r) holds, then I contains no root of f .
f0
2. If T1 (m; r) holds, then I contains at most one real root of f , counted with multiplicity.
Proof.
1. Let ζ ∈ I = (m − r, m + r) be a root of f . Taylor expansion of f at m yields
f (m) = 0 − f (m) = f (ζ) − f (m)
X f (k) (m) X f (k) (m)
X f (k) (m) k
k
(ζ − m) ≤
=
|(ζ − m)| ≤
r k,
k! | {z }
k! k!
k≥1
k≥1
≤r
k≥1
which contradicts T1 (m, r).
f0
2. When T1 (m; r) holds, f 0 has no real root in I, so f in strictly monotonic on I.
Definition 3.18 (Sign-change test). Let f , I be as above. We say that f passes the sign-change test on
I = (a, b) if and only if sgn f (a) = − sgn f (b).
f0
Corollary 3.19. Let f , I be as above. If Tp (m; r) holds and f passes the sign-change test on I, then I
2
contains exactly one simple real root of f .
Remark 3.20. The corollary intrinsically relies on the Bolzano’s intermediate value theorem. This
explains why the class of algorithms using a sign-change predicate are sometimes named Bolzano
methods, in resemblance of the Sturm and Descartes methods.
21
The Taylor and Sign-Change Tests for Subdivision Solvers
As with Descartes’ Rule of Signs, the Taylor tests on f and its derivative and the sign-change test give
a set of predicates for a subdivision solver on squarefree polynomials. Subdivision is performed until
either the Taylor test certifies that an interval contains no root, or a simple root is detected with the
Taylor test on the derivative and the sign-change test.
InclEVAL (m − r, m + r), f
ExclEVAL (m − r, m + r), f
:
f0
T1 (m; r) and
f passes the sign-change test on (m − r, m + r)
:
f
T1 (m; r)
While not entirely trivial from the theoretical point of view, the termination of the subdivision
algorithm is intuitively clear by Taylor’s theorem. Obviously, the EVAL predicates, like the Descartes
test, are non-optimal: intervals can be isolating for a root even if f is not monotonic on them. Also,
the absolute values of the remainder terms in the Taylor expansion may generously overestimate the
actual variation of f .
3.4 Pros and Cons
Each of the presented algorithms has its unique properties regarding efficiency and ease of implementation, and generalizes in a different manner to more complex problems. We will now discuss a
selection of these features.
3.4.1 Theoretical Complexity
Certainly, speed is the top criterion in a comparison of several algorithms for the same problem. As
we will see, a low theoretical complexity does not guarantee efficiency in practice; but, at least, it
serves as a rule.
The theoretical worst-case runtime of root solvers is usually given in terms of the benchmark
problem for integer polynomials f ∈ Z[X ]. It denotes the complexity of the isolation of all (real)
roots, depending on the degree n of f and the bit length τ of the largest coefficient (that is, τ =
max{dlog | f i |e : 0 ≤ i ≤ n}). In complete ignorance of the geometry of the roots, in particular the root
separation, it is known to mispredict the actual runtimes for “easy” instances by orders of magnitude.
Yet, it is an indicator for the behavior of the solvers for hard problems.
We use the Landau-tilde notation O˜(·) where the tilde means omission of (sub-)logarithmic factors.
If not stated otherwise, all complexities refer to the worst-case bounds in the number of single bit
operations. For all complexity results, we demand the following ingredients to be available:
• Asymptotically fast integer arithmetic, in particular multiplication in O˜(τ log τ) bit operations
for operands of size τ (see [vzGG03; BZ10]). This assumption is very reasonable with the
advent of number type libraries like [GMP], [LEDA], or [NTL].
• Asymptotically fast multi-point evaluation of a polynomial of degree n on n points in O(n log n)
arithmetic operations (see [BP94; vzGG03; Arn10]). Although well understood in theory, this is
much less common in actual implementations. For example, the [Mpfrcx] library offers a fast
algorithm for arbitrary precise floating point inputs but lacks rounding control.
• Asymptotically fast polynomial multiplication and Taylor expansion at fixed points (the so called
Taylor shift) in O˜(n log n) arithmetic operations (see [BP94; vzGG03; Ger05]). Again, this is a
requirement not universally met.
22
However, independent results [Joh+06] for the currently available implementations of fast
Taylor expansion indicate that the crossover point over simple Ruffini-Horner expansion may be
as high as n > 1000 or even n > 10000.2
In this setting, all three of the Sturm, Descartes and EVAL methods yield a runtime of O˜(n4 τ2 ) (see
[vzGG03] for Sturm, [Eig08] for Descartes, [SY09] for EVAL). This assumes the traditional bisection
subdivision rule. Others, like the continued fraction subdivision, show good practical performance,
but are less understood in terms of theoretical complexity [Sha07].
3.4.2 Quality of the Predicates
There is no absolute definition of the “quality” of the set of predicates used in the root isolation
methods. Nevertheless, the performance of the chosen predicates is worth to examine, since it has a
direct impact on the number of subdivisions required to certify isolating regions.
We already mentioned that Sturm’s theorem provides the definite number of roots for each region
it is applied on, and can thus be considered optimal. In practice, the predicates based on the Rule of
Signs turn out to be very reliable as well. The Taylor test employed in EVAL performs worse, ignoring
the algebraic nature of the real root finding problem.
3.4.3 Adaptiveness to Local Root Finding and Root Separation
The crucial step in the Sturmian root finder is the symbolic computation of the Sturmian remainder
sequence. Once this is performed, evaluation on the interval boundaries – and, thus, further subdivision – is cheap. It is trivial to conclude that the Sturm approach performs poorly in “simple” cases, say,
only complex roots far off the real axis.
In this situation, the costly initial computation is all in vain compared to Descartes and EVAL. For
these, the cost of isolation is well distributed over all subdivisions. If a low number of refinements
suffices for their predicates to grasp the root structure, they easily outperform Sturm’s method.
3.4.4 Handling of Inexact Coefficients
In some sense, all root finding methods are able to cope with (squarefree) inputs consisting of
coefficients in the bitstream model. It is always possible to rescale a dyadic or rational approximation
to the integer domain by multiplication with the common denominator of the coefficients, and
conservative rounding and consideration of the round-off error in the bitstream procedure allows
evaluation of the predicates with certified results. If the chosen approximation turns out to be
insufficient for the root isolation, we repeat in higher precision.
Still, Sturm’s method is particularly unsuited for such inputs, since Euklid’s algorithm is forced to
perform lots of non-trivial computations in the coefficient ring. If we were to find a some roots within
low precision, but require a very tight approximation for the splitting of an interval comprising just
two nearby roots, we still have to do all the hard work of the gcd computation.
Again, Descartes and Bolzano methods benefit from the fact that the cost of refinements only incurs
a runtime penalty for the regions where it actually is necessary.
3.4.5 Numerical Stability
The numerical stability of the predicate evaluations affects the performance of the root finders in a
very similar manner. Here, EVAL takes the lead.
2
On the other hand, benchmarks of GMP prove that the threshold values for the (fundamentally identical) fast integer
multiplication is significantly lower, so I expect that we have not heard the last of the matter yet.
23
While the Taylor expansion in the monomial basis is unstable (see the remarks on the Descartes
method in the Bernstein basis in section 3.3.2), it is essentially unavoidable for all root finders to
examine the local structure around roots to some degree. However, the Möbius transformations
in the Descartes methods imply a highly unstable additional sub-step over EVAL: the inversion in
the mapping φ2 : (1, ∞) → (0, 1), X 7→ 1/X (see lemma 3.12, section 3.3.2). The polynomial long
division in Euclid’s algorithm is just as terrible.
While numerical stability is of minor theoretical impact, in reality it makes the huge difference
whether an algorithm works in machine precision or requires multi-precision number types. The loss
in runtime for the latter can vary between a factor of 100 to 1000.
As a side note, the traditional asymptotically fast algorithms for dealing with polynomials tend to
show severe accuracy issues, and suffer from coefficient blow-up in integer arithmetic or require substantially higher intermediate precision (and, thus, computation time) in floating point environments.
Köhler and Ziegler aptly conclude their survey [KZ08]:
[...] in spite of its name, “fast” polynomial arithmetic is as slow as the naive algorithms:
for practically relevant instances over real numbers, due to the increased intermediate
precision required for reasonable output accuracy. [...]
The big open challenge thus consists in devising some variant of fast polynomial arithmetic
which is numerically sufficiently mild to yield a net benefit in running time over the naive
O(n2 ) approach.
3.4.6 Exploitation of Sparsity
In several important applications, inputs consists of sparse polynomials. It is reasonable to expect that
the algorithms can be easily adapted to profit by this kind of input. Unfortunately, both the Sturmian
remainder sequence and each non-trivial Taylor expansion, as required in the Möbius transformations
in Descartes algorithms, completely destroy the sparsity of polynomials.
In contrast, the Taylor test in EVAL is usually performed by an asymptotically fast local Taylor
expansion only for efficiency reasons; however, despite its name, it is not intrinsic to the method. Thus,
EVAL is the only contestant to exploit sparsity, at the cost of using theoretically worse sub-algorithms.
3.4.7 Ease of Implementability
It is possible to cope with all the mentioned drawbacks of each method – the only question is the price
to pay. From the algorithmic description, all three root finders share the same twelve lines of pseudo
code of a subdivision solver. So, clearly Sturm’s method is the easiest to implement since its inclusion
and exclusion predicates are the same?
Alas, devil’s in the details. Let us assume a mathematically oriented, high-level environment – say,
a computer algebra system such as [Maple] or [Sage] or numerous others – which offers all the basic
building blocks of our solvers. Yet, of course the root finders are missing in this perfect world...
All three participants will work flawlessly for integer polynomials, with just a few dozen lines of
code in this setting. But the Sturmian chain solver will most certainly put the creativity of the user
to a hard test when it comes to inexact inputs. The Rule of Signs is significantly easier to tame, and
indeed current efficient implementation are developed with a bitstream setup in mind. Still, of the
three classes of algorithms, the ones bases on the Bolzano principle, like EVAL, are the most pleasant
to develop. They apply to a broad range of different needs and scale very agreeable.
24
3.4.8 Practical Complexity and Existing Implementations
To summarize this preceding section, we give a brief overview about the current state-of-the-art in
real root finding. For a benchmark comparison of a selection of respected real solvers, we refer to the
comprehensive results in [Hem+09].
The Sturmian chain root solvers enjoys great popularity in computer algebra systems where the gcd
operations are fundamental for several other applications. However, for serious applications it simply
cannot keep pace with other approaches. Instead, most algebra systems offer additional solvers and
leave the Sturmian sequence evaluations for queries on user-given intervals.
The de facto standard algorithm is a Descartes root solver. Currently, it provides the best trade-off
between efficiency, reliability and implementability. It is the method of choice for most stand-alone
solvers and back-end libraries as well.
[Maple] uses the [RS] solver, which is generally perceived to be one of the most reliable and
sophisticated implementations [RZ04]. Internally, RS relies on the [GMP] number type library, and
integrates asymptotically fast sub-algorithms. Its high standard is emphasized by custom memory
management and several stages of increasing precision.
The Descartes and Bitstream Descartes [Eig05; Eig08] variants in [CGAL] and the continued fraction
solver in the Mathemagix collection [MMX] can compete on some instances. A promising newcomer
amongst the Descartians is Witty’s modification of the Bitstream Descartes algorithm [Wit07], available
in [Sage].
In contrast, EVAL is widely used in low-precision implementations for its good numerical stability.
In particular in graphical applications, such as ray tracers, interval arithmetic variants share the same
good reputation as Descartes methods. Here, the instances to solve are typically well-conditioned
and one can get over some faulty results. Thus, a moderate instability of the algorithm is acceptable
in exchange for extremely high efficiency in machine precision. A notable exception in the field of
computer graphics is the Persistence of Vision ray-tracer POV-Ray (www.povray.org) which optionally
offers a (quite slow) Sturmian solver for the high-quality rendering of algebraic surfaces.3
3.5 Traditional Complex Root Solvers
Considering the major efforts in real root solving, one might expect that similar results are available
for the problem of complex root isolation. Still, the domain is a surprisingly blank canvas as long as
we talk about practically usable, certified algorithms.
3.5.1 Eigenvalue Iterations
In the theory of linear algebra, the matrix eigenvalue problem for a matrix A is solved by computing
the characteristic polynomial χA(λ) = det(A − λE) and its roots. Now, this is exactly the problem we
are concerned with, and quite a number of numerical methods are specifically devised to avoid the
determinant computation and subsequent polynomial root finding. Instead, simultaneous iterations
directly operate on the matrices to approximate the set of eigenvectors and eigenvalues. A classical
approach for complex root finding is to employ those approved methods on the companion matrices of
polynomials.
P
Definition and Lemma 3.21 (Companion matrix). Let f = i f i Z i ∈ C[Z] be a complex polynomial
of degree n. Without loss of generality, let f be monic, that is f n = 1. The companion matrix C f ∈ Cn×n
3
Whatever this means. The algorithm is executed within machine precision, as well, and in my experience showed astonishing
poor numerical behavior for a “more accurate” root finder, as stated in the documentation.
25
of f is defined as
C f :=
0
0
..
.
1
0
..
.
0
1
...
···
0
...
0
0
− f0
···
···
− f1
···
···
− f2
0
···
···
···
···
...
0
0
..
.
1
0
0
1
− f n−2 − f n−1
Then, (−1)n f is the characteristic polynomial of C f .
In particular, the roots of f are exactly the eigenvalues of C f .
Proof. See section A (page 75) in the appendix.
There is a broad range eigenvalue methods that work well for many instances of polynomial root
solving, such as the power iteration, the QR algorithm, the Arnoldi iteration or the Lanzcos iteration.
For details, we suggest the dedicated chapter about matrix methods in [McN07].
However, most eigenvalue solvers have been originally designed to handle dense matrices in a
completely different, numerical linear algebra setting. Thus, they tend not to exploit the special
structure of the companion matrix problems. While highly optimized implementations are available,
they typically come without guarantees on correctness and perform worse on difficult (benchmark)
instances compared to dedicated polynomial root solvers. A notable, yet for some years abandoned,
exception is Eigensolve [For01].
3.5.2 Homotopy Continuation
We can easily construct an arbitrary number of polynomials of which we trivially know the complex
roots, for example a cyclotomic polynomial and the corresponding set of primitive roots of unity.
Homotopy methods [Ver99] simulate the continuous deformation of such a polynomial to eventually
converge to the actual instance. At the same time, they track the roots by Newton-Raphson-like
methods (see section 4.2.1).
Homotopy continuation allows to exploit special structures of the input, like sparsity or symmetry of
the coefficients, shows good efficiency, and can be generalized to straight-line programs or multivariate
systems of algebraic equations [SW05].
Yet, the crucial task of choosing the right step sizes of the continuation is difficult, and mostly
heuristic. If the steps are too large, the solver can lose track of the root approximation; on the other
hand, if the increments are too small, the runtime gratuitously increases. Furthermore, at branches of
the configuration space of the tracking, that is at continuations close to a multiple root, the behavior
of the algorithms is hardly predictable.
3.5.3 Optimal Results
Certified or not, the numerical solvers more than suffice for the daily needs of practical applications,
and are already available in well-tuned and reliable implementations. Perhaps this is the reason why
specific works on polynomial complex root finding remained a mostly theoretic issue.
In this direction, the complex setting allows for fine-grained optimal algorithm. Notable mentions include splitting circle method by Arnold Schönhage [Sch82] for numerical factorization of
polynomials. Of course, with a complete complex factorization, the calculation of the roots is straightforward. Schönhage’s approach requires O˜(n3 τ) arithmetic operations for the complete handling of
a polynomial of degree n with integer coefficients of bitsize τ.
26
Victor Pan revised this algorithm in 1998 [Pan02], and since then is mentioned in every selfrespecting publication on the topic with the Pan-Schönhage method. Its worst-case record bound of
O˜(n2 τ) arithmetic and O˜(n3 τ) bit operations is unmatched so far.
In 1996, Xavier Gourdon [Gou96] developed a proof-of-concept implementation of the splitting
circle algorithm for the [PARI/GP] and [Magma] computer algebra systems. We will comment on
some characteristics of this solver in section 5.2.1.
While Schönhage’s approach dominates the work on iterative numerical methods, subdivision
solvers have been studied as well. Both Sturm’s theorem [Pin76; Wil78] and Descartes’ Rule of Signs
[CK] can be applied on the boundaries of complex regions. Then, Rouché’s theorem and the maximum
modulus principle allow statements about the number of roots inside the regions.
3.5.4 CEVAL
A particularly easy concept is employed in CEVAL, the complex equivalent of EVAL. CEVAL is a recent
result by Sagraloff and Yap [SY09]. While the Bolzano principle suffices to exclude complex regions in
the same manner as in EVAL, a substitute for the sign-change test in the complex plane is the essential
innovation for the complex solver.
Definition 3.22 (Taylor test, TK -test (complex case)). Let f : Z → Z be a holomorphic function. Let
D = D◦ (m; r) for m ∈ C and r > 0 be a non-degenerate open complex disc, and K > 0. The complex
K-Taylor test (or TK -test) for f holds on D if and only if
X f (k) (m) f
TK (m; r) : f (m) > K
r k.
k!
k≥1
Lemma 3.23. Let f , D be as above.
f
1. If T1 (m; r) holds, then D contains no root of f .
f0
2
2. If Tp (m; r) holds, then D contains at most one complex root of f , counted with multiplicity.
Proof. The proof of the first statement is literally identical to the real case (lemma 3.17).
For the second statement, we note that the first one proves that no point in D can be a multiple
f0
f0
root of f , since Tp (m; r) implies T1 (m; r). The reasoning for the remaining part relies on the
2
Cauchy-Riemann differential equations
and is quite technically involved. The main idea is to show
that inside D not only the modulus | f 0 | D alone is bounded against | f 0 (m)|, but the argument arg f 0 D
is within some range around arg f 0 (m) as well. But the assumption of two distinct roots inside D
implies perpendicular
gradients of f at those roots, and thus exceeds the range allowed within a disc
p
for which the 2-Taylor test holds. For the complete proof, we refer to [SY09], section 4.
For the analogue of the sign-change test, Sagraloff and Yap originally propose the eight point test,
which uses a similar argumentation based on the Cauchy-Riemann equations.
InclCEVAL D◦ (m; r), f
ExclCEVAL D◦ (m; r), f
:
f0
2
Tp (m; r) and
f passes the eight point test on D◦ (m; r)
:
f
T1 (m; r)
27
Somewhat surprisingly, Sagraloff and Yap were able to prove that the worst-case complexity of
EVAL and CEVAL are identical, so the consideration of complex roots does not increase the asymptotic
runtime of O˜(n4 τ2 ). A first implementation by Kamath [Kam10] is on par with more traditional
methods when run in machine precision. For more demanding instances, it is unclear whether
CEVAL is capable of competing in practice. As Kamath points out, this might crucially depend on the
subdivision scheme.
An Inclusion Predicate via Verification
Before we discuss some practical implications of the CEVAL method, we point out a different approach
to the root inclusion test in the algebraic setting. If f is a squarefree polynomial, and thus of bounded
degree and with a finite number of roots, we can state an easier inclusion predicate by a partial
converse of lemma 3.23. The results also serve as an efficient verification method for the outcome of
numerical root solvers.
Lemma 3.24.
Q Let f ∈ C[Z] be a polynomial of degree n, and ζi for i = 1, . . . , n its roots, that is
f (Z) = f n i (Z − ζi ). Let 1 ≤ k ≤ n, and z ∈ C such that f (z) 6= 0. Then,
f (k) (z)
f (z)
X0
1
i1 ,...,ik
(z − ζi1 )(z − ζi2 ) · · · (z − ζik )
=
X
k!
1≤i1 <i2 <···<ik ≤n
(z − ζi1 )(z − ζi2 ) · · · (z − ζik )
:=
where
P0
i1 ,...,ik
,
denotes the sum over all distinct k-tuples.
Proof. Without loss of generality assume f monic. Applying the product rule for f 0 yields
Pn Q
n
X
1
f 0 (z)
j6=i (z − ζ j )
i=1
=
= Qn
,
f (z)
(z − ζi )
i=1
j=1 (z − ζ j )
and analogously for f (k)
f (k) (z)
f (z)
P0
Q
i1 ,...,ik
=
Qn
j6=i1 ,..., j6=ik (z
j=1 (z
− ζj)
− ζj)
X0
1
i1 ,...,ik
(z − ζi1 )(z − ζi2 ) · · · (z − ζik )
=
.
Counting the number k! of permutations of distinct values (i1 , . . . , ik ) proves the claim.
Lemma 3.25 (Taylor test for global verification). Let f be as above, m ∈ C, r > 0.
If T1 (m, r) does not hold, then D◦ (m; nr/ ln 2) contains a root of f .
Proof. Without loss of generality assume f monic. Let δ(m) := min{|m − ζi | : 1 ≤ i ≤ n} ≥ nr/ ln 2.
Then,
rk
X f 0 (m) r k X X0
1
=
f (m) k!
(m
−
ζ
)(m
−
ζ
)
·
·
·
(m
−
ζ
)
i1
i2
ik k!
k≥1
k≥1 i ,...,i
1
≤
k≥1
28
k
X r k X0
k!
i1 ,...,ik
n
X
1
1
r k X0
≤
k
m − ζ m − ζ · · · m − ζ k! i ,...,i δ (m)
i1
i2
ik
k=1
1
k
≤
n
X
ln 2 k
rk n
k=1
k!
< −1 +
k
∞
X
k=0
nr
≤
n
X
rk
k=1
k!
n
k
ln 2
nr
k
=
n
X
lnk 2
k=1
k!
k
ln 2
k!
= eln 2 − 1 = 1,
which means that T1 (m, r) holds. Conversely, ¬T1 (m, r) implies δ(m) < nr/ ln 2, so D◦ (m; nr/ ln 2)
contains a roots of f .
We can turn this simple result into an effective inclusion predicate as soon as we count at least n
disjoint root candidate regions separated by an relative radius of n ln 2 times the region’s diameter: If
the T1 test does not hold on exactly n of them, we deduce that the enlarged regions in fact constitute
a set of isolating discs.
Moreover, for root regions clearly separated from 0 there is no need to actually consider the higher
derivatives: Taylor’s approximation theorem guarantees that a linear approximation will eventually
sufficiently describe the function in the proximity of a (simple) root. We use this in a variant of lemma
3.25 using the (linearly) truncated Taylor test:
Lemma 3.26 (Truncated Taylor test for global verification). Let f , m, r be as above.
◦
If | f (m)| < | f 0 (m)|r, then Dnr
(m) contains a root of f .4
Proof. Let δ(m) := min{|m − ζi | : 1 ≤ i ≤ n} ≥ nr. Then,
0
n
n
n
X
X
X
f (m) 1
1
1
1
r = r ≤ n r = 1,
r
≤
r
≤
f (m) i=1 (m − ζi ) δ(m)
nr
i=1 m − ζi
i=1
◦
thus | f (m)| ≥ | f 0 (m)|r. Conversely, | f (m)| < | f 0 (m)|r implies δ(m) < nr, so Dnr
(m) contains a root
of f .
In practice, the additional factor (and, implicitly, higher subdivision depth) of ln 2 in the margin is
insignificant compared to the tremendous speedup gained by omission of the higher-order terms, in
particular when no fast Taylor expansion is available. Still, the conservative evaluation of the exclusion
predicate requires the complete Taylor series.
An important implication of lemma 3.26 is obvious: the truncated Taylor test is an extremely
efficient means for the post-certification of the results of any complex root finder. In a number of
demanding instances, the time required for verification of successful root isolation proved to be barely
measurable or, at worst, negligible compared to the complexity of the root solving step. In particular,
it is significantly faster than commonly employed methods based on Rouché’s theorem.
3.5.5 Complex Solvers for Real Root Isolation
As a final remark on complex root isolation, we note that the sub-problem of real root finding is
indeed solved as well:
Theorem 3.27. Let C1 , . . . , Cn−k denote a set of pairwise disjoint isolating regions for the complex roots
of a polynomial f ∈ R[X ], where k = deg gcd( f , f 0 ). Let C j := {x − I y ∈ C : x + I y ∈ C j } denote the
complex conjugate of C j . If, for some i = 1, . . . , n − k,
Ci ∩ R 6= ;
4
and
Ci ∩ C j = ; for all j 6= i,
This amounts to the converse of the 1-Taylor test on f , truncated for super-linear terms of the Taylor expansion.
29
then Ci ∩ R contains exactly one real root of f .
Proof. For f ∈ R[X ], the imaginary roots of f come in pairs of conjugate roots.
Note that ensuring the second property potentially requires refinement of the root approximations
and the corresponding isolating regions.
3.6 Root Isolation for Polynomials with Multiple (Real) Roots
P
We close the chapter with some results about root finding of non-squarefree polynomials f = i f i X i =
Qn−k
mj
∈ R[X ]. As always, n shall denote the degree of f , and we write k := deg gcd( f , f 0 ).
j=1 (X − ζ j )
Then, f has exactly n − k distinct complex roots, which we denote by ζ j for j = 1, . . . , n − k. The
multiplicity of ζ j as a zero of f is m j ≥ 1. The restriction to real-valued coefficients is deliberate; all
thoughts apply to polynomials with complex coefficients as well.
As we already noted in section 2.1, this problem is numerically ill-posed, since a sufficiently small
perturbation of a coefficient splits a root of multiplicity m > 1 into m distinct simple root.5
Without additional information, any solver that determines certified isolating regions for the roots
of f , thus, requires to perform computations on the exact coefficient sequence of f . Still, of the
mentioned methods, only the approaches based on Sturm’s theorem are applicable without additional
modifications (see remark 3.9). The price to pay is the exact evaluation of the gcd operations in the
computation of the Sturmian remainder chain.
For all other algorithms, we have to take precautions to avoid infinite subdivision (or, in the case of
numerical methods, indefinite refinement) and ensure termination. As a showcase, we consider the
Descartes method. If ζ j ∈ R is a multiple real root of f , that is m j > 1, then Descartes’ Rule of Signs
yields ν f(a,b) ≥ m j ≥ 2 for each interval (a, b) containing ζ j . Thus, neither inclusion nor exclusion
predicate will ever hold in the vicinity of ζ j . Since we cannot guarantee a priori that all multiple roots
are imaginary, Descartes method is insufficient for the solution of non-squarefree inputs. A similar
argument applies to the Bolzano algorithms as well.
The obvious remedy is to compute the squarefree part f / gcd( f , f 0 ) of f prior to the root isolation.
This essentially amounts to the computation of the canonical Sturmian remainder chain, and suffers
from the very same drawback: The Euclidean algorithm requires that exact arithmetics on the
coefficients of f is available. Even if it is (say, for f ∈ Z[X ]orQ[X ]), the squarefree part is subject to
coefficient swell. The Landau-Mignotte bound shows that the bitlengths of the coefficients of gcd( f , f 0 )
are asymptotically larger than those of f itself by a factor of n log n (see [vzGG03], chapters 3 and 6).
This directly implies a higher computational cost for the subsequent root isolation as well.
A particular issue arises for bitstream polynomials. Since a bitstream can provide only approximate
guarantees about the value it represents, it is impossible to decide whether a coefficient sequence
is exact. Thus, root isolation is inherently infeasible for non-squarefree bitstream inputs. The same
holds for bitstream interval polynomials unless the approximation procedure can be proven to yield
degenerate singular intervals for all coefficients at some finite precision. In general, this is not the
case.
3.6.1 Known Number of Complex Roots
However, we can easily adapt the complex root isolation algorithms to terminate in existence of
multiple roots if the user can provide an oracle procedure for the degree k of gcd( f , f 0 ) or, equivalently,
the number of complex roots. For this task, the oracle may utilize offline information not available to
5
As an exceptional border case, if f0 = · · · = f m−1 = 0 or, equivalently, f (X ) = g(X ) · X m with X - g(X ), then 0 is a root with
multiplicity m of f regardless of perturbations of any coefficient of g.
30
the mere root finder as well as the current set of candidate areas of the solver. We use a subdivision
scheme in breadth-first search manner until exactly n − k root regions are found that are guaranteed
to each contain at least one root. Then, the global information ensures that those set actually captures
all complex zeros.
Note that the oracle does not necessarily have to give the explicit k in advance. For example,
Sagraloff, Kerber and Hemmer [SKH09] compute a lower bound on the distances between distinct
roots for a polynomial in Z[X ] by modular arithmetic. Simultaneously, diameters and distances of the
candidate sets in the root solver provide a corresponding upper bound. They prove that eventually
the lower bound will increase above the upper one unless the root boxes actually contain multiple
roots, and thus yield a certificate for the successful root isolation. This procedure, while conceptually
more complicated than the computation of the greatest common divisor, is adaptive to the separation
of the roots. In particular, the additional cost for squarefree polynomials is negligible.
3.6.2 Known Number of Real Roots
For real root isolation, the problem is more involved. Even if the number m of real roots is known in
advance, a set of root candidates does not necessarily allow to terminate the algorithm. Again, we
consider the Descartes method:
Example 3.28. Let f (X ) = (X −3)2 X 3 (X +3)2 and g(X ) = ((X −3)2 +")(X −")X (X +")((X +3)2 +")
for " > 0, " 1. Assume that the number m = 3 of real roots of both f and g is known in advance.
Then, f vanishes on −3, 0 and 3 with multiplicities 2, 3 and 2, while g has the simple real roots −",
0 and ", and
ν f(−4,−2) = ν f(2,4) = 2
and
ν f(−1,1) = 3,
ν g(−4,−2) = ν g(2,4) = 2
and
ν g(−1,1) = 3
but
as well.
The number of sign changes for f accurately matches the number of roots in the corresponding
intervals, but the Rule of Sign does not allow to distinguish the situation to g. Further subdivision on
the intervals does not change the ν f .
Thus, the number of real roots in general does not suffice as an termination criterion.
Remark 3.29. A complex root isolator is capable to solve the real root isolation sub-problem. For
non-squarefree inputs, it is sufficient to provide the number m of real roots as a termination criterion.
In contrary to the purely real methods, the complex solver will eventually recognize n − k candidate
regions. Of those, m regions are isolating for the real roots; the remaining (n − k) − m comprise the
imaginary roots. If necessary, further refinement shrinks the latter until they only contain imaginary
points. Once exactly m sets touching the real axis are left, we can deduce that the intersections with
R gives a set of isolating intervals for the real roots.
31
4 ARCAVOID
To be fair: for a large number of applications, existing root finding methods are more than sufficient.
Still, in certain settings we need more than is usually provided. In particular, the handling of bitstream
coefficients and efficiency even for certified multi-precision computations are recurring issues.
There’s a gleam of hope at the horizon, in defiance of the disillusions in the preceding chapter.
Simultaneous root finders are numerical iteration methods, distant relatives to the Eigenvalue
algorithms, but specifically adopted to fit the needs of polynomial root finding.
We will now introduce our complex root finding algorithm ARCAVOID and its predecessor [MPSolve]
by Bini and Fiorentino [BF00a] as representants of this class. The term ARCAVOID – besides the fairly
obvious reference on the well-known arcade classic Arcanoid of earlier days of computing, and the
more hidden pun that its output are null values, denoted by void in the C programming language and
its successors – is an acronym for Approximation, Root Clustering, and Verification of Isolating Discs.1
ARCAVOID is designed to both address the shortcomings of the classical approaches and maintain
their good characteristics. ARCAVOID shall
• accept a wide class of inputs, in particular bitstreams and bitstream intervals,
• provide certified output,
• observe and exploit the geometry of the roots,
• not internally use significantly higher precision than absolutely necessary (and, therefore,
employ numerically stable computations wherever applicable),
• be efficient in theory and practice (but especially the latter), and
• easily allow library and stand-alone implementations.
We do not specifically optimize for sparse inputs or straight-line programs, but remark that the
algorithm is able to exploit both to some degree.
Pn
Qn
Throughout the rest of the thesis, we denote by C[Z] 3 f (Z) = i=0 f i Z i = f n i=0 (Z − ζi ) the
univariate polynomial of degree n with coefficients f i ∈ C in the standard monomial basis, and by
ζi ∈ C the complex roots we aim to find. The capital letter Z is used for the indeterminate of the ring
of polynomials C[Z]; the small letter z in f (z) stands for an arbitrary, but concrete, substituted value.
As all complex root solvers, we require the degree of the input to be known in advance, that is f n 6= 0.
4.1 Outline of ARCAVOID
We address both our first and the fourth goal when we define how the input of ARCAVOID looks like.
Regardless of the actual coefficient range of the polynomial – whether exactly representable or not –
we work on a Bitstream interval approximation in stages of gradually increasing precision.
The main engine of ARCAVOID is a simultaneous root finding algorithm. Starting from n initial root
candidates, an iteration scheme is expected to give gradually improving approximations to the roots.
We favor the use of the Aberth-Ehrlich method (see section 4.2.3) for its excellent performance in
practice, but different choices can be justified.
1
It is pronounced as Ar-ca-void – we will deal with circles, so we do not intend to avoid arcs...
33
4.1.1 Polynomial and Root Neighborhoods
A naïve iteration scheme for solutions of a polynomial runs indefinitely, hopefully giving better
approximation after each run. We have to terminate the numerical method from the outside to ensure
termination. Fortunately, the bitstream input model comes with an implicit stop criterion on the
approximation quality of a root:
Definition 4.1 (Polynomial and root neighborhood). Let f ∈ C[Z] be a polynomial with a bitstream
interval procedure for its coefficients. Let p ∈ N be some integer precision.
1. The polynomial neighborhood or polynomial interval approximation [ f ](p) of precision p is
defined as the set of polynomials whose coefficients lie in p-bitstream interval approximations
of the corresponding coefficients of f :
¦
©
P
[ f ](p) := f˜ = i f˜i Z i ∈ CI[Z] : f˜i ∈ [ f ]i ,
where the [ f ]i are p-interval approximations of f i .
We canonically identify the set [ f ](p) with a polynomial in CI[Z]. In particular, we write
¦
©
[ f ](p) (z) := z ∈ C : f˜(z) = 0 for some f˜ ∈ [ f ](p) ⊂ C for the set of values the polynomials in
¦
©
[ f ](p) take when evaluated on z, and [ f ]0(p) := f˜0 : f˜ ∈ [ f ](p) for the derivative of [ f ](p) .
2. The root neighborhood RN f (p) of precision p is defined as the union of the vanishing sets of the
polynomials in the corresponding p-polynomial neighborhood of f :
¦
©
RN f (p) := z ∈ C : there is an f˜ ∈ [ f ](p) with f˜(z) = 0
¦
©
=[ f ]−1
(0) = z ∈ C : 0 ∈ [ f ](p) (z) .
(p)
Remark 4.2. By definition, it is obvious that for all precisions p ∈ N, f ∈ [ f ](p) and ζi ∈ RN f (p) for a
roots ζi of f .
As soon as a root guess z ∈ C lies in the p-root neighborhood of f , it is not distinguishable from
any possibly better approximation within the working precision p. Thus, we say that the stop criterion
for the refinement of z at precision p is satisfied if z ∈ RN f (p).
ARCAVOID takes a bitstream interval for the squarefree input polynomial f , and returns isolating
regions for f . Since f is squarefree and the position of the roots continuously depends on the
coefficients of f , there is some precision pmin such that RN f (pmin ) contains exactly n pairwise disjoint
connected components, each isolating for a root of f . Unsurprisingly, we expect ARCAVOID to
approximate f to this very precision (or slightly higher) and detect the isolating regions.
Remark 4.3. It is, by definition, infeasible for any root finding approach to give certified results
without demanding the minimum precision. However, note that the definition of pmin is not globally
well-defined, but depends on the output of the bitstream interval procedures per instance.
For example, the approximation interval for an integer x is likely to degenerate to [x, x] as soon as
p = prec(x) is reached. If, however, an identical value x 0 = x = φ(α) is defined to be the value of
a function φ involving transcendental expressions, we do not expect that [x, x] is ever recognized,
regardless of the working precision (see example 2.10.5 on page 8).
4.1.2 Root Inclusion Certificates
The intention of returning isolating discs requires us to give a conservative bound on the extent of a
root neighborhood of f . Thus, we introduce the notion of
34
1.2
0.9
0.6
ℑ(z)
0.3
0.0
−0.3
−0.6
−0.9
−1.2
−1
−0.5
0
ℜ(z)
0.5
1
Figure 4.1: Root neighborhoods for different approximations of f = Z 15 − 0.95
1.2
0.9
0.6
ℑ(z)
0.3
0.0
−0.3
−0.6
−0.9
−1.2
−1
−0.5
0
ℜ(z)
0.5
1
Figure 4.2: Root neighborhoods for different approximations of f = Z 21 − (Z +
1 3
) (Z
16
−
1+I 2
)
32
35
Definition 4.4 (Root inclusion discs). A root inclusion disc for a complex number z with respect to a
polynomial f ∈ C[Z] is a closed disc D ⊂ C in the complex plane such that D contains both z and
a root of f . If the sum m ≥ 1 of the multiplicities of the roots in D is known, we say that D is an
inclusion disc of multiplicity m for f .
We say that D is a root inclusion disc of z of multiplicity m with respect to an interval polynomial
[ f ] ∈ CI[Z] if D comprises z and exactly m roots of each polynomial f˜ ∈ [ f ].
This notion allows us to state the high-level algorithm for ARCAVOID:
Algorithm 2: ARCAVOID (Outline)
input : bitstream interval approximation of a squarefree polynomial f of degree n
output: list O of isolating discs for roots
1
2
3
5
6
7
8
9
10
11
12
13
14
O←;
p ← 53
// 53: default floating point precision on 32 bit architectures
˜
f ← some arbitrary polynomial in [ f ](p)
[F ] ← [ f ](p) · [1 − 2−p , 1 + 2−p ]
// see remark 4.5 below
Initialize z = (zi )i for i = 1, . . . , n to some root approximations.
Active ← {zi : i = 1, . . . , n}
repeat
repeat
Compute root inclusion discs Di with respect to [ f ](p) for all zi ∈ Active.
forall Di of multiplicity one that are “well-separated” from the others do
// Newton iteration is guaranteed to converge from zi to ζi ∈ Di
Remove zi from Active.
Append Di to O.
RootNBH ← ;
// approximations that require higher working precision
repeat
forall zi ∈ Active do
Perform a step of the (Gauß-Seidel style) Aberth-Ehrlich iteration for f˜ on zi .
if 0 ∈ [F ](zi ) then
Remove zi from Active.
Append zi to RootNBH.
15
16
17
18
19
20
21
until Active = ;
// 0 ∈ [F ](zi ) for all i
p ← 2p
// double working precision
Active ← RootNBH
until Active = ;
// all approximations are in some root neighborhood of f
if not all root inclusion discs Di are pairwise disjoint then
Active ← O
// Aberth-Ehrlich iteration not successful: repeat
22
23
24
25
26
27
28
29
until Active = ;
return O
// all roots are found
Remark 4.5. In line 5, we widen the interval approximation of f . This seems nonsensical at the first
glance; after all, we stressed the benefit that bitstream intervals allow a more fine-grained estimation
of the input. We do actually exploit this additional precision in the numerical iteration and the
computation of the inclusion discs.
36
However, even for the case of an exact input (that is singleton coefficient intervals for [ f ](p) ) we
have to tolerate some deflection from the precise roots for the stop criterion.
Before we turn to the methods to actually find good root candidates, we discuss the means to
compute inclusion discs on bitstream polynomials. A simple result is equivalent to the truncated
complex Taylor test as employed in CEVAL.
Lemma 4.6. Let [ f ] ∈ CI[Z] be an interval approximation of a polynomial f , deg f = n, and z ∈ C
such that 0 ∈
/ [ f ]0 (z). Then, the disc
[ f ](z) ,
D(z; r) = {w ∈ C : |w − z| ≤ r} , where r := n max [ f ]0 (z) is an inclusion disc for each polynomial in [ f ]; in particular, for f .
Proof. Apply lemma 3.26 (page 29).
As mentioned there, this result is not sufficient to guarantee the success of the root isolation unless
the discs D(zi ; ri ) for all root approximations are pairwise disjoint. As a simple counterexample,
assume f = [ f ] = Z(Z + 1) and z1,2 = ±". Then, for " 1, r ≤ 2|" 2 + "|/|1 − 2"| ≤ 5", but the
enlarged discs D(z1,2 ; r) do not contain the root −1.
In particular, as long as there are k intersecting root discs, the lemma does neither allow to bound
the multiplicity of any of the inclusion discs D(zi ; ri ) below k nor to give a non-trivial lower bound.
Since we can withdraw a root approximation from further consideration in the algorithm as soon as
the multiplicity of the corresponding inclusion disc is one, this in an unpleasant restriction. Better
bounds can be derived from Rouché’s theorem or the theory of Gershgorin circles.
We use the following result by Neumaier, based on the latter approach:
Theorem 4.7. Let f ∈ C[Z] be a polynomial of
Qdegree n and let z1 , . . . , zn ∈ C C be pairwise distinct
approximations to its roots. Define αi := f (zi )/ j6=i (zi − z j ).
Then, all roots of f belong to the union D of the discs
Di := D(zi − ri ; |ri |), where ri :=
n αi
· .
2 fn
Moreover, every connected component of D consisting of m of these discs contains exactly m zeros of f ,
counted with multiplicity.
Proof. See [Neu03].
Corollary 4.8. Let f , zi be as above, and let [ f ] be some polynomial neighborhood of f .
Then, the root neighborhood [ f ]−1 (0) is contained in the union D of the discs
max [ f ](z)
.
Di := D(zi ; R i ), where R i := n · Q
j6=i |zi − z j |
Moreover, every connected component of D consisting of m of these discs contains exactly m zeros of each
polynomial in [ f ], counted with multiplicity.
Proof. Apply theorem 4.7 on [ f ], and note that D(z − r; |r|) ⊂ D(z; 2|r|).
Remark 4.9. The radii of the inclusion discs scale proportionally to n. For a region comprising
k roots, Neumaier proposed an additional refinement step to shrink the radii by a factor n/k by
37
recursive application of a generalized theorem on the connected components. If the approximations
are sufficiently close to the roots, the revised method overestimates the approximation error by an
asymptotic factor of k.
In his analysis [Rum03] of different methods to bound multiple root regions, Rump erroneously
quantifies the computational cost of the refinements to be insignificant compared to the initial
computation of the inclusion discs. In our implementation, the additional effort of the refinement did
not compensate for the smaller bounds.
4.2 Simultaneous Root Approximation Methods
The Aberth-Ehrlich iteration is a simultaneous method to approximate the zeros of a univariate
polynomial. Different approaches lead to the formula given below: Louis W. Ehrlich [Ehr67] aims to
give a better Newton-like refinement method for all roots with super-quadratic convergence, while
Wolfgang Börsch-Supan [BS63] derives a posteriori error bounds on the quality of root approximations.
Finally, Oliver Aberth [Abe73] borrows ideas of the Newton-Raphson and the Durand-Kerner method
and unifies their benefits. His modifications both promise faster convergence and try to avoid
intermediate approximations to be “caught” in basins of attraction which do not contribute to the
global solution of the polynomial equation. For now, we explain the motivation of the latter.
(0)
All simultaneous root finders base on a certain choice z (0) = (zi )i ∈ Cn of initial candidates (for details on the selection of the starting configuration, see section 4.3). Subsequently an operator Φ unique
to the very method is applied iteratively to yield z (1) = Φ(z (0) ), z (2) = Φ(z (1) ), . . . , z (k+1) = Φ(z (k) ),
. . . , until the approximations (hopefully) fulfill the required precision for the root approximation.
Definition 4.10. A simultaneous root iteration method for f ∈ C[Z] is defined by an operator
Cn → Cn , specifying the updates on the root approximations in each iteration step. Specifically,
1. the (simultaneous) Newton-Raphson method is given by N f : Cn → Cn , z 7→ z 0 , where
f (zi )
N f (z) i := zi0 := zi − 0
,
f (zi )
(4.1)
2. the Weierstraß-Durand-Kerner (WDK) method is given by WDK f : Cn → Cn , z 7→ z 0 , where
WDK f (z) i := zi0 := zi −
fn
Q
f (zi )
,
j6=i zi − z j
(4.2)
3. and the Aberth-Ehrlich method is given by A f : Cn → Cn , z 7→ z 0 , where
A f (z) i := zi0 := zi −
f (zi )/ f 0 (zi )
P
1 − f (zi )/ f 0 (zi ) · j6=i
1
zi −z j
.
(4.3)
Remark 4.11. Note that the Newton-Raphson method does not consider any of the other n − 1
components for the calculation of a single entry, and thus simply amounts to the application of the
well-known one-dimensional iteration z 0 = z − f (z)/ f 0 (z) to each of the components separately.
Remark 4.12. The operators as stated in definition 4.10 describe Jacobi-style iterations, where the
components of the vector z (that is all root approximations) are updated at once with respect to
all the previous approximations. All methods can, however, be rewritten in a Gauß-Seidel manner,
where a single component is updated in each step; in a stage of n mappings, each approximation is
38
refined once. More formally, Φ is replaced by Φ(n) ◦ Φ(n−1) ◦ · · · ◦ Φ(1) , where (Φ( j) (z)) j = (Φ(z)) j and
(Φ( j) (z))i = zi for all i 6= j.
The Gauß-Seidel variants promise slightly higher convergence rates, since the improvement on each
value already contributes to better update estimates for the remaining ones, and can usually performed
in-place without additional space for temporaries. On the other hand, Jacobi-like implementations
allow the computation of the correction terms in parallel and do not depend on the order of the
components of z (although this can be dealt with, for example, using random permutations of the
Φ( j) ).
In our implementation, we use the Gauß-Seidel variants.
4.2.1 The Newton-Raphson Method
As noted in remark 4.11, the Newton-Raphson iteration essentially only considers a single root
approximation. The one-dimensional variant is elementary mathematics: at an interpolation point of
the function, get the slope and compute the zero of the tangent as the next approximation (see figure
4.3).
Convergence of the method is easy to see when the initial approximation z (0) is already in a
sufficiently small neighborhood of a simple root ζ of f . In this setting, the derivative f 0 stabilizes to a
value close to f 0 (ζ) 6= 0. Now consider the Taylor expansion at z (0) .
0 = f (ζ) = f (z (0) ) + f 0 (z (0) )(ζ − z (0) ) + O |ζ − z (0) |2 ,
which yields
f (z (0) ) 1
(1)
(0)
ζ − z = ζ − z −
= 0 (0) O |ζ − z (0) |2
0
(0)
f (z ) f (z )
1
O |ζ − z (0) |2 = O |ζ − z (0) |2 .
≈
f 0 (ζ)
We recognize the well-known fact that the iteration will converge quadratically to the root [Til98].
Evenly famous is the unpredictable behavior of the Newton-Raphson method for approximations
outside of the proximity of a root; the iteration might or might not converge, and even if it does,
the center of attraction is not necessarily the closest root, but varies chaotically. This behavior is
responsible for the pretty structures of Julia and Fatou set pictures, which gain a lot of attention from
art and popular science, but show how badly the iteration performs if no proper precautions are taken.
In summary, Newton’s method for itself is not a practical approach for root solving, but the quadratic
convergence and the ease of evaluation makes it a good refinement algorithm, as soon as the root
regions are determined by another approach.
z (4)
z (3)
z (2)
z (1)
z (0)
Figure 4.3: Four steps of the real-valued Newton-Raphson iteration
39
As a side note, while the usual iteration rule yields only linear convergence to multiple roots, it is
possible to tune Newton’s method to keep quadratic speed if the multiplicity of the root is known in
advance.
4.2.2 The Weierstraß-Durand-Kerner Method
Even if we were to guarantee that the Newton iteration will converge, we would face the problem that
several initial approximations might “get caught” in the same basin of attraction and thus converge
to the same root. The WDK method aims to overcome this hindrance. An algebraic derivation of
the Durand-Kerner method can be found in [Ker66]; we illustrate the rationale behind in intuitive
physical terms, starting with Newton’s method:
We identify the field complex numbers with vectors in the Euclidean two-dimensional space. Then,
Vζ (z) := (z − ζ)/|z − ζ|2 = 1/(z − ζ) defines a vector field, which assigns each to each point z ∈ C
the vector directed away from ζ, with a length inverse to its distance to ζ. We now overlie the vector
fields corresponding to the complex roots of f , resulting in
X
X
Vf (z) := V(ζ1 ,...,ζn ) (z) :=
Vζi (z) =
1/(z − ζi ) = ( f 0 (z)/ f (z)).
i
i
(For the last equation, see lemma 3.24.) In electrostatics, this amounts to the field of unit plus charges
located at the roots ζi , affecting a unit negative charge z. In case of multiple roots, each points carries
a charge equal to its multiplicity as a root of f .
Now, a step of Newton’s iteration corresponds to sampling this vector field at some root approximation z and placing the new approximation z 0 at the location of a single plus charge that were causing
this particular force if no other charges would be involved. This amounts to the assumption that there
P
is only one significant term in the sum i 1/(z − ζi ), which is indeed reasonable for z near a simple
root. Repeating the sampling gives the Newton-Raphson method.
Without proper precautions taken, it is as likely as not that a selection of n initial root guesses
converge to the same root ζ. In the Durand-Kerner iteration, being a simultaneous method, we can
avoid this obstacle: We consider the sampled field as originating from n fixed plus charges, not just
one. Namely, in the correction for some component, each of the n − 1 remaining approximations
is taken as a root, and thus contributing to the field. We then shift the root guess to the calculated
position of the missing n-th plus charge.
This approach turns out to be reliable in practice, if protected from overflows: When the fixed
quasi-roots are in some distance from the component to be updated, the local force field is dominated
by the nearby roots of the original polynomial, and the update is attracted to them. If, however, one
of the other root approximations is very close, the position of the virtual n-th root contributing to the
field is quite arbitrary. The result of the iteration will be similarly unpredictable, and can lead to far
off intermediate approximations.
Thus, a typical run in the WDK method consists of a number of small refinements, followed by a
sudden explosion of the root approximations, often exceeding the root range by several orders of
magnitude. Afterwards, the root guesses route to their center of gravity, and are “pocketed” to the
actual roots from the outside. This is not an issue in multi-precision floating point environments (see
section 2.2), but a naïve implementation using machine precision floats or even doubles rarely
makes it through the blow-up phase for degrees in the lower two-digit range.
Remark 4.13. When the approximations are sufficiently near to the actual roots of the polynomial, the
correction term in the Weierstraß-Durand-Kerner iteration converges to the derivative of f . Thus, the
behavior will eventually be identical to the Newton-Raphson method and yield quadratic convergence
for simple roots as well.
40
2
1
1
ℑ(z)
ℑ(z)
2
0
−1
−2
−2
−1
−1
0
ℜ(z)
1
2
2
ℑ(z)
1
0
−1
−2
−2
0
−1
0
ℜ(z)
1
2
−2
−2
−1
0
ℜ(z)
1
2
top left: Newton-Raphson method, top right: Weierstraß-Durand-Kerner method, bottom left: AberthEhrlich method
The roots of f (Z) = (Z 3 − 2)(Z + (4 − I )/10)2 are
shown in red, the roots of f 0 in orange; the green
crosses denote the positions of some n − 1 different
root approximations.
Vectors are scaled by factor 1/5, and additionally
shortened if significantly larger than the sampling
grid size.
The Newton method shows distinctive turbulence
around zeroes of the derivative, and ignores the
position of the other guesses. The WDK iteration
strongly points towards the root which is missing
in the remaining approximations.
Aberth’s method combines the features: it both
attracts to the closest root (as Newton) and repels
from other approximations (as WDK).
Figure 4.4: Fields of force for a root approximation in Newton’s, WDK and Aberth’s method
4.2.3 The Aberth-Ehrlich Method
Aberth [Abe73] draws the following conclusions from the physical interpretation of Newton’s method:
Instead of independently tracing the motions of minus charges in the field of force given by positive
charges at the roots, it is advisable to account for their reciprocal electrostatic interaction as well.
Consequently, Aberth adds repelling forces between the distinct root guesses. While the zeros of
the input are stagnation points of the iterations, the other approximations now act as poles. The
repulsion of negative charges among each other reliably resolves collisions of approximations even
when there actually are m > 1 very close roots (or a single root of multiplicity m). In this situation,
the root guesses tend to converge uniformly spread on a circle with decreasing radius; however, the
convergence rate is only linear.
41
The Aberth-Ehrlich method is exceptionally reliable and performant in practice. Besides the
fundamentally unavoidable polynomial evaluation, overflow issues may arise in the situation that two
roots are very close. This is a very rare circumstance: the repulsive forces between the approximations
tend to prevent this beforehand, and an explosion as in the WDK iteration is seldom observed. Also,
the attraction to the closest root keeps the average number of iterations lower than for WDK. A
“hole-in-one”, where the direction of the root tracing does not vary significantly during the iteration,
is not entirely unlikely.
Remark 4.14. It can be shown that the Aberth-Ehrlich iteration for some approximation zi is the
equivalent of Newton’s method on the rational function
F (Z) := Q
f (Z)
j6=i (Z
− zj)
.
When the root guesses z j ≈ ζ j for j 6= i converge to the actual roots of f , the denominator approximately corresponds to f 0 (zi ). Looking at the Taylor expansion of f at ζi , we see that the Newton
correction for F not only compensates the linear terms, but the quadratic residuals as well. At the
price of a higher computational cost per iteration, Aberth’s method is, thus, cubically convergent to
simple roots [Til98].
4.3 Opening: The Choice of a Starting Configuration
The performance of all simultaneous numerical methods crucially depends on a good choice of the
(0)
initial approximations z (0) = (zi )i . We cannot expect to pick an “optimal” selection in the very close
proximity of the roots: this actually is what root isolation is all about. But cheap heuristics can provide
a significant decrease in the number of iterations required to achieve a root guess configuration in the
root neighborhood for the initial working precision.
Our method of choice is due to Bini, and significantly contributes to the outstanding performance
of his implementation [MPSolve].
P
Theorem 4.15. Let f = i f i Z i ∈ C[Z] be a polynomial of degree n, f0 6= 0 6= f n . The equation
X
| f k |X k −
| f i |X i = 0,
i6=k
by Descartes’ Rule of Signs, has exactly one positive real solution s0 for k = 0 and exactly one positive real
solution t n for k = n. Moreover, for 1 ≤ k < n, it has either none or two positive solutions sk < t k .
Let 0 = k̂1 < k̂2 < · · · < k̂q = n be all values of k for which there is a positive solution, and define
t 0 := 0 and sn := ∞. Let t 0 < s0 = sk̂1 < t k̂2 < sk̂2 < · · · < t k̂q−1 < sk̂q−1 < t k̂q = t n < sn . Then, any
polynomial g ∈ C[Z] of degree n
g(Z) =
n
X
g i Z i , where |g i | = | f i | for i = 0, . . . , n,
i=0
has exactly k̂ j+1 − k̂ j complex roots in the closed annulus A j := D(0; t k̂ j+1 ) \ D◦ (0; sk̂ j ) = {z ∈ C : sk̂ j ≤
|z| ≤ t k̂ j+1 } of radii sk̂ j and t k̂ j+1 for j = 1, . . . , q − 1, and no roots in the open annulus of radii t k̂ j and sk̂ j
for j = 1, . . . , q.
Proof. See [Bin96], theorem 5.
42
Determining the exact values sk and t k again requires root solving on simpler polynomial instances.
But as Bini points out, since we are only interested in rough guesses for initial configurations, we do
not need to exactly solve the equations:
P
Theorem 4.16. Let f = i f i Z i ∈ C[Z] be a polynomial of degree n, f0 6= 0 6= f n . Let 0 = k1 < k2 <
· · · < kq = n denote the X -coordinates of the vertices of the convex hull of the set {(i, log | f i |) : i =
0, . . . , n}. Then, for j = 1, . . . , q − 1,
1
uk j := f k j / f k j+1 k j+1 −k j ∈ A j .
In particular, the k j+1 − k j equispaced points
(0)
zk +i
j
= uk j+1 exp
2π
k j+1 − k j
i+
2π
n
j+σ I
for i = 1, . . . , k j+1 − k j and random σ ∈ [−π, π]
on the circles of radius uk j lie in the root annuli of f (Z) as given in theorem 4.15.
Proof. See [Bin96], theorem 6.
The proposed method is incurs very little overhead: Since the points (i, log | f i |) are canonically
sorted on their first component, on the convex hull computation can be easily done in linear time using
the Graham scan algorithm. Moreover, numerical precision is not an issue since the outcome of the
algorithm only serves as initial approximation for the subsequent root iteration. However, the benefits
are dramatic. In experiments on random polynomials of degrees up to 200, we compared Bini’s
starting configurations against the trivial choice of the n-th roots of unity. Both the Durand-Kerner and
the Aberth-Ehrlich iterations require but a fifth of the number of iterations to yield approximations in
the machine precision root neighborhoods (p = 53).
4.4 Middle Game: Precision Handling in Numerical Root Finding
ARCAVOID works on bitstream input not only to handle inexact input. The concept of polynomial and
root neighborhoods implicitly gives bounds for the required working precision and, thus, the cost of
arithmetics in the stages of the algorithm. But how large do we actually have to choose the precision
of intermediate results to avoid superfluous work while getting accurate results? Again, we borrow
results from Bini and Fiorentino’s work on MPSolve [BF00a; BF00b].
p
Assume that an operation ◦ ∈ {+, −, ·, /, k } is performed with a maximum relative error of µ = 2−p
on floating point operands of precision p, that is x e
◦ y = (1 + δ)(x ◦ y) for some δ < µ for all
x, y ∈ F(p) (see 2.2). Then, we have the following results:
Lemma 4.17. Let x = x 1 + I x 2 , y = y1 + I y2 ∈ CF(p) be complex numbers with x + y = z = z1 + I z2 ,
x y = w = w1 + I w2 . Let z̃ = x +̃ y, w̃ = x ˜· y be the values obtained by evaluating the complex addition
or multiplication in floating point arithmetic with precision p. Then,
z̃ = (1 + δ)z,
w̃ = (1 + ")w,
where |δ| < µ,
p
p
where |"| < 2 2µ + 2µ2
for classical complex arithmetic and
w̃ = (1 + ")w,
where |"| <
p
13µ + O(µ2 )
43
for fast complex arithmetic (Gauß-Karatsuba multiplication using 3 real multiplications and 5 real
additions).
Proof. See page 76 in the appendix.
Corollary 4.18. Let f˜(z) := fl( f (z)) denote the value computed by applying the Ruffini-Horner rule for
z ∈ CF(p) on f ∈ CF(p) [Z] in floating point arithmetic at precision p. Then,
f˜(z) = fl · · · f n z + f n−1 z + f n−2 z + · · · z + f0
n
X
p
=
f i (1 + δi ) z i , where |δi | < ((2 2 + 1) i + 1) µ + O(µ2 )
i=0
for classical complex arithmetic and
f˜(z) =
n
X
p
f i (1 + δi ) z i , where |δi | < (( 13 + 1) i + 1) µ + O(µ2 )
i=0
for fast complex arithmetic.
Proof. Apply lemma 4.17 for each multiplication and addition in the Ruffini-Horner evaluation
scheme.
Bini and Fiorentino now deduce the following strong result:
Corollary 4.19. The backwards stability of the Ruffini-Horner rule implies
p
p
f˜(z) − f (z) < µ(2 2 n + 1) s(|z|) or f˜(z) − f (z) < µ( 13 n + 1) s(|z|)
P
for classical and fast complex arithmetic, respectively, where s(X) := i | f i | X i.
p
p
In particular, an intermediate working precision of at most log 3(2 2 n + 1) p or log 3( 13 n + 1) p,
respectively, suffices to decide whether z lies in the p-relative root neighborhood of f .
Proof. See [BF00a], theorems 6 and 8.
The authors of MPSolve further pursuit the estimates of the rounding and cancellation errors
incurred by polynomial evaluation, and deduce certified bounds on the root inclusion discs. Instead,
we only note that the factor [1 − 2−p , 1 + 2−p ] for the expansion of the coefficient interval is sufficient
to detect approximations inside the root neighborhood as such within the current working precision,
since all interval boundaries in the evaluation of [F ](zi ) are affected by round-off in the same scale.
We emphasize that, in our approach, the precision handling is only necessary for performance
reasons. The correctness of the output is ensured regardless of the intermediate precisions by the
thorough use of conservative interval arithmetic. In particular, our algorithm does not depend on the
implementation of polynomial evaluation schemes. In contrast, a completely new analysis and rewrite
of the code base has to be done for the integration of asymptotically fast algorithms in MPSolve.
4.5 Endgame: Speed-up Strategies for Ill-conditioned Roots
Finally, ARCAVOID integrates a strategy to gain significant speed-up for multiple or very close roots.
For an explanation of the situation, see figure 4.2, depicting the root neighborhoods of
f [Z] = Z 2 1 − (Z +
44
1
16
)3 (Z −
1+I
32
)2 .
The vanishing set of f consists of 16 well-conditioned zeros near the unit circle and two clusters of
roots around 1/16 (with 3 zeros) and (1 + I)/32 (with 2 zeros). The former do not require high
precision to be isolated, while the latter require a substantial number of refinement steps. But the
local view around the clusters actually amounts to a polynomial of degree 3 or 2, respectively.
Michael Sagraloff recently recognized that in this case of a well-separated root region, consisting of
k roots around c ∈ C, it actually suffices to perform the root isolation on the local polynomial g(Z − c),
where we only consider the coefficient up to degree k [Sag10]. He describes an estimation to control
the perturbation implied by the round-off error in the shift operation to c and the truncation of the
localized polynomial.
We follow an easier approach, employing the truncated polynomial for the numerical iterations
only. If, at the precision increment stage of the algorithm, we find that the circumcircle D(c, r) of
a connected component of k < n root inclusion discs does not contain the origin, we compute the
localized polynomial g at c and apply the initial root guess procedure as given in section 4.3 to yield
approximations z10 , . . . , zk0 to the roots of g. If we find that some of the initial guesses are outside of
D̃ := D(0, r), we conclude that the separation of the root cluster is not sufficient with respect to the
remaining roots of f .
Otherwise, we apply the Aberth-Ehrlich iteration for the approximations z10 , . . . , zk0 on g. Once the
roots fall in the root neighborhood of g with respect to the current working precision, we apply the
backshift zi0 7→ zi0 + c = zi and compute the inclusion discs for the new root candidates zi directly on f .
With this simple approach, we yield a tremendous gain in efficiency while maintaining a global
certificate on the solutions.
45
5 Implementation and Experiments
We provide an implementation of ARCAVOID integrated into the Computational Geometry Algorithms Library [CGAL]. It is aimed towards the development of a framework for complex algebraic
computations in addition to the existing real valued algebra.
The CGAL library represents the state of the art in exact geometric algorithms. While originally
addressed to linear geometry, a strong trend towards nonlinear algebraic geometry. CGAL relies on
the generic programming paradigm to allow a modular exchange of algorithms, data structures and
number types that conform to certain requirements, depending on the environment.
In CGAL, those requirements are collected by concepts, and a specific implementation of a concept
is called a model. As an example, the concepts for number types closely resemble the well-known
mathematical structures of groups, rings and fields. A number type library such as [GMP] or [LEDA]
provides models for rings (Z, namely arbitrarily large integers) or fields (Q). Additionally, models can
provide information about the specifics of an implementation. For example, a rational field asserts
that the computations are performed in an exact way, but that the model does not offer (arbitrary)
square roots.
A traits or kernel class collects a number of models required for a certain algorithm. In the case
of a root solver for approximate input, the kernel class is required to provide a coefficient number
type and bitstream or bitstream interval approximations of univariate polynomials. Thus, we can
encapsulate the algorithm from how a particular caller implements the bitstream approximation and
deals with the output.
CGAL is written in C++, where the concepts can be implemented by means of template parameters.
Thus, the selection of different models is entirely done at compile time and does not impair the
performance of the applications.
5.1 Integration of ARCAVOID in the CGAL Framework
ARCAVOID constitutes the first implementation of explicit complex arithmetic in CGAL. We decided
to extend the existing hierarchy of number types by the Complex_embeddable concept. Naturally,
we provide a model as well, in form of the Cartesian_complex class. Its components again are
parametrized to accept any implementation of the existing Real_embeddable concept.
The interface is designed to be as general as possible. For example, we took precautions that
it is possible to seamlessly integrate polar representation of complex numbers, which may be the
method of choice for trigonometric applications. As well, we extended the notion of Intervals –
again, a component of CGAL’s type hierarchy – to fit to the complex plane. A complex interval of
Cartesian_complexes is given by a complex of intervals. In contrary, the similar approach in polar
representation might denote an complex annulus {z ∈ C : r1 ≤ |m − z| ≤ r2 } with radii r1 and
r2 around some center m. By the generic programming, a user of the concept can apply the same
predicates and operations on either model. Of course, the embedding of real numbers into the
complex plane requires no intervention from the user as well.
For ARCAVOID itself, we introduced Complex_root_solvers, based on the proven Real_root_solver
concept. In terms of CGAL, this allows the programmer to ask for the boundaries of isolating regions
47
for either complex or real roots. Using the ideas of remark 3.29 and theorem 3.27, ARCAVOID too
provides an interface as a Real_root_solver.
The price to pay for a generic environment is the initial setup. The entire contribution of our
code to the CGAL project amounts to about ten thousand lines of code. Of those, less than 2000
are actually concerned with ARCAVOID. The lions share consists in posing the new concepts and
satisfying the existing interface requirements. Besides, a generic interface offers next to no facilities
for pre-allocation and reuse of memory, as it is realized in all solvers with hard-coded data types.
Our implementation strictly follows the description given in chapter 4. Additionally, the initial
round of iterations is performed in machine precision double floating point arithmetic, yielding a
major speedup for well-separated roots. The inclusion discs are conservatively computed using CGAL’s
Interval_nt implementation by Sylvain Pion and Michael Hemmer. A very similar implementation
is available independently of CGAL in the numeric/interval package of the [Boost] C++ library.
5.2 Benchmarks for Univariate Solving
In this section, we will provide a representative set of benchmarks for our complex solver. It seems
natural to choose a selection contestants out of the well-renowned leaders in mathematical, numerical
and algebraical software, such as [Maple] or Mathematica [WR88]. However, we feel that this would
not be a fair and sensible comparison. The major players in this field feature far less specialized
algorithms; in particular, none can offer a fine-grained precision handling as necessary for efficient
root isolation.
On the one hand, the algorithms employed are of numerical, uncertified nature. Of course one
has to look hard for wrong results, but still this does not fit to our expectations. On the other hand,
however, the complex root finders work with a global, user-defined precision to approximate all
roots. This has to be paid for within the refinement iterations and entails an inherent disadvantage
compared to our adaptive technique.
Bini and Fiorentino decided to still compete against them, and found their MPSolve implementation
faster on each experiment by orders of magnitude. To the best of our knowledge and experiments,
this situation has not changed significantly in the last decade; we thus refer to their experiments and
results in [BF00a].
5.2.1 Contestants
Instead, we decided to include real root isolators in our comparisons. This is mostly due to the fact
that real solving is the predominant problem in recent algebraic geometry. However, the complex
solutions may still contribute to the overall algorithms (see chapter 6).
Still, the complex solvers in the selection were determined to isolate all complex roots. Thus, we
have to keep in mind that the results given below apply to a different problem statement.
All mentioned third-party programs use the arbitrary precision number types offered by the [GMP]
library, and so do we. Additionally, ARCAVOID relies on its descendants [MPFR] (bigfloats) and [MPFI]
(bigfloat intervals) for the multi-precision floating point computations.
Complex Solvers
• [MPSolve], by Dario Bini and Giuseppe Fiorentino, is the de facto benchmark in complex root
finding. The implementation of 2002 is unrivaled so far. MPSolve is the natural candidate for a
comparison since the design of ARCAVOID is fundamentally similar.
MPSolve computes certified approximations of the roots of a polynomial with real or complex
valued coefficients in given relative precision. In particular, it does not apply to absolute
48
bitstream inputs, which is an important restriction in the solving of equations with algebraic or
transcendental coefficients. Instead of interval arithmetic, MPSolve uses relative error bounds
on the floating point calculations. The approach used does not easily generalize to an absolute
bitstream or bitstream interval setting.
The implementation requires a user-defined maximum working precision. If root isolation
cannot be accomplished within this limit, the program returns the current set of inclusion discs
and aborts. Bini and Fiorentino prepared for the possibility of a restart with higher precision
from this stage, but this feature is not yet available (and it may be doubted that it ever will be).
We, thus, run the comparisons with an extremely high limit. Since MPSolve internally keeps
track of the actual required precision, this does not affect the runtime.
MPSolve features special handling of sparse polynomials. This yields a major speedup, but is
out of reach for bitstream inputs. We did not use activate this setting in our comparisons.
MPSolve is written in low-level C. As ARCAVOID, MPSolve is optimized to solve the polynomial
equation in a machine precision initial stage. Additionally, in the case of overflows in the
calculation, a double with exponent type is integrated to allow fast fixed-precision computations
in an essentially arbitrary large range.
• [Sage] is a recent computer algebra system, developed by a growing open source community
around William Stein. It connects to a large number of freely available as well as commercial
mathematical applications.
Due to Carl Witty, Sage provides an interface to Xavier Gourdon’s implementation [Gou96] of
the asymptotically optimal Pan-Schönhage splitting circle algorithm in [PARI/GP]. In particular,
Witty encapsulates the precision and memory management of PARI/GP: By default, Gourdon’s
algorithm uses a fixed user-defined precision throughout the whole algorithm. Thus, convergence is not guaranteed for a precision too low, while otherwise the runtime seriously increases.
In consequence, Witty certifies the results of the solver and increases the precision until the
output is correct.
Sage is written in a combination of Python and C; PARI/GP is developed in C.
Real Solvers
• The Descartes solver is a straightforward implementation of the classical Descartes method in
CGAL. The implementation due to Michael Hemmer is applicable for polynomials with integer
or rational coefficients.
In addition to the plain Descartes version, CGAL offers the Bitstream Descartes by Arno
Eigenwillig [Eig08]. It is the default option for real root solving and accepts a wide range
of inputs representable as absolute bitstreams. Our concept of input is largely based on the
Bitstream Descartes’ traits classes. The Rule of Signs is applied in the Bernstein basis.
• A third option available as an algebraic kernel is the [RS] solver by Fabrice Rouillier. RS is a
commercial-grade solver used for the real root isolation in Maple, and can be accessed as an
external library in CGAL.
It features asymptotically fast algorithms for polynomial multi-point evaluation and the Taylor
shift operation in the Möbius transformations. In contrast to the internal solvers of CGAL, RS
does not follow the generic programming paradigm but is hard-coded for polynomials over
GMP integers. This facilitates an extremely efficient memory management.
As ARCAVOID an MPSolve, RS performs an initial stage root isolation stage at machine precision.
If undecided candidates remain, the precision is increased in fixed steps. If a certain precision is
not sufficient, the algorithm falls back to exact arithmetic.
49
• Finally, Witty not only contributed the PARI/GP adapter for Sage, but also integrated a variant
of Eigenwillig’s Bitstream Descartes [Wit07]. He primarily extends the existing method by the
use of interval arithmetic in the conversion to the Bernstein basis, potentially yielding better
bounds on the approximation quality in practice.
5.3 Results and Interpretation
Now we turn to the actual results of our experiments. We used a 3.0 GHz dual-core Intel Pentium
IV CPU with 2 MB of L2 cache and 1 GB of RAM. The measurements were performed under Debian
Linux. All programs were compiled and run in 64-bit mode.
All numbers given represent the time required for a complete isolation of all real or complex
roots, respectively. We used the timers for the actual user time, as provided by the corresponding
applications. MPSolve does not offer profiling options, so we used the Linux time command. In
particular, startup time is not included but for MPSolve. All runtimes are best-of-one, with a random
choice of the polynomial where applicable. Throughout a dataset, all solvers were run on the same
instances.
For ARCAVOID and MPSolve, results in italics denote instances where the solver was able to complete
the root isolation within machine precision.
For the least common denominator of the solvers, we canonicalized all polynomials into Z[X ]. The
bitsize τ, that is the bit length of the largest coefficient emerging in f , is given in the table of results,
and directly impacts the runtime of a solver that is not bitstreamed. We did not perform the classical
test cases of well-conditioned polynomials with blown-up coefficients, since all solvers but the classic
Descartes employ an more-or-less adaptive floating point precision management.
Throughout all experiments performed, the theoretically optimal complex solver in Sage and
PARI/GP performs poorly due to its miserable precision management. We take this as a sign that there
is a need for algorithms that can be understood easily and implemented reasonably well. Obviously,
the Pan-Schönhage splitting circle algorithm does not belong to this class.
Truncated Exponential Series (Table 5.1)
Our first dataset consists of the truncated Maclaurin expansions
f (X ) =
n
X
Xi
i=0
i!
of exp(X ) up to some degree n. Those polynomials have a characteristic collection of ill-conditioned
roots along a curve. f has exactly one real root if n is odd, and none otherwise.
It, thus, comes to no surprise that the Descartes solvers easily detect the configuration. The high
runtime of the Sage Bitstream Descartes on the lower degrees might be an artifact of the choice of
subdivision points.
MPSolve does a tremendous job in the low precision double with exponent phase, and isolates a
substantial number of roots before falling back to multi-precision arithmetic. ARCAVOID is slower
by a factor of about 10, partly due to the complete fail of the initial machine precision stage due to
overflows.
Gaussian Integer Grid (Table 5.2)
The Gaussian grid is a particular hard case for numerical solvers. It generalizes the well-known
catastrophic polynomial X (X − 1)(X − 2) · · · (X − 20) by Wilkinson to the complex plane. As in the
50
real setting, the roots far away from 0 are extremely ill-conditioned in the monomial basis.
f k (X ) =
k
Y
i=−k
=
k
Y
(X + i + I j)
j=−k
Again, the real solvers show a reasonably good to excellent performance. To some degree this is
expected because the most ill-conditioned roots, dominating the precision requirement, are imaginary.
Amongst the complex solvers, ARCAVOID takes the lead. MPSolve lacked to recognize some root
inclusion discs as isolating in its multiprecision stage for k > 3. Thus, it iterates to the user-defined
limit precision, which we set at about 1000 decimal digits. We strongly feel that this indicates
a fundamental flaw of Bini and Fiorentino’s approach on root neighborhood and inclusion disc
evaluation: a slightly different handling of round-off in some number type implementation can render
the entire perturbation error analysis useless. Instead, the interval arithmetic provides guaranteed
results, without exposing the intricacies of the floating point model to the algorithm designer.
Mignotte polynomials (Table 5.3)
One of the classical benchmark instances for root finders are the polynomials named after Maurice
Mignotte. Mignotte polynomials are of the following sparse structure:
f (X ) = X n − (aX − 1)2
for some large random a ∈ Z. Mignotte polynomials exhibit an extremely small root separation, close
to the theoretical root bound possible for polynomials of the given bitsize of the coefficients, for two
roots near to 1/a. The remaining n − 2 roots are well-separated near the unit circle.
No root finder should encounter particular difficulties in isolating the well-separated outer roots.
With a proper adaptive precision handling, the splitting of the root cluster near 1/a is possible without
too much effort, as well.
While the impact of degree and iteration depth required is recognizable, ARCAVOID’s endgame
strategy pays out for the ill-conditioned roots. The detection of the cluster is accomplished in low
precision and, due to the shift operation, no iterations of the numerical method are required until the
precision required for the splitting of the nearby roots is done. The total cost is dominated by the
verification of the root inclusion disc radii in the final isolation step.
MPSolve features a similar speed-up strategy, but performs the numerical iteration on the full-degree
polynomial. The real solver in Sage profits from a clever choice of subdivision points; the classical
schemes in the (Bitstream) Descartes and RS are far behind.
Product of Mignotte-like Polynomials (Table 5.4)
To see how the algorithms deal with higher cluster multiplicity, we considered polynomials of the form
f (X ) = (X n/2 − 2(aX − 1)2 ) · (X n/2 − 3(aX − 1)2 ),
for random a ∈ Z. As Eigenwillig [Eig08] points out, those polynomials have three distinct roots
close to the theoretical root bound as well as one additional in a smaller neighborhood. Again, the
remaining roots are well-conditioned.
As expected, the results are similar to the aforementioned dataset, with a slightly larger winning
margin for ARCAVOID.
Farahmand-type Polynomials (Table 5.5)
Our third dataset represents the class of well-conditioned polynomials as they arise in many practical
applications. Farahmand et al. [FGM08] give a scheme to create random polynomials with a number
51
of real roots that is asymptotically higher than for a uniformly random choice of coefficients:
1
n
X
n 2 Xi
,
f (X ) =
ai
p
k
i+1
i=0
where the ai are independent standard normal random variables. In our setting, we truncated
the random variables at some precision and scaled the entire polynomial to Z[X ]. All roots are
well-separated.
It is remarkable that MPSolve can compete to the real solvers even in a case where the required
workload is evenly distributed between real and complex roots. The runtimes of ARCAVOID are
reasonable until overflows occur in the initial stage of root approximation (note that a mantissa
precision of 53 bit is sufficient to complete each of the instances). As soon as multi-precision arithmetic
is used, the runtime increases by a factor of about 50. This clearly indicates the lack of a double with
exponent type in the current state of ARCAVOID, rather than a conceptual mistake.
Resultants of Random Bivariate Polynomials (Table 5.6)
A final dataset was chosen with geometric applications in mind. We randomly distributed points on
a two-dimensional integer grid and took them as control points of two Bézier curves with implicit
equations f (X , Y ) = 0 and g(X , Y ) = 0. The resultant polynomial res( f , g, Y ) ∈ Z[X ] (see definition
6.1) vanishes exactly on those X -values where the curves intersect.
In a typical computer aided design application, one typically sees either a very low or very number
of intersections. The random instance is slightly biased towards complex roots. The example shown
in figure 5.1 is somewhat atypical in that it has a fairly small root region (and, thus, can reasonably
be plotted). In almost all other cases, the resultants exhibited a few roots with very large modulus
(|ζ| > 1000), while most stay in the range up to 2.
Again, MPSolve immensely profits from the double with exponent stage. Multi-precision arithmetic
is only required for a few roots far off.
Table 5.1: Truncated Taylor expansion of exp
Instance
Complex solvers
Real solvers
n
τ
Arcavoid
MPSolve
Sage (C)
Sage (R)
RS
BitDesc
Desc
25
50
75
100
125
150
175
200
84
215
364
525
696
873
1057
1246
0.01
0.04
0.51
1.21
3.82
7.10
10.33
14.37
0.00
0.01
0.06
0.15
0.36
0.67
1.04
1.60
0.10
0.53
1.73
3.66
9.50
23.95
40.84
88.50
0.02
0.66
0.97
1.52
0.06
0.06
0.07
0.09
0.00
0.00
0.01
0.01
0.02
0.01
0.06
0.02
0.00
0.01
0.03
0.03
0.04
0.25
0.29
0.15
0.00
0.01
0.01
0.02
0.03
0.06
0.07
0.11
52
30
4
20
2
10
0
0
−10
−2
−20
−4
−30
−25
−4
0
25
50
Truncated exponential series
4
3
−2
0
2
4
Wilkinson grid
1.2
0.9
0.6
0.3
0.0
−0.3
−0.6
−0.9
−1.2
2
1
0
−1
−2
−3
−4
−4 −3 −2 −1
−1 −0.5
0
1
0.5
Product of Mignotte-like polynomials
0 1 2 3 4
Mignotte polynomial
6
4
3
4
2
2
1
0
0
−2
−1
−2
−4
−3
−6
−3 −2 −1 0
1
2
3
4
Farahmand-type polynomial
−4
−5 −4 −3 −2 −1
0
1
Resultant of random bivariate polynomials
Figure 5.1: Benchmark polynomials
53
Table 5.2: Gaussian integer grid
Instance
Complex solvers
Real solvers
n
τ
Arcavoid
MPSolve
Sage (C)
Sage (R)
RS
BitDesc
Desc
25
49
81
121
169
225
289
361
22
65
135
235
369
537
741
983
0.01
0.02
0.03
0.07
1.21
10.02
27.62
43.80
0.00
0.11
2.06
13.49
20.98
38.00
71.76
102.72
0.08
0.19
0.53
1.21
8.18
42.82
164.62
>180
0.06
0.07
2.07
2.82
3.93
6.12
7.42
8.88
0.00
0.00
0.01
0.01
0.03
0.09
0.09
0.18
0.00
0.02
0.05
0.14
0.34
0.82
4.99
10.59
0.00
0.01
0.03
0.11
0.23
0.93
1.73
3.86
Table 5.3: Mignotte polynomials
Instance
Complex solvers
Real solvers
n
τ
Arcavoid
MPSolve
Sage (C)
Sage (R)
RS
BitDesc
Desc
60
60
60
60
7
47
95
196
0.05
0.09
0.14
0.24
0.01
0.03
0.08
0.26
2.80
15.15
31.08
105.82
1.34
1.48
1.70
2.19
0.08
3.31
15.07
58.52
0.29
6.44
17.84
70.81
0.27
5.65
20.22
>180
80
80
80
80
7
47
95
196
0.08
0.13
0.18
0.31
0.01
0.14
0.39
1.27
8.59
42.54
145.90
>180
2.09
2.33
2.62
3.49
0.19
14.89
57.38
>180
0.87
18.75
71.47
>180
0.84
20.89
>180
>180
100
100
100
100
7
47
95
196
0.10
0.22
0.44
0.96
0.01
0.15
0.50
1.53
13.24
86.49
>180
>180
2.58
2.88
3.24
4.39
0.35
44.75
>180
>180
2.04
57.15
>180
>180
2.09
60.97
>180
>180
120
120
120
120
7
47
95
196
0.11
0.28
0.47
1.10
0.03
0.18
0.52
1.62
27.66
>180
>180
>180
2.65
2.99
3.45
4.93
0.66
110.98
>180
>180
4.22
134.11
>180
>180
4.46
>180
>180
>180
140
140
140
140
7
47
95
196
0.14
0.33
0.54
1.15
0.04
0.16
0.49
6.40
73.46
>180
>180
>180
3.12
3.54
4.10
5.88
1.07
>180
>180
>180
8.60
>180
>180
>180
8.76
>180
>180
>180
160
160
160
160
7
47
95
196
0.54
0.71
0.93
1.60
0.05
0.83
2.55
7.26
102.76
>180
>180
>180
3.89
4.55
5.59
9.11
1.64
>180
>180
>180
15.88
>180
>180
>180
16.16
>180
>180
>180
54
Table 5.3: Mignotte polynomials (continued)
Instance
Complex solvers
Real solvers
n
τ
Arcavoid
MPSolve
Sage (C)
Sage (R)
RS
BitDesc
Desc
180
180
180
180
7
47
95
196
1.47
1.90
2.83
5.06
0.05
0.86
2.67
8.20
>180
>180
>180
>180
3.96
4.68
5.92
9.98
2.31
>180
>180
>180
27.42
>180
>180
>180
27.33
>180
>180
>180
200
200
200
200
7
47
95
196
2.28
2.73
3.78
6.56
0.09
0.99
3.06
9.03
>180
>180
>180
>180
4.71
5.59
6.92
11.65
3.19
>180
>180
>180
43.69
>180
>180
>180
44.62
>180
>180
>180
Table 5.4: Product of Mignotte-like polynomials
Instance
Complex solvers
Real solvers
n
τ
Arcavoid
MPSolve
Sage (C)
Sage (R)
RS
BitDesc
Desc
60
60
60
60
15
92
196
399
0.07
0.11
0.24
0.46
0.01
0.04
0.12
0.37
2.65
8.91
81.48
>180
1.35
1.48
1.42
1.51
0.06
0.93
9.99
40.92
0.23
3.34
14.76
51.46
0.20
3.56
15.62
58.78
80
80
80
80
15
82
198
396
0.10
0.22
0.30
0.57
0.01
0.06
0.19
0.53
5.03
27.06
101.62
>180
2.08
2.26
2.17
2.33
0.15
6.39
38.48
155.19
0.58
11.33
51.96
>180
0.54
12.30
59.25
>180
100
100
100
100
16
98
202
402
0.15
0.29
0.46
0.80
0.03
0.24
0.64
1.82
12.79
84.75
>180
>180
2.59
2.88
2.72
2.89
0.31
25.40
119.36
>180
1.62
37.57
157.15
>180
1.51
42.62
>180
>180
120
120
120
120
22
98
195
399
0.17
0.45
0.86
1.91
0.06
0.26
0.75
2.17
32.71
170.14
>180
>180
2.66
2.98
2.78
3.01
0.86
66.59
>180
>180
5.57
95.32
>180
>180
5.77
102.54
>180
>180
140
140
140
140
17
96
199
394
0.21
0.53
1.00
2.24
0.06
0.29
1.06
2.45
66.78
>180
>180
>180
3.15
3.49
3.29
3.51
0.90
143.35
>180
>180
6.49
>180
>180
>180
7.09
>180
>180
>180
160
160
160
160
17
99
198
400
0.74
0.91
1.41
2.78
0.07
0.36
1.06
3.25
90.06
>180
>180
>180
3.92
4.37
4.16
4.57
1.43
>180
>180
>180
10.90
>180
>180
>180
11.34
>180
>180
>180
55
Table 5.4: Product of Mignotte-like polynomials (continued)
Instance
Complex solvers
Real solvers
n
τ
Arcavoid
MPSolve
Sage (C)
Sage (R)
RS
BitDesc
Desc
180
180
180
180
17
96
192
397
1.56
1.90
2.66
4.48
0.09
0.39
1.09
3.00
137.23
>180
>180
>180
3.94
4.51
4.22
4.68
1.95
>180
>180
>180
21.96
>180
>180
>180
21.76
>180
>180
>180
200
200
200
200
19
97
197
401
2.55
2.74
3.49
5.47
0.10
1.24
3.73
10.48
>180
>180
>180
>180
4.73
5.32
5.05
5.58
2.71
>180
>180
>180
36.27
>180
>180
>180
35.67
>180
>180
>180
Table 5.5: Farahmand-type polynomials
Instance
Complex solvers
Real solvers
n
τ
Arcavoid
MPSolve
Sage (C)
Sage (R)
RS
BitDesc
Desc
60
60
40
81
0.04
0.04
0.01
0.00
1.38
1.58
1.78
1.88
0.02
0.01
0.09
0.08
0.03
0.03
80
80
50
94
0.05
0.04
0.00
0.00
1.88
1.86
2.06
2.07
0.03
0.03
0.12
0.12
0.04
0.03
100
100
60
100
0.05
0.06
0.01
0.01
3.35
2.99
2.59
2.58
0.04
0.08
0.15
0.25
0.08
0.09
120
120
69
112
0.07
2.08
0.01
0.01
7.89
6.64
2.60
2.62
0.07
0.11
0.30
0.30
0.09
0.18
140
140
80
120
2.68
0.08
0.02
0.02
13.80
11.43
3.10
3.14
0.06
0.14
0.40
0.46
0.13
0.24
160
160
90
129
3.60
3.78
0.02
0.02
18.04
17.47
3.88
3.90
0.09
0.13
0.52
0.56
0.20
0.20
180
180
100
142
4.72
4.97
0.02
0.03
39.73
27.16
4.03
3.98
0.16
0.16
0.95
0.94
0.36
0.29
200
200
110
153
5.61
10.21
0.04
0.06
41.05
66.27
4.79
6.59
0.21
0.35
1.18
1.91
0.42
0.77
56
Table 5.6: Resultants
Instance
Complex solvers
Real solvers
n
τ
Arcavoid
MPSolve
Sage (C)
Sage (R)
RS
BitDesc
Desc
60
60
60
60
37
78
139
288
0.05
0.04
0.04
0.03
0.00
0.00
0.01
0.01
2.59
2.22
1.99
2.10
1.88
1.86
1.84
0.15
0.01
0.02
0.03
0.02
0.09
0.12
0.09
0.08
0.03
0.06
0.03
0.04
80
80
80
80
58
102
186
358
0.06
0.05
0.06
0.07
0.01
0.01
0.01
0.01
3.87
3.53
3.24
3.96
2.79
2.79
2.82
2.85
0.05
0.02
0.04
0.08
0.21
0.22
0.21
0.23
0.10
0.08
0.07
0.10
100
100
100
100
65
131
239
450
0.08
0.93
0.70
0.11
0.02
0.11
0.02
0.02
6.89
11.39
10.91
10.65
3.45
3.48
3.39
3.59
0.03
0.05
0.09
0.11
0.27
0.36
0.40
0.36
0.07
0.14
0.23
0.16
120
120
120
120
76
167
285
518
2.73
4.39
3.79
0.22
0.19
0.02
0.03
0.04
18.62
18.55
14.11
16.82
3.53
3.64
3.64
3.57
0.08
0.06
0.08
0.12
0.51
0.57
0.43
0.74
0.14
0.20
0.20
0.30
140
138
140
140
77
105
186
345
1.32
7.09
7.23
5.59
0.03
0.03
0.20
0.04
23.37
30.42
26.40
23.34
4.24
4.35
4.28
4.32
0.09
0.14
0.14
0.16
0.69
0.73
0.87
0.86
0.26
0.37
0.37
0.38
160
160
160
160
80
88
144
251
7.27
9.91
7.23
7.34
0.04
0.04
0.04
0.04
37.13
42.61
42.53
38.02
0.30
5.46
5.43
5.30
0.10
0.19
0.14
0.19
1.31
1.41
1.64
1.25
0.39
0.57
0.56
0.53
180
180
180
180
122
241
417
771
13.03
13.50
5.84
10.13
0.35
0.65
0.43
0.38
75.45
72.47
112.82
47.92
5.48
5.44
5.31
4.53
0.16
0.16
0.35
0.28
1.17
1.52
1.63
1.16
0.45
0.53
0.40
0.77
200
200
200
200
120
250
465
867
8.15
8.77
9.32
10.55
0.26
0.26
0.65
0.59
50.30
77.08
55.89
>180
4.67
4.66
4.72
4.73
0.09
0.06
0.20
0.11
1.31
0.96
1.21
1.22
0.36
0.28
0.42
0.59
(For ARCAVOID and MPSolve, results in italics denote instances where the solver was able to
complete the root isolation within machine precision.)
57
6 Applications
Complex root finding is an interesting problem on its own, with a wealth of applications in applied
natural sciences. However the fact that a polynomial factors completely over the complex numbers
helps in problems restricted to real solutions as well. We will discuss the showcase of solving bivariate
algebraic equation systems over the reals and, subsequently, the topological correct analysis of real
algebraic plane curves. ARCAVOID turns out to give a significant improvement over traditional
approaches.
6.1 Solving of Bivariate Polynomial Equation Systems
In our first application, we are concerned with systems of equations
X
f (X , Y ) =
f i j X i Y j = 0,
i+ j≤m
g(X , Y ) =
X
g i j X i Y j = 0,
i+ j≤n
where f and g are bivariate polynomials of total degree m and n in Z[X , Y ] with integer coefficients.
We also write
f (X , Y ) =
mX
X
(X )
fi
Xi =
i=0
(X )
where the f i
(X )
, gi
mY
X
(Y )
fi
Y i,
i=0
(X )
∈ Z[X ] and f i
(X )
, gi
g(X , Y ) =
mX
X
(X )
gi X i =
i=0
mY
X
(Y )
gi Y i ,
i=0
∈ Z[Y ] are polynomials in X and Y , respectively.
We assume that gcd( f , g) = 1, that is f and g have no common non-trivial factors. Thus, the
common vanishing set VC := {(x, y) ∈ C2 : f (x, y) = g(x, y) = 0} of f and g, by Bézout’s theorem,
is zero-dimensional and consists of at most m · n distinct points.
In the bivariate solving problem, in close resemblance to the univariate (complex) root isolation,
we seek to compute isolating boxes Bk ⊂ R2 such that the union of all Bk comprises all real solutions
¦
©
VR := VC ∩ R2 = (x, y) ∈ R2 : f (x, y) = g(x, y) = 0 .
Additionally, we demand that each Bk is isolating for exactly one solution.
In geometric terms, this means that we want to find the intersection points of two real algebraic
plane curves C f and C g , implicitly given as the vanishing loci of f and g:
¦
©
C f := (x, y) ∈ R2 : f (x, y) = 0 ,
¦
©
C g := (x, y) ∈ R2 : g(x, y) = 0 .
A simultaneous solution of the system amounts to a point on both curves.
59
6.1.1 BISOLVE
We integrated our numerical solver in a recent algorithm by Berberich, Emeliyanenko and Sagraloff
[BES10], called BISOLVE. As ARCAVOID, it is implemented as a prototypical package of CGAL. A
complete description of BISOLVE is beyond the scope of this thesis. For details, we refer to the original
research article [BES10] and the textbooks by Basu, Pollack and Roy [BPR10] and von zur Gathen
and Gerhard [vzGG03] for further explanations on the projection method.
Projection Phase
The algorithm runs in three stages. Firstly, the complex solution set VC is projected onto the X - and
Y -axes, to yield
VC(X ) := x ∈ C : there is y ∈ C with f (x, y) = g(x, y) = 0 and
VC(Y ) := y ∈ C : there is x ∈ C with f (x, y) = g(x, y) = 0 .
This is accomplished by computing the
Definition 6.1 (Resultant). Let f , g ∈ Z[X , Y ] be bivariate polynomials with Y -degrees mY and nY ,
respectively. The resultant res( f , g, Y ) of f and g with respect to the variable Y is the determinant of
the (mY + nY ) × (mY + nY ) Sylvester matrix
(Y )
(Y )
f m(YY ) f mY −1 · · · f0
(Y )
···
· · · f0
f m(YY )
..
..
.
.
(Y )
(Y )
f mY
· · · · · · f0
(Y )
(Y )
.
g
···
g0
S (Y ) ( f , g) :=
nY
(Y )
(Y )
g nY
· · · g0
.
.
..
..
..
..
.
.
(Y
)
g n(YY ) · · · g0
Theorem 6.2. For f , g ∈ Z[X , Y ], R(Y ) := res( f , g, Y ) is a polynomial in Z[X ]. Its roots are exactly the
(Y )
projections VC as defined above.
Moreover, the multiplicity mult(R(Y ) , α) of a root α of R(Y ) is the sum of the intersection multiplicities
Int( f , g, (α, β)) of all solutions (α, β) of the system f = g = 0 with X -coordinate α.
Herein, the intersection multiplicity Int( f , g, (α, β)) of a solution p = (α, β) of the polynomial system
f = g = 0 is defined as the dimension of the localization of C[X , Y ]/( f , g) at (α, β), considered as a
C-vector space.
Q i
(Y )
We proceed by computing a squarefree factorization R(Y ) (X ) =
using Yun’s
i ri (X ) of R
algorithm (see [vzGG03], chapter 14), which essentially performs greatest common divisor operations
on R(Y ) and its derivatives in an iterative manner. The outputs ri are pairwise coprime, and, for some
k ∈ {1, . . . , mY + nY = deg R(Y ) }, it holds that ri = 1 for all i ≥ k. Afterwards, we independently apply
a real root isolation method on the (squarefree) factors ri to determine isolating intervals I(αi, j ) ⊂ R
for the roots αi, j of ri . From the factorization, we conclude that αi, j is a root of multiplicity i of R(Y ) .
(X )
(Y )
Obviously, the solutions VC of the system f = g = 0 are contained in the cross product VC × VC .
(X )
(Y )
(X )
(X )
If we restrict our view to the real solutions, then VR ⊂ VR × VR as well, where VR := VC ∩ R
60
(Y )
(Y )
and VR := VC ∩ R denote the real roots of the resultants in Y - and X -direction.
Two curves f and g intersect in five
points. The shaded regions show the projections of isolating intervals for the resultants in X - and Y -direction. The darker
boxes are the candidate boxes for simultaneous roots of f and f that do not contribute to the global solution. We will
verify that only the red boxes actually contain solutions of the equation system.
Figure 6.1: The projection phase in BISOLVE
Separation Phase
The cross product of the isolating intervals for the real roots of R(Y ) and R(X ) provides us with a set of
boxes containing VR . Yet, we have to certify which of the boxes actually contain a real solution of the
equation system f = g = 0.
We prepare for this validation in what we call the separation phase. Using a generalized version of
the K-Taylor test (see definition 3.22), we refine the isolating intervals I(αi, j ) for the roots of R(Y )
until the circumcircles of the enlarged intervals of diameter 8 diam I(αi, j ) enclose no complex root of
R(Y ) but αi, j .
Then, we have the following result:
Lemma 6.3. The complex disc D(αi, j ) := D mi, j , diam I(αi, j ) , where mi, j denotes the center of the
interval I(αi, j ), isolates αi, j from all other complex roots of R(Y ) , and, for any z on the boundary ∂ D(αi, j )
of D(αi, j ), it holds that
R(Y ) (z) > LB(α ) := 2i−deg R(Y ) R(Y ) m − diam I(α ) .
i, j
i, j
i, j
We repeat the procedure for each real root α of R(Y ) and β of R(X ) . In turn, we have refined isolating
intervals I(α) and I(β), with the corresponding isolating discs D(α), D(β), and lower bounds LB(α)
and LB(β) on the absolute values of R(Y ) and R(X ) on the boundaries of D(α) and D(β), respectively.
Validation Phase
Finally, we can concentrate on the verification whether a candidate box actually comprises a real root.
Theorem 6.4. Let α and β be arbitrary real roots of R(Y ) and R(X ) , respectively. Then,
1. the polydisc ∆(α, β) := D(α) × D(β) ⊂ C2 contains at most one (complex) solution of f = g = 0.
If ∆(α, β) contains a solution, then this solution is real valued and equals (α, β).
2. For an arbitrary point (zX , zY ) ∈ C2 on the boundary of ∆(α, β), it holds that
R(Y ) (z ) > LB(α) if z ∈ ∂ D(α), and R(X ) (z ) > LB(β) if z ∈ ∂ D(β).
X
X
Y
Y
Proof. The first claim follows from the construction of D(α) and D(β). Assume that ∆(α, β) contains
two distinct solutions of f = g = 0. Then, they would differ in at least one variable. But since both
discs are isolating for a root of the corresponding resultant polynomial, this is impossible.
61
If, however, ∆(α, β) contains a simultaneous solution, it must be real since, otherwise, ∆(α, β)
would also contain the complex conjugate solution. This is because with f and g, the resultants R(Y )
and R(X ) have real valued coefficients as well.
The second statement follows immediately from the definition of ∆(α, β), LB(α) and LB(β) and
lemma 6.3.
Thus, it is sufficient to test the existence of any simultaneous solution in the candidate boxes
B(α, β) := I(α) × I(β). Again, we use a combination of inclusion and exclusion predicates.
The latter is simply evaluating f and g on the boxes, using interval arithmetic: If either f (B(α, β))
or g(B(α, β)) does not contain zero, then (α, β) cannot be a global solution. Vice versa, when we
shrink the box size around in further root refinement steps and (α, β) is not a solution, then either
0∈
/ f (B(α, β)) or 0 ∈
/ g(B(α, β)) will eventually hold.
Finally, we give an adaptive inclusion predicate to ensure that a candidate (α, β) solves f = g = 0.
We first give a representation of the resultant polynomial R(Y ) in terms of f and g, resembling Bézout’s
identity of the greatest common divisor:
R(Y ) (X ) = u(Y ) (X , Y ) · f (X , Y ) + v (Y ) (X , Y ) · g(X , Y ),
where u(Y ) and v (Y ) ∈ Z[X , Y ]. The crucial observation is that u(Y ) and v (Y ) can be expressed as
determinants of matrices U (Y ) and V (Y ) similar to the Sylvester matrix. In particular, the special
structure of those matrices allows to apply Hadamard’s bound for the determinant of a matrix without
actually computing the polynomials u(Y ) and v (Y ) explicitly. Instead, we compute the upper bounds
for the small number of recurring entries of U (Y ) and V (Y ) using interval arithmetic on a rectangular
box in C2 containing ∆(α, β). Then, Hadamard’s inequality yields upper bounds U B(α, β, u(Y ) ) for
|u(Y ) | on ∆(α, β). In the same manner, we compute bounds for the absolute value of v (Y ) and the
corresponding polynomials u(X ) and v (X ) in the decomposition of R(X ) .
Theorem 6.5. If there exists an (zX , zY ) ∈ ∆(α, β) with
U B(α, β, u(Y ) ) · | f (zX , zY )| + U B(α, β, v (Y ) ) · |g(zX , zY )| < LB(α) and
U B(α, β, u(X ) ) · | f (zX , zY )| + U B(α, β, v (X ) ) · |g(zX , zY )| < LB(β),
then ∆(α, β) contains a solution of f = g = 0 and, thus, f (α, β) = g(α, β) = 0.
Berberich et al. point out that
the upper bounds U B(α, β, u(Y ) ), U B(α, β, v (Y ) ), U B(α, β, u(X ) ) and U B(α, β, v (Y ) ) [sic!]
are far from being optimal. Nevertheless, our inclusion predicate is still efficient since
we can approximate the potential solution (α, β) with quadratic convergence due to QIR
[Quadratic interval refinement].
GPU Resultant Computation
A unique feature of BISOLVE is the computation of resultants on graphics hardware. While it does not
dominate the asymptotic complexity, it is a crucial step where algorithms have to actually “pay the
price” that the worst-case bounds imply.
Pavel Emeliyanenko [Eme10a; Eme10b] integrated a modular approach for resultant computation
on bivariate polynomials into [CGAL]. It is hardly possible to give the well-deserved credit for the
implementation in a few words. Emeliyanenko exploits the massively parallel Fermi architecture
by NVIDIA, the successor of CUDA, to compute the resultants in a small prime modular field. The
result over Z[X , Y ] is then recovered through polynomial interpolation and lifting, using the Chinese
remainder theorem. Benchmarks show that the computations on the graphics processing unit
62
outperform the asymptotically fast CPU-based algorithms in [Maple] by a factor in the high two-digit
or low three-digit range.
Filters
The implementation by Berberich et al. features several additional filters to avoid superfluous predicate
evaluations on the candidate boxes.
One technique is called the Bitstream Descartes filter, after Eigenwillig’s variant of the Descartes
method for (absolute) bitstream polynomials in Bernstein basis [Eig08] as sketched in section 3.3.2.
Instead of considering the interval-based validation for candidate boxes, we directly use a real root
isolator on the fiber polynomials f (α, Y ) and g(α, Y ) in R[Y ].
Note that the coefficients of those polynomials are applicable for the bitstream model: α can be
approximated as necessary, using quadratic interval refinement on the corresponding isolating interval
(Y )
I(α). Conservative interval arithmetic yields bounds on the approximation of the coefficients f i (α)
(Y )
of f (α, Y ) and g i (α) of g(α, Y ). We improve the quality of I(α) as necessary for the bitstream.
We cannot ensure that the Bitstream Descartes method terminates on the fiber, since f (α, Y ) or
g(α, Y ) may not be squarefree. Instead, we simultaneously apply the solver on both fiber polynomials,
and discard active intervals that are not common to both instances. If, then, the Y -interval of a
candidate box B(α, β) does not overlap with at least one of the active intervals in the Bitstream
solvers, the box can be discarded as well. Finally, we terminate the filter if all active intervals are
entirely contained in the Y -intervals of a candidate box.
Another approach is of combinatorial nature, and, thus, very cheap to evaluate. From the squarefree
factorization of the resultant polynomial R(Y ) , we already know the multiplicity mult(R(Y ) , α) of a
root α of R(Y ) . By theorem 6.2, mult(R(Y ) , α) equals the sum of the intersection multiplicities of all
solutions of the polynomial equation system over the fiber X = α. Obviously, mult(R(Y ) , α) gives an
upper bound on the number of solutions with X -coordinate α, since each solution contributes at least
once to the multiplicity of α as a root of R(Y ) . Thus, if we encounter exactly mult(R(Y ) , α) certified
solutions, we discard the remaining candidates on the fiber of α. Moreover, if mult(R(Y ) , α) is odd and
only one candidate is left by the interval-based exclusion predicate, it already is a real solution. This
is because R(Y ) has real valued coefficients and, thus, has complex conjugate pairs of imaginary roots.
If the curves are in generic position, that is no two intersections share the same X -coordinate, and
the intersection multiplicity of each simultaneous root of the curves is odd, those two combinatorial
filters already suffice to certify all root boxes. In this situation, it is not necessary to evaluate the
expensive inclusion predicate based on Hadamard’s bound.
The aforementioned filters are not necessarily sufficient to identify the configuration of simultaneous
solutions of the equation system. In particular, they will fail if there exist covertical solutions along
the fiber, or if the curves C f and C g intersect tangentially. In this case, we try to apply the filters in the
horizontal direction as well before falling back to the default inclusion predicate.
6.2 ARCAVOID in BISOLVE
Naturally, by theorem 3.27, we can replace the Bitstream Descartes solver in the corresponding filter
of BISOLVE by ARCAVOID. As we have seen in the preceding chapter on benchmarks, we outperform
the Bitstream Descartes in several complicated instances. Yet, for instances that are reasonable to
handle within a bivariate solver, the Bitstream Descartes is extremely efficient. So we cannot expect a
significant benefit?
Yes, we can, since ARCAVOID additionally delivers global information about the complex roots. The
Bitstream Descartes filter only can be used to reject candidate boxes, unless the combinatorial filter
comes to help.
63
In a complex solver, however, we already know the total number of roots by the degrees of the fiber
polynomials. During the root isolation, we keep track of the overlaps of complex root inclusion discs
of f and g over α. If we find that there is only one overlap, and this overlap is inside a candidate box,
we can conclude that this must indeed be the unique root responsible for the root of the resultant.
Note that this decision is correct regardless of the multiplicity of the root, since the candidate boxes
are known to each contain exactly one root of f = g = 0; thus, a solution inside a box must be unique.
6.3 BISOLVE-based Curve Analysis
We already mentioned the geometric meaning of the solutions of bivariate equation systems as
intersections of plane algebraic curves. In the special case g = f Y , that is the derivative of f with
respect to Y , the solutions of f = f Y = 0 are a superset of the singular (real) points of C = VR ( f ),
which comprise all points (x, y) ∈ R2 such that
f (x, y) = f X (x, y) = f Y (x, y) = 0.
Based on this observation, we can extend BISOLVE to perform algebraic curve analysis. Here, the
input consists of but one planar algebraic curve
¦
©
C = VR ( f ) = (x, y) ∈ R2 : f (x, y) = 0 ,
where, again, f ∈ Z[X , Y ]. The task is to give a planar graph GC with vertices V on C that is isotopic
to the curve, that is there exists a continuous mapping Φ : [0, 1] × C → R2 such that
Φ(0, C ) = C ,
Φ(1, C ) = GC
and
Φ(t 0 , ·) : C → Φ(t 0 , C ) constitutes a homeomorphism for each t 0 ∈ [0, 1].
The algorithm presented here continues and refines the work on BISOLVE, due to Michael Sagraloff,
following a classical cylindrical algebraic decomposition approach. We provide an implementation in
joint work with Eric Berberich [BKS1X].
Projection Phase
First and foremost, we have to determine the X -critical points (α, β) ∈ C where C has vertical tangents
or is singular. This exactly amounts to find the simultaneous roots of the system
f (α, β) = f Y (α, β) = 0,
which we accomplish using BISOLVE on f and its derivative.
In between of two consecutive X -critical values
α and α0 , the implicit function theorem ensures
0
that C is delineable over J = (α, α ), that is C J×R decomposes into a certain number mJ of disjoint
function graphs or arcs.
Lifting Phase
In the lifting phase, we determine the vertex set V of GC . It consists of the union of the points
on C above the X -critical values α and some non-critical values ξ in between. The corresponding
Y -coordinates are given as the roots of the fiber polynomials f (α, Y ) and f (ξ, Y ).
From theorem 6.2 in the preceding section we know that the fiber polynomials f (ξ, Y ) over a
non-critical value ξ ∈ J are squarefree, since the resultant res( f , f Y , Y ) has no roots in J. Thus, we
can easily lift the curve over the non-critical fibers, that is compute the points q j = (ξ, yξ, j ) ∈ C for
j = 1, . . . , mξ for arbitrary rational values ξ ∈ J, where mξ denotes the number of arcs of C over
64
The figure on the left shows a curve C with two X -extremal points and one singular point (red dots).
In the projection phase, these points are projected onto the X -axis (red crosses) and rational points
separating the X -critical values are inserted (blue crosses). In the lifting phase, the fibers at the
critical values (red crosses) and at the rational points in between (blue crosses) are computed. In the
connection phase, each pair of lifted points connected by an arc of C is determined and a corresponding
line segment is inserted. The right figure shows the final graph that is isotopic to C .
(Courtesy: Michael Sagraloff)
Figure 6.2: Curve analysis using BISOLVE: projection and lifting
X = ξ.
The lifting phase is more involved for the fibers over an X -critical value α because f (α, Y ) has
irrational coefficients and, in particular, multiple roots. We proceed as follows: We first use BISOLVE to
determine all solutions pi = (α, βi ) for i = 1, . . . , l, of f = f Y = 0 with X -coordinate α. Then, for each
of those points, we compute
«
¨
∂kf
(α, βi ) 6= 0 ≥ 2
ki := min k : f Y k (α, βi ) =
∂Yk
by iteratively calling BISOLVE for f Y = f Y 2 = 0, f Y 2 = f Y 3 = 0 and so on. We then sort the solutions
along the fiber x = α, to eventually obtain disjoint intervals I1 , . . . , I l with corresponding multiplicities
k1 , . . . , kl such that β j is a k j -fold root in I j of f (α, y). We further refine until we can guarantee that
f Y k j (α, Y ) does not vanish at I j . Due to the mean value theorem, this implies that I j cannot contain
any root but β j of f (α, Y ).
It remains to compute the ordinary roots of f (α,
S Y ). We apply the Bitstream Descartes solver
and restrict our attention to the complement R \ j I j of the union of the I j , as any root inside
must actually be the β j . All remaining roots have multiplicity one, so the Descartes method finally
terminates. This concludes the lifting phase, and leaves us with the vertex set V of GC .
Connection Phase
Finally, we combine the information obtained over critical and intermediate fibers to delineate the
curve C . Let us consider a fixed X -critical value α, and let A j for j = 1, . . . , mJ be the j-th arc of C
above J = (α, α0 ) with respect to vertical ordering.
To its left, A j is either connected to (α, ±∞) in the case of a vertical asymptote or to one of the
critical points pi . In the latter case, we have to determine the point to which an arc A j is connected.
• In the generic case there exists exactly one real x-critical point pi0 above α. Then, we connect
all arcs below pi0 from bottom up: A1 , . . . , Ai0 −1 must be adjacent to p1 , . . . , pi0 −1 , respectively,
since each non-critical point is passed by exactly one arc. By the same argument, we connect
pmα , pmα −1 , . . . , pi0 +1 to AmI , . . . , AmI −mα +i0 +1 from the top.
The remaining arcs Ai0 , . . . , AmI −mα +i0 in between are all connected to the X -critical point pi0 .
• In the non-generic case, we have to determine the situation around several non-critical points;
this case is not covered by mere combinatorial arguments. Instead, we determine rational
65
The left figure shows the generic case when there exists only one X -critical point (p3 ) above α. The
bottom-up method connects A1 to p1 and A2 to p2 ; the remaining arcs have to pass p3 .
In the second figure, the fiber over α contains two critical points p2 and p3 . The red horizontal
line segments show the arbitrary choice of the subdivision values t i . The initial isolating interval
I(α) = (a, b) for α is not sufficient to determine the connections for all arcs since A1 , A2 , A3 intersect
the segments I × {t i }.
On the right, the refined isolating interval I 0 (α) induces boxes I 0 (α) × (t i , t i+1 ) small enough that
no arc crosses the horizontal boundaries. By examination of the Y -coordinates of the intersections
between the arcs and the fiber over the right-hand boundary of I 0 (α) (red crosses), we can match arcs
and critical points.
(Courtesy: Michael Sagraloff)
Figure 6.3: Curve analysis using BISOLVE: arc connection
values in t 1 < yα,1 < t 2 < · · · < yα,mα < t mα +1 in between of the isolating intervals for the real
roots of the fiber polynomial f (α, Y ). Thus, the points p̃i := (α, t i ) separate the pi s from each
other.
Now, for an isolating interval I of α, the horizontal line segments I ×{t i } subdivide the bounding
region I × R for the fiber into distinct open boxes I × (t i , t i+1 ). If an arc A j does not cross either
of the line segments I × {t i } or I × {t i+1 } we know that A j must be connected to the unique
point pi of C in between of p̃i and p̃i+1 since it cannot leave the corresponding open rectangle.
It remains to refine the isolating interval I = (a, b) of α until, eventually, none of the arcs
crosses any segment I × {t i }. This can be verified using interval arithmetic on f : as soon as we
can guarantee 0 ∈
/ f (I × {t i }), we know that no arc passes the i-th segment. Then, the roots of
f (b, Y ) determine the buckets each arc belongs to (see figure 6.3).
6.3.1 ARCAVOID in Curve Analysis
In addition to the Bitstream Descartes lifting for the X -critical fibers explained above, we integrated
our numerical complex solver ARCAVOID on the fiber polynomials. It acts as an additional filter which,
if it succeeds, avoids the costly calls of BISOLVE for the iterated derivatives of f .
We reuse the information about the complex roots along the fiber in an additional filter step, using
a theorem due to Bernard Teissier [Tei73; GP00]:
Lemma 6.6 (Teissier). For an X -critical point p = (α, β) of C = V ( f ), it holds that
mult( f (α, Y ), β) = Int( f , f Y , p) − Int( f X , f Y , p) + 1,
where Int( f X , f Y , p) is the intersection multiplicity of the curves V ( f X ) and V ( f Y ) at p.
66
If deg f (α, Y ) < degY f (that is C has a vertical asymptote at α) or gcd( f X , f Y ) 6= 1 (that is f X and f Y
share a common component), we apply the aforementioned lifting. Otherwise, we have the following
result:
Corollary 6.7. Let deg f (α, Y ) = degY f an gcd( f X , f Y ) = 1. Let R := res( f , f Y , Y ) and Q :=
res( f X , f Y , Y ) denote the resultants of f or f X and f Y with respect to Y. Then,
mα :=# distinct complex roots of f (α, Y ) = deg f − deg gcd( f (α, Y ), f Y (α, Y ))
≤ m∗α := deg f − mult(R, α) + mult(Q, α).
Proof. By Teissier’s lemma,
X
mα =
(mult( f (α, Y ), β) − 1)
β∈C: f (α,β)=0
= deg f −
X
Int( f , f Y , (α, β)) − Int( f X , f Y , (α, β))
β∈C: f (α,β) is X -critical
Since f has no vertical asymptote at α, mult(R, α) equals the sum of intersection multiplicities of f
and f Y in the corresponding fiber:
X
= deg f − mult(R, α) +
Int( f X , f Y , (α, β))
β∈C: f (α,β) is X -critical
≤ deg f − mult(R, α) +
X
Int( f X , f Y , (α, β))
β∈C
= deg f − mult(R, α) + mult(Q, α).
The last equality is analogous to the one for R.
Note that we already know mult(R, α) from the squarefree factorization of R in BISOLVE. mult(Q, α),
in turn, can be determined by another squarefree factorization of Q and checking whether α is a root
of one of the factors.
If the curve is in generic position, the inequality in Teissier’s lemma becomes an equality because,
then, each intersection point of f X and f Y above α is singular on C as well. Thus, one can expect to
usually find exactly m∗α complex solutions of f (α, Y ) = 0.
We can thus apply ARCAVOID on the fiber polynomial f (α, Y ) with increasing precision. Throughout
the algorithm, for the number of connected components of (complex) inclusion discs m, it must hold
m ≤ mα ≤ m∗α at any time. If, at some point, m = m∗α , we have a certificate that ARCAVOID isolated
all complex roots of the fiber polynomial. In particular, we can deduce isolating intervals for the real
roots of f (α, Y ).
Otherwise, m = mα eventually, but we do not know in advance whether mα < m∗α . Thus, we
decide to increase the precision until the number of iterations performed in ARCAVOID hits a bound
heuristically based on the degree of f . In this case, we assume the non-generic position of f and
apply the deterministic lifting using BISOLVE and the Bitstream Descartes solver as given above.
As a final remark before the experiments, the filter based on Teissier’s lemma works in the huge
majority of situations. Assuming that the Aberth-Ehrlich iteration converges, then the filter applies if
we perform enough refinement steps in the solver and
1. C has no vertical tangent at α,
2. f X and f Y do not share a common component and
3. each intersection point of f X and f Y above α is a singular point of C .
67
If shearing of the curve is allowed (that is the mapping y 7→ y and x 7→ x + s y for some s ∈ Q), then
at most O(n4 ) different shearing factors lead to non-generic positions. Thus, if we repeatedly both try
another shearing and increase the maximum precision and number of iterations in the numerical part
of ARCAVOID, the filter will eventually succeed for all curves where f X and f Y do not share a common
component.
6.4 Results and Interpretation
Now we turn to the actual results of our experiments. The measurements were performed on a 2.8
GHz eight-core Intel Xeon W3530 processor with 8 MB of L2 cache, running Linux. For the GPU parts
of the algorithm, we used the NVIDIA GeForce GTX480 Fermi Core graphics processor. As for our
stand-alone tests, we measured user time in seconds by the profiling tools provided by CGAL.
Bisolve
We compared the combinations of BISOLVE with and without ARCAVOID’s complex numerical root
finding to the default implementation of a bivariate solver in CGAL. The latter, due to Michael Kerber
[Ker06], relies on the extensive computation of Sturm-Habicht (or signed subresultant) sequences
for non-generic inputs. Currently, the interface in CGAL does not yet provide a stable way to transfer
those computations to the GPU as is done for the resultants. Thus, the figures between the BISOLVE
and CGAL implementations are to be taken with a pinch of salt.
We ran both the plain BISOLVE and the attached curve analysis on two kinds of instances. In cases
where two curves f and g are given, we apply BISOLVE in the straightforward way to compute the
real solution set of f = g = 0. The curve analysis, in this case, is performed on f and g separately;
in particular, the BISOLVE instances are run on f and f Y or g and g Y , respectively. For a single curve
given, we apply BISOLVE on f and f Y .
We use two data sets for our experiments. The first, random set consists of pairs of curves with
randomly chosen coefficients. Since, in contrast to the numerical root finding, BISOLVE integrally relies
on symbolic operations largely affected by the bitlength of the input’s coefficients, we additionally
multiplied each curve by a power of two 2k for k ∈ {128, 512, 2048} and increased the constant
coefficient by one. This does affect the vanishing set of the equation system by just a minimal
perturbation.
The second set of examples is specific in that it contains particularly challenging inputs for different
solvers: Covertical solutions (cov_sol_20, tryme), many candidate boxes to decide (spiral29_24),
clustered solutions (L6_circles) or vertical components (hard_one). For details, see the appendix of
[BES10]; some of the curves are taken from Labs’ challenges for real algebraic plane curve visualization
[Lab10].
ARCAVOID rarely gives a significant gain for the random polynomials in BISOLVE (table 6.1); here,
the predominant part is the root isolation on the resultant polynomial and the subsequent refinement
of bitstream approximations of the fiber polynomials. The additional filter shows its strength when
it comes to slightly degenerate configurations, especially many low-degree singularities (curve24,
ten_circles).
In the curve analysis, however, Teissier’s lemma pays off tremendously. In the generic case, the
curve analysis is basically for free once BISOLVE is completed. The filter does not incur noticeably
overhead even if it is not successful for the curve to be analyzed, yields a speed-up by a factor of about
3 to 8 in the generic case, and is able to cope with a considerable number of intricacies of curves.
68
Table 6.1: Benchmarks: BISOLVE
with GPU resultant
Instance
ARCA BISOLVE
without GPU resultant
Y -deg
#sols
CGAL
ARCA BISOLVE
CGAL
random
—shift 128
—shift 512
—shift 2048
6,6
19
19
19
19
0.23
0.30
0.53
2.37
0.25
0.28
0.49
2.07
0.76
0.98
1.79
6.77
0.31
0.45
1.01
5.42
0.34
0.43
0.95
5.10
0.85
1.10
2.15
8.48
random
—shift 128
—shift 512
—shift 2048
9,9
42
42
42
42
0.93
1.18
2.23
9.67
1.07
1.09
1.68
6.37
3.05
4.00
7.19
27.91
1.25
1.93
5.13
30.13
1.41
1.80
4.57
26.78
3.62
4.75
11.23
55.02
random
—shift 128
—shift 512
—shift 2048
12,12
32
32
32
32
1.18
1.71
4.82
40.97
1.61
1.76
4.72
39.50
6.24
6.10
12.63
>60
1.96
3.68
13.30
>60
2.39
3.69
13.15
>60
7.82
11.07
35.76
>60
13_sings_9
L4_circles
L6_circles
SA_2_4_eps
challenge_12
cov_sol_20
curve24
curve_issac
cusps_and_flexes
deg16_7_curves
dfold_10_6
grid_deg_10
hard_one
huge_cusp
spiral29_24
swinnerston_dyer
ten_circles
tryme
9
16
6
17
30
20
24
15
9
16,7
18
10
27,6
8
29,24
40
20
34,24
35
17
18
6
99
8
28
18
20
23
21
20
46
24
51
63
45
20
1.89
1.04
4.17
0.66
12.81
10.26
13.10
1.42
1.26
1.61
2.27
1.89
7.10
23.48
29.54
7.96
2.02
32.14
3.08
2.31
6.68
0.56
13.29
13.27
21.31
4.11
1.76
2.98
6.29
2.06
10.37
25.43
46.03
28.69
9.96
34.54
9.68
35.84
>300
260.84
>300
>300
170.06
11.66
107.31
46.59
119.98
9.23
>300
131.24
131.54
>300
84.98
>300
2.96
2.40
25.51
7.21
30.06
27.36
41.40
2.77
2.27
2.34
27.71
4.52
8.63
38.03
80.22
38.71
5.46
109.49
4.09
3.68
27.76
7.08
30.63
30.36
49.53
5.53
2.78
3.73
31.53
4.68
11.89
39.86
96.40
59.55
13.38
111.73
10.86
32.33
>300
>300
>300
>300
>300
13.56
108.54
66.38
>300
12.46
>300
148.20
257.13
>300
128.55
>300
69
Table 6.2: Benchmarks: BISOLVE-based curve analysis
with GPU resultant
Instance
Y -deg
#critical
ARCAVOID-Teissier
BISOLVE
CGAL
random
—shift 128
—shift 512
—shift 2048
6,6
26
26
26
26
0.03
0.05
0.09
0.36
0.24
0.18
0.30
1.01
0.10
0.10
0.19
0.66
random
—shift 128
—shift 512
—shift 2048
9,9
22
22
22
22
0.06
0.09
0.18
0.78
0.49
0.42
0.52
1.92
0.22
0.24
0.50
2.29
random
—shift 128
—shift 512
—shift 2048
12,12
30
30
30
30
0.17
0.24
0.51
2.78
1.11
0.96
1.38
5.67
0.63
0.79
1.89
10.00
13_sings_9
L4_circles
L6_circles
SA_2_4_eps
challenge_12
cov_sol_20
curve24
curve_issac
cusps_and_flexes
deg16_7_curves
dfold_10_6
grid_deg_10
hard_one
huge_cusp
spiral29_24
swinnerston_dyer
ten_circles
9
16
6
17
30
20
24
15
9
16,7
18
10
27,6
8
29,24
40
20
35
17
18
6
99
8
28
18
20
19
21
20
32
24
34
63
45
0.69
5.33
109.16
0.30
188.38
14.85
11.74
2.39
0.50
9.90
0.64
0.63
8.32
8.82
7.89
>400
14.09
5.82
12.65
110.63
2.33
>400
16.90
19.65
6.47
5.38
10.63
failure
2.03
>400
40.45
14.21
>400
24.36
2.33
6.22
190.72
66.95
>400
67.57
72.07
2.64
1.90
19.51
84.82
1.88
>400
20.20
56.12
>400
22.71
70
7 Conclusion and Outlook
A broad range of applications in computer graphics, geometry, robotics or computer aided design,
to mention a few, crucially relies on the task of root solving. We have shown that rigorous use of
interval arithmetic and adaptive precision handling allows to implement a certified numerical complex
root isolator that can compete to far more complicated solutions. In particular, we remark that the
feasibility of complex solving allows to achieve significant advantage over real root isolators – even in
situations where it is not straightforward to think about complex roots.
7.1 Directions of Further Work
We consider ARCAVOID work in progress. While first impressions and comparisons to existing solvers
show the potential of the method, we do not yet use the all the opportunities. We aim to optimize
and extend in the following directions.
Computations in Machine Precision
The comparisons with MPSolve clearly show the huge gain in speed when machine precision computations are sufficient for the isolation of roots. As a first step we, thus, seek to integrate a number
type combining fast double floating point operations with a higher exponent range to avoid underand overflows in the numerical iteration. It is very reasonable to expect that this will bring a major
speed-up for all instances where the 53-bit precision is sufficient for verified solving.
Several number type libraries, in particular [NTL], offer another data type which cannot be fit well
into the usual dyadic floating point scheme: extended doubles or quadruple floats. This type is to
be understood as the sum of two double values. It allows, for example, to represent 21000 + 2−1000 to
be represented with just two machine precision floats; instead, the corresponding bigfloat requires a
mantissa length of 2001 bits. Quadruples cannot be handled within ordinary perturbation and roundoff error analysis since the are not a bit uniformly distributed over the real axis; as the performance
of MPSolve showed on the Wilkinson grid polynomials, this is not even straightforward for classical
bigfloats. However, protected interval arithmetic allows to use them in validated algorithms.
Asymptotically Fast Algorithms
In section 3.4.5, we already mentioned that traditional asymptotically fast algorithms show poor
robustness when performed in fixed precision. This is an active field of research. Recently, Joris
van der Hoeven [Hoe08] devised a scheme to allow numerically stable multiplication of univariate
polynomials. Polynomial multiplication is an integral step for a number of important operations:
division, greatest common divisor, Taylor shifts and multi-point evaluation.
In particular, the latter is appealing: The cost of an iteration of the Aberth-Ehrlich method, currently
done in the naïve way, is feasible within O(n log n) arithmetic operations instead of O(n2 ) using
simultaneous multi-point evaluation schemes. Again, we remark that our algorithm will not require a
new analysis and hard-coding of round-off and cancellation errors, since interval arithmetics protect
the certificates for the output.
Better Use of Interval Arithmetic
We cannot deny: interval arithmetic requires more computations and, thus, runtime than plain
evaluation at a value. For the sake of the two preceding statements, we do not intend to abandon it.
71
Yet, there are more sophisticated ways of handling intervals.
ARCAVOID internally works on complex circular regions. Thus, it is natural to consider a centered
interval representation around a complex value z not by a box interval [x + I y, x 0 + I y 0 ] with
x ≤ ℜz ≤ x 0 and y ≤ ℑz ≤ y 0 , but by a disc interval D(z; r) for r > 0. This circular [Hen71] or
midpoint-radius arithmetic [Rum99] not only allows for tighter bounds on the actual value, but
requires less computational effort both for general complex interval arithmetic and the evaluation of
disc-oriented predicates. Unfortunately, CGAL does not yet provide the necessary concepts and models
for such an approach.
A Complete Algorithm
In the current state, our algorithm cannot be considered complete due to the lack of a convergence
guarantee for the initial stages of the Aberth-Ehrlich method. While this never turned out to be
an issue in practice, it would be nice to have a deterministic termination criterion. We imagine an
implementation of CEVAL to be a suitable fallback method in case the root inclusion region does not
shrink by some constant factor λ > 1 throughout a stage of the algorithm.
In this case, it seems advisable to adapt the inclusion predicate to match our (certified) results.
On the other hand, ARCAVOID can potentially profit from the cheap validation filter provided by the
truncated Taylor test.
Handling of Multiple Roots
At the current state of implementation, ARCAVOID is able to isolate the roots of squarefree polynomials.
Furthermore, if provided the degree k of gcd( f , f 0 ) (or, for real root isolation, the number m of real
zeros), termination is guaranteed as well (assuming, as usual, that the numerical iteration succeeds).
Still, the computation of those numbers requires symbolic operations on the input polynomial to be
performed before ARCAVOID starts its work. In particular, the effort is spent in vain if it turns out
that the polynomial has no multiple (real) roots. We thus favor the use of an adaptive bound on the
multiplicity of roots based on modular computations, in the style of Sagraloff, Kerber and Hemmer
[SKH09].
Optimized Endgame Strategy
Our speed-up strategy for root clusters as described in section 4.5 relies on the fact that approximate
Taylor expansion at a point does not perturb the roots of the polynomial “too much”. The latter is
actually well-defined, as Sagraloff shows [Sag10]. Thus, it is an unnecessary simplification to perform
the computation of root inclusion discs with respect to all root inclusion of the input polynomial. A
localized variant, working on the truncated Taylor expansion and respecting the approximation error,
yields certified results as well. In this case, we expect the cost of computation of the inclusion regions
to drop from O(k · n) to O(k2 ) multi-precision operations, where k denotes the number of roots in
the local cluster.
Additionally, the root structure within the root cluster is unlikely to require the same intermediate
precision required for the Taylor shift. In the end, a recursive call of ARCAVOID, including the double
precision stage (or extended machine precision, see above), promises the best results. This feature is
particularly interesting when root refinement of multiple or near-multiple roots is required, a situation
that arises when we have to push the root inclusion radii below a precomputed root separation bound
or handle Mignotte-like instances.
Parallelization and GPU Integration
The overwhelming performance of algorithms for modular symbolic computations on recent graphics
hardware raises the question whether a similar achievement is possible for ARCAVOID. In theory, all
expensive steps in the algorithm – the numerical iteration, the computation of inclusion discs, the
Taylor shifts for localization – can be divided onto n parallel processes.
Unfortunately, graphics hardware is not quite laid out for arbitrary precision computations or, at the
72
very least, specified round-off handling as necessary for protected interval computations on machine
precision. To the best of our knowledge, none of the mass market GPUs guarantee to meet the
requirements of IEEE 754. However, with the advent of parallel computing in scientific applications,
we expect a change soon – double precision support is already available on modern chip sets.
Still, highly parallelized implementations tend to show entirely different performance characteristics
than what traditional complexity theory covers. We will have to see the algorithm in action before
further comments on its behaviour. With the current programming techniques and tools, however,
one thing is certain: If an algorithm is too complex, an efficient GPU realization is next to impossible.
We are convinced that its simplicity makes ARCAVOID take a strong position in this respect.
Applications
Finally, we look forward for further integration of our numerical solver into geometric and algebraic
applications. We are currently working on adapting the existing CGAL algebraic curve arrangement
computations to be usable within BISOLVE. Algebraic surface analysis is the natural next step, but
a number of interesting and demanding problems are in robotics, bioinformatics and, of course,
mathematics and physics. We are confident that ARCAVOID will satisfy a broad range of needs.
73
A Appendix
Proof of lemma 3.21 (page 25). The characteristic polynomial χC f (λ), by definition, is given as the
determinant
−λ
1
0
···
···
0
0
−λ
1
0
···
0
..
..
..
...
...
...
.
.
.
.
χC f (λ) = ···
···
−λ
1
0
0
0
···
···
···
−λ
1
−f
− f1
− f2
···
− f n−2 − f n−1 − λ 0
We now iteratively perform Gaussian elimination, adding the λi−1 -th multiple of the i-th column to
the first, to yield
0
1
0
···
···
0
2
−λ
−λ
1
0
···
0
.
.
.
.
.
.
.
.
.
..
..
..
.
.
.
χC f (λ) = 0
···
···
−λ
1
0
0
···
···
···
−λ
1
−f − f λ
− f1
− f2
···
− f n−2 − f n−1 − λ 0
1
..
.
0
1
0
−λ
..
..
.
.
=
0
·
·
·
−λn−2
·
·
·
Pn−2
−
i
− f1
i=0 f i λ
= 0
1
...
···
0
...
···
···
...
···
···
− f2
−λ
···
···
1
−λ
− f n−2
0
0
..
.
1
−λ
..
.
0
1
...
···
0
...
···
···
...
0
0
− f (λ)
···
···
− f1
···
···
− f2
−λ
···
···
1
−λ
− f n−2
0
1
− f n−1 − λ 0
0
..
.
.
0
1
− f n−1 − λ 0
0
..
.
Multiplication of the matrix by −1 changes the determinant by (−1)n , thus Laplace expansion by the
first column shows χC f (λ) = f (λ).
75
Proof of lemma 4.17 (page 43). We assume a representation of complex numbers in Cartesian coordinates. Then, composition of real and imaginary part is not affected by round-off errors, and we
have
e y1 + I (x 2 +
e y2 )
z̃ = x 1 +
= (1 + δ1 )(x 1 + y1 ) + I (1 + δ2 )(x 2 + y2 ),
where |δ1 |, |δ2 | < µ. Thus,
|z̃ − z| = δ1 (x 1 + y1 ) + I δ2 (x 2 + y2 )
Æ
p
= δ12 ℜ2 z + δ22 ℑ2 z < µ2 ℜ2 z + µ2 ℑ2 z = µ |z| ,
which, substituting δ = z̃−z
∈ C, yields |δ| < µ and proves the first inequality.
z
For the multiplication,
e (x 2 e· y1 )
e (x 2 e· y2 ) + I (x 1 e· y2 ) +
w̃ = (x 1 e· y1 ) −
= (1 + δ3 ) (1 + δ1 )x 1 y1 − (1 + δ2 )x 2 y2
+ I (1 + δ6 ) (1 + δ4 )x 1 y2 + (1 + δ5 )x 2 y1 ,
where |δi | < µ for all i. It follows
|ℜ(w̃ − w)| = (δ1 + δ3 + δ1 δ3 )x 1 y1 − (δ2 + δ3 + δ2 δ3 )x 2 y2 ≤ (δ1 + δ3 + δ1 δ3 )x 1 y1 + (δ2 + δ3 + δ2 δ3 )x 2 y2 < (2µ + µ2 ) |x 1 y1 | + |x 2 y2 | , and analogously
|ℑ(w̃ − w)| < (2µ + µ2 ) |x 1 y2 | + |x 2 y1 | .
By the inequality of arithmetic and geometric means, 2 x 1 x 2 ≤ |x 1 |2 + |x 2 |2 = |x|2 , and
|w̃ − w|2
(2µ + µ2 )2
= |x 1 y1 |2 + |x 2 y2 |2 + |x 1 y2 |2 + |x 2 y1 |2 + 4|x 1 x 2 y1 y2 |
= |w|2 + 2|x 1 x 2 | · 2| y1 y2 | ≤ |w|2 + |x|2 | y|2 = 2|w|2 .
p
p
Thus, |w̃ − w| < (2 2µ + 2µ2 ) |w| , which shows the second inequality.
The claim for the Gauß-Karatsuba style multiplication follows analogously.
76
B Bibliography
General References
[BES10]
Eric Berberich, Pavel Emeliyanenko, and Michael Sagraloff. An Elimination Method for
Solving Bivariate Polynomial Systems: Eliminating the Usual Drawbacks. Oct. 7, 2010.
arXiv: 1010.1386v1. (See pp. 60, 68).
[BKS1X]
Eric Berberich, Alexander Kobel, and Michael Sagraloff. “Hybrid Methods for Computing
Arrangements of Algebraic Curves”. In preparation. 201X. (See p. 64).
[BPR10]
Saugata Basu, Richard Pollack, and Marie-Françoise Roy. Algorithms in Real Algebraic
Geometry (Algorithms and Computation in Mathematics). 2nd ed. Secaucus, NJ, USA:
Springer-Verlag New York, 2010. ISBN: 3-540-33098-4. URL: http://www.math.purdue.
edu/~sbasu/. (See pp. 15, 60).
[Eme10a]
Pavel Emeliyanenko. “A complete modular resultant algorithm targeted for realization
on graphics hardware”. In: Proceedings of the 4th International Workshop on Parallel
and Symbolic Computation (Grenoble, France, 2010). PASCO ’10. New York, NY, USA:
ACM, 2010, pp. 35–43. ISBN: 978-1-4503-0067-4. DOI: 10.1145/1837210.1837219.
(See p. 62).
[Eme10b]
Pavel Emeliyanenko. “Modular Resultant Algorithm for Graphics Processors”. In: Algorithms and Architectures for Parallel Processing. Ed. by Ching-Hsien Hsu et al. Vol. 6081.
Lecture Notes in Computer Science. Springer Berlin / Heidelberg, 2010, pp. 427–440.
DOI : 10.1007/978-3-642-13119-6_37. (See p. 62).
[Far02]
Gerald Farin. Curves and Surfaces for CAGD. A Practical Guide. 5th edition. San Francisco,
CA, USA: Morgan Kaufmann Publishers, 2002. ISBN: 1-55860-737-4. (See p. 19).
[FGM08]
K. Farahmand, A. Grigorash, and B. McGuiness. “On Different Classes of Algebraic
Polynomials with Random Coefficients”. In: Journal of Applied Mathematics and Stochastic
Analysis (2008). DOI: 10.1155/2008/189675. (See p. 51).
[GP00]
Janusz Gwoździewicz and Arkadiusz Ploski. Formulae For The Singularities At Infinity Of
Plane Algebraic Curves. 2000. CiteSeerX: 10.1.1.32.7036. (See p. 66).
[Ker06]
Michael Kerber. “Analysis of Real Algebraic Plane Curves”. MA thesis. Saarbrücken:
Universität des Saarlandes, 2006. URL: http://www.mpi- inf.mpg.de/~mkerber/
mkerber_diplom.pdf. (See p. 68).
[Ker09]
Michael Kerber. “Geometric Algorithms for Algebraic Curves and Surfaces”. PhD thesis.
Saarbrücken: Universität des Saarlandes, 2009. URL: http://www.mpi-inf.mpg.de/
~mkerber/kerber_diss.pdf.
[Lab10]
Oliver Labs. “A List of Challenges for Real Algebraic Plane Curve Visualization Software”.
In: Nonlinear Computational Geometry. Ed. by Ioannis Z. Emiris, Frank Sottile, and
Thorsten Theobald. Vol. 151. The IMA Volumes in Mathematics and its Applications.
Springer New York, 2010, pp. 137–164. ISBN: 978-1-4419-0999-2. DOI: 10.1007/9781-4419-0999-2_6. (See p. 68).
77
[Mar66]
Morris Marden. Geometry of Polynomials. 2nd edition. Mathematical Surveys 3. Providence, Rhode Island: American Mathematical Society, 1966. ISBN: 978-0-8218-1503-8.
[McN07]
John Michael McNamee. Numerical Methods for Roots of Polynomials, Part 1. Ed. by
Charles K. Chui and Luc Wuytack. Preprint. Vol. 14. Studies in Computational Mathematics. Amsterdam, NED: Elsevier, 2007. ISBN: 978-0-444-52729-5. (See pp. 13, 14,
26).
[Tei73]
Bernard Teissier. “Cycles évanescents, sections planes et conditions de Whitney”. French.
In: Singularités à Cargèse. Asterisque 7–8. Paris, France: Société Mathématique de France,
1973, pp. 285–362. (See p. 66).
Real Root Isolation
[Abb06]
John Abbott. Quadratic Interval Refinement for Real Roots. July 8, 2006. URL: http:
//www.dima.unige.it/~abbott/publications/RefineInterval.pdf. (See p. 13).
[Akr86]
Alkiviadis G. Akritas. “There is no ‘Uspensky’s method.’” In: 5th ACM symposium on
Symbolic and algebraic computation (Waterloo, Ontario, Canada, 1986). SYMSAC ’86.
New York, NY, USA: ACM, 1986, pp. 88–90. ISBN: 0-89791-199-7. DOI: 10.1145/32439.
32457. (See p. 16).
[CA76]
George E. Collins and Alkiviadis G. Akritas. “Polynomial real root isolation using
Descarte’s rule of signs”. In: 3rd ACM symposium on Symbolic and algebraic computation (Yorktown Heights, New York, United States, 1976). SYMSAC ’76. New York, NY,
USA: ACM, 1976, pp. 272–275. DOI: 10.1145/800205.806346. (See p. 16).
[Eig05]
Arno Eigenwillig. “On Multiple Roots in Descartes’ Rule and Their Distance to Roots of
Higher Derivatives”. In: Journal of Computational and Applied Mathematics 200 (2005),
pp. 226–230. CiteSeerX: 10.1.1.90.4992. (See p. 25).
[Eig08]
Arno Eigenwillig. “Real Root Isolation for Exact and Approximate Polynomials Using
Descartes’ Rule of Signs”. PhD thesis. Saarbrücken: Universität des Saarlandes, 2008.
URL : http://www.mpi-inf.mpg.de/~arno/files/arno_thesis_2008.pdf. (See
pp. 7, 14, 16–18, 23, 25, 49, 51, 63).
[Hem+09]
Michael Hemmer et al. “Experimental evaluation and cross-benchmarking of univariate
real solvers”. In: Conference on Symbolic numeric computation (Kyoto, Japan, 2009).
SNC ’09. New York, NY, USA: ACM, 2009, pp. 45–54. ISBN: 978-1-60558-664-9. DOI:
10.1145/1577190.1577202. (See p. 25).
[Joh+06]
Jeremy R. Johnson et al. “High-performance implementations of the Descartes method”.
In: ISSAC: International symposium on Symbolic and algebraic computation (Genoa,
Italy, 2006). New York, NY, USA: Association for Computing Machinery, May 2006,
pp. 154–161. ISBN: 1-59593-276-3. DOI: 10.1145/1145768.1145797. (See p. 23).
[MS09]
Kurt Mehlhorn and Michael Sagraloff. “Isolating real roots of real polynomials”. In:
ISSAC: International symposium on Symbolic and algebraic computation (Seoul, Republic
of Korea, 2009). New York, NY, USA: ACM, 2009, pp. 247–254. ISBN: 978-1-60558-609-0.
DOI : 10.1145/1576702.1576737.
[MS10]
Kurt Mehlhorn and Michael Sagraloff. A Deterministic Descartes Algorithm for Real
Polynomials. Accepted for ISSAC ’09: International symposium on Symbolic and algebraic
computation. Jan. 2010. URL: http://www.mpi-inf.mpg.de/~msagralo/bitstream.
pdf.
78
[Pan+07]
Victor Y. Pan et al. “Real root-finding”. In: SNC: International workshop on Symbolicnumeric computation (London, Ontario, Canada, 2007). New York, NY, USA: Association
for Computing Machinery, 2007, pp. 161–169. ISBN: 978-1-59593-744-5. DOI: 10.1145/
1277500.1277524.
[RZ04]
Fabrice Rouillier and Paul Zimmermann. “Efficient isolation of polynomial’s real roots”.
In: Journal of Computational and Applied Mathematics 162.1 (Proceedings of the international conference on linear algebra and arithmetic 2004), pp. 33–50. ISSN: 0377-0427.
DOI : 10.1016/j.cam.2003.08.015. (See p. 25).
[Sag10]
Michael Sagraloff. Root Isolation for Bitstream Polynomials with Adaptive Precision Demand. 2010. CiteSeerX: 10.1.1.156.5593. (See pp. 45, 72).
[Sha07]
Vikram Sharma. “Complexity of real root isolation using continued fractions”. In: International symposium on Symbolic and algebraic computation (Waterloo, Ontario, Canada,
2007). ISSAC ’07. New York, NY, USA: ACM, 2007, pp. 339–346. ISBN: 978-1-59593743-8. DOI: 10.1145/1277548.1277594. (See pp. 13, 23).
[Wit07]
Carl Witty. Fast Real Root Isolation. July 16, 2007. URL: http://www.sagemath.org:90
01/days4schedule?action=AttachFile&do=get&target=witty.pdf. (See pp. 25,
50).
Complex Root Isolation
[CK]
George E. Collins and Werner Krandick. “An Efficient Algorithm for Infallible Polynomial
Complex Root Isolation”. In: ISSAC: International symposium on Symbolic and algebraic
computation (Berkeley, California, United States, 1992). ISSAC ’92. New York, NY, USA:
ACM, pp. 189–194. ISBN: 0-89791-489-9. DOI: 10.1145/143242.143308. (See p. 27).
[Gou96]
Xavier Gourdon. “Combinatoire, Algorithmique et Géométrie des Polynômes”. French.
PhD thesis. Paris, France: École Polytechnique, 1996. URL: http://algo.inria.fr/
gourdon/thesis.html. (See pp. 27, 49).
[Kam10]
Narayan Kamath. “Subdivision Algorithms for Complex Root Isolation: Empirical Comparisons”. MA thesis. Kellogg College, University of Oxford, May 30, 2010. (See p. 28).
[Pan02]
Victor Y. Pan. “Univariate polynomials: nearly optimal algorithms for numerical factorization and root-finding”. In: Journal of Symbolic Computation 33 (5 2002), pp. 701–733.
ISSN : 0747-7171. DOI : 10.1006/jsco.2002.0531. (See p. 27).
[Pin76]
James R. Pinkert. “An Exact Method for Finding the Roots of a Complex Polynomial”. In:
ACM Transactions on Mathematical Software 2 (4 1976), pp. 351–363. ISSN: 0098-3500.
DOI : 10.1145/355705.355710. (See p. 27).
[Sch82]
Arnold Schönhage. The fundamental theorem of algebra in terms of computational complexity. Preliminary report. Tübingen, Germany, 1982. URL: http://www.informatik.unibonn.de/~schoe/fdthmrep.ps.gz. (See p. 26).
[SW05]
Andrew J. Sommese and Charles W. Wampler II. The Numerical Solution of Systems of
Polynomials. Arising in Engineering And Science. Singapore: World Scientific Publishing
Company, 2005. ISBN: 9-812-56184-6. (See p. 26).
[SY09]
Michael Sagraloff and Chee K. Yap. An Efficient and Exact Subdivision Algorithm for
Isolating Complex Roots of a Polynomial and its Complexity Analysis. Oct. 2009. CiteSeerX:
10.1.1.156.3280. (See pp. 23, 27).
79
[Ver99]
Jan Verschelde. “Algorithm 795: PHCpack: a general-purpose solver for polynomial
systems by homotopy continuation”. In: ACM Transactions on Mathematical Software 25
(2 1999), pp. 251–276. ISSN: 0098-3500. DOI: 10.1145/317275.317286. (See p. 26).
[Wil78]
Herbert S. Wilf. “A Global Bisection Algorithm for Computing the Zeros of Polynomials in
the Complex Plane”. In: Journal of the ACM 25 (3 1978), pp. 415–420. ISSN: 0004-5411.
DOI : 10.1145/322077.322084. (See p. 27).
Simultaneous Root Finding
[Abe73]
Oliver Aberth. “Iteration Method for Finding all Zeros of a Polynomial Simultaneously”.
In: Mathematics of Computation 27.122 (Apr. 1973), pp. 339–344. ISSN: 0025-5718
(print), 1088-6842 (online). DOI: 10.2307/2005621. (See pp. 38, 41).
[BF00a]
Dario Andrea Bini and Giuseppe Fiorentino. “Design, analysis, and implementation
of a multiprecision polynomial rootfinder”. In: Numerical Algorithms 23 (2–3 2000),
pp. 127–173. ISSN: 1017-1398. DOI: 10.1023/A:1019199917103. (See pp. 33, 43, 44,
48).
[BF00b]
Dario Andrea Bini and Giuseppe Fiorentino. Progress on the implementation of Aberth’s
method. Pisa, Italy, 2000. CiteSeerX: 10.1.1.36.4059. (See p. 43).
[BGP04]
Dario Andrea Bini, Luca Gemignani, and Victor Y. Pan. “Inverse power and DurandKerner iterations for univariate polynomial root-finding”. In: Computers & Mathematics
with Applications 47.2–3 (2004). Paper version, pp. 447–459. ISSN: 0898-1221. DOI:
10.1016/S0898-1221(04)90037-5.
[Bin96]
Dario Andrea Bini. “Numerical computation of polynomial zeros by means of Aberth’s
method”. In: Numerical Algorithms 13.2 (Feb. 1996), pp. 179–200. ISSN: 1017-1398
(print), 1572-9265 (online). DOI: 10.1007/BF02207694. (See pp. 42, 43).
[BS63]
Wolfgang Börsch-Supan. “A posteriori error bounds for the zeros of polynomials”. In:
Numerische Mathematik 5 (1 1963), pp. 380–398. ISSN: 0029-599X. DOI: 10.1007/
BF01385904. (See p. 38).
[Ehr67]
Louis W. Ehrlich. “A modified Newton method for polynomials”. In: Communications of
the ACM 10 (2 1967), pp. 107–108. ISSN: 0001-0782. DOI: 10.1145/363067.363115.
(See p. 38).
[For01]
Steven Fortune. Eigensolve. 2001–2002.
eigensolve.html. (See p. 26).
[Ker66]
Immo Kerner. “Ein Gesamtschrittverfahren zur Berechnung der Nullstellen von Polynomen”. German. In: Numerische Mathematik 8 (3 1966), pp. 290–294. ISSN: 0029-599X.
DOI : 10.1007/BF02162564. (See p. 40).
[PCT95]
Miodrag S. Petković, Carsten Carstensen, and Miroslav Trajkovíc. “Weierstrass formula
and zero-finding methods”. In: Numerische Mathematik 69 (3 1995), pp. 353–372. ISSN:
0029-599X. DOI: 10.1007/s002110050097.
[Til98]
Paolo Tilli. “Convergence conditions of some methods for the simultaneous computation
of polynomial zeros”. In: Calcolo 35 (1 1998), pp. 3–15. ISSN: 0008-0624. DOI: 10.1007/
s100920050005. (See pp. 39, 42).
80
URL :
http://ect.bell-labs.com/who/sjf/
Root Clustering
[Neu03]
Arnold Neumaier. “Enclosing clusters of zeros of polynomials”. In: Journal of Computational and Applied Mathematics 156 (2 2003), pp. 389–401. ISSN: 0377-0427. DOI:
10.1016/S0377-0427(03)00380-7. (See p. 37).
[RO09]
Siegfried M. Rump and Shin’Ichi Oishi. Verified Computation of a Disc containing exactly
k roots of a univariate nonlinear function. To appear. 2009. URL: http://www.ti3.tuharburg.de/paper/rump/RuOi09a.pdf.
[Rum03]
Siegfried M. Rump. “Ten methods to bound multiple roots of polynomials”. In: Journal
of Computational and Applied Mathematics 156 (2 2003), pp. 403–432. ISSN: 0377-0427.
DOI : 10.1016/S0377-0427(03)00381-9. (See p. 38).
Root Separation and Root Modulus Bounds
[Bat08]
Prashant Batra. “On a property of the near optimal root-bound”. In: Journal of Computational and Applied Mathematics 167 (2 2008), pp. 489–491. DOI: 10.1016/j.cam.2003.
10.019. URL: http://www.tu-harburg.de/ti6/mitarbeiter/pb/publications/
SluisOptBound02.pdf. (See p. 13).
[ESY06]
Arno Eigenwillig, Vikram Sharma, and Chee K. Yap. “Almost tight recursion tree bounds
for the Descartes method”. In: ISSAC: International symposium on Symbolic and algebraic
computation (Genoa, Italy, 2006). New York, NY, USA: Association for Computing
Machinery, 2006, pp. 71–78. ISBN: 1-59593-276-3. DOI: 10.1145/1145768.1145786.
[Fuj16]
Matsusaburô Fujiwara. “Über die obere Schranke des absoluten Betrages der Wurzeln
einer algebraischen Gleichung”. German. In: Tôhoku Mathematical Journal. 1st ser. 10
(1916), pp. 167–171. (See p. 14).
[Mos86]
Ronald G. Mosier. “Root Neighborhoods of a Polynomial”. In: Mathematics of Computation 47.175 (1986), pp. 265–273. ISSN: 0025-5718. DOI: 10.2307/2008093.
[SKH09]
Michael Sagraloff, Michael Kerber, and Michael Hemmer. Certified Complex Root Isolation
via Adaptive Root Separation. preprint. 2009. CiteSeerX: 10.1.1.155.5351. (See pp. 31,
72).
Computer Algebra and Arithmetics
[AI08]
American National Standards Institute and Institute of Electrical and Electronics Engineers. 754-2008 IEEE Standard for Floating-Point Arithmetic. 2008. DOI: 10.1109/
IEEESTD.2008.4610935. (See p. 4).
[Arn10]
Jörg Arndt. Matters Computational. Ideas, Algorithms, Source Code. To appear, Sept. 7,
2010. URL: http://www.jjj.de/fxt/#fxtbook. (See p. 22).
[BP94]
Dario Andrea Bini and Victor Y. Pan. Polynomial and Matrix Computations. Vol. 1:
Fundamental Algorithms. Boston: Birkhäuser, 1994. ISBN: 0-817-63786-9. (See p. 22).
[BZ10]
Richard P. Brent and Paul Zimmermann. Modern Computer Arithmetic. To appear, Sept. 17,
2010. URL: http://www.loria.fr/~zimmerma/mca/pub226.html. (See pp. 5, 22).
[Ger05]
Jürgen Gerhard. “Modular Algorithms in Symbolic Summation and Symbolic Integration”. In: vol. 3218. Springer Berlin / Heidelberg, Germany, 2005. DOI: 10.1007/
b104035. (See p. 22).
81
[Hen71]
Peter Henrici. “Circular arithmetic and the determination of polynomial zeros”. In:
Conference on Applications of Numerical Analysis. Ed. by John Morris. Vol. 228. Lecture
Notes in Mathematics. Springer Berlin / Heidelberg, 1971, pp. 86–92. DOI: 10.1007/
BFb0069450. (See p. 72).
[Hoe08]
Joris van der Hoeven. Making fast multiplication of polynomials numerically stable.
Tech. rep. 2008-02. Orsay, France: Université Paris-Sud, Dec. 9, 2008. URL: http:
//www.texmacs.org/joris/stablemult/stablemult-abs.html. (See p. 71).
[Kah04]
William Kahan. A Logarithm Too Clever by Half. 2004.
edu/~wkahan/LOG10HAF.TXT. (See p. 5).
[Kah97]
William Kahan. Lecture notes on the Status of IEEE Standard 754 for Binary Floating-Point
Arithmetic. Oct. 1, 1997. URL: http://http.cs.berkeley.edu/~wkahan/ieee754
status/IEEE754.PDF. (See p. 5).
[Kre+]
Vladik Kreinovich et al. Interval Computations.
interval-comp/. (See p. 6).
[KZ08]
Sven Köhler and Martin Ziegler. “On the Stability of Fast Polynomial Arithmetic”. In:
8th Conference on Real Numbers and Computers (Santiago di Compostela, Spain, 2008).
July 1, 2008, pp. 147–156. CiteSeerX: 10.1.1.154.7840. (See p. 24).
[LM03]
Vincent Lefèvre and Jean Michel Muller. The Table Maker’s Dilemma: our search for
worst cases. Oct. 28, 2003. URL: http://perso.ens-lyon.fr/jean-michel.muller/
Intro-to-TMD.htm. (See p. 5).
[Mul05]
Jean Michel Muller. On the definition of ulp(x). Montbonnet Saint Ismier, France, 2005.
URL : http://hal.inria.fr/docs/00/07/05/03/PDF/RR-5504.pdf. (See p. 5).
[Rum99]
Siegfried M. Rump. “Fast and Parallel Interval Arithmetic”. In: BIT Numerical Mathematics
39 (3 1999), pp. 534–554. ISSN: 0006-3835. DOI: 10.1023/A:1022374804152. (See
p. 72).
[vzGG03]
Joachim von zur Gathen and Jürgen Gerhard. Modern Computer Algebra. 2nd edition.
Cambridge, UK: Cambridge University Press, 2003. ISBN: 0-521-82646-2. (See pp. 4, 22,
23, 30, 60).
URL :
URL :
http://www.cs.berkeley.
http://www.cs.utep.edu/
Computer Algebra Systems and Implementations of Root Solvers
[Boost]
Beman Dawes, David Abrahams, et al. Boost C++ libraries. Version 1.45.0. Since 1998.
URL : http://www.boost.org/. (See p. 48).
[CGAL]
CGAL: Computational Geometry Algorithms Library. Since 1996. URL: http://www.cgal.
org/. (See pp. 1, 25, 47, 62).
[Magma]
Wieb Bosma, John Cannon, and Catherine Playoust. The Magma algebra system. Version 2.15-7. Sidney, Since 1993. URL: http://magma.maths.usyd.edu.au/. (See
p. 27).
[Maple]
Waterloo Maple Inc. Maple. Version 14. Since 1980. URL: http://www.maplesoft.com/
products/maple/. (See pp. 24, 25, 48, 63).
[MMX]
Joris van der Hoeven et al. Mathemagix. Since 2002.
org/. (See p. 25).
[MPSolve]
Dario Andrea Bini and Giuseppe Fiorentino. MPSolve. Version 2.2. Pisa, Italy, May 2001.
URL : http://www.dm.unipi.it/cluster-pages/mpsolve/. (See pp. 1, 33, 42, 48).
82
URL :
http://www.mathemagix.
[PARI/GP]
The PARI group: Henry Cohen, Karim Belabas, et al. PARI/GP. Version 2.3.5. Bordeaux,
France, Since 1987. URL: http://pari.math.u-bordeaux.fr/. (See pp. 27, 49).
[RS]
Fabrice Rouillier. RS library. Version 3.0.133. Since 2000.
equipes/vegas/rs/. (See pp. 5, 25, 49).
[Sage]
William Stein et al. Sage. Version 4.6.1. Since 2005.
(See pp. 24, 25, 49).
[WR88]
Wolfram Research. Mathematica. Version 8.0.0. Since 1988. URL: http://www.wolfram.
com/products/mathematica/. (See p. 48).
URL :
URL :
http://www.loria.fr/
http://www.sagemath.org/.
Number Type Libraries
[GMP]
Torbjörn Granlund et al. GNU Multiple Precision Library. Since 1991.
gmplib.org/. (See pp. 4, 22, 25, 47, 48).
[LEDA]
Algorithmic Solutions Software GmbH. LEDA Library of Efficient Data types and Algorithms. Saarbrücken, Since 1988. URL: http://www.algorithmic-solutions.com/
leda/. (See pp. 4, 22, 47).
[MPFI]
Nathalie Revol. MPFI: a multiple precision interval arithmetic library. Since 2002.
http://perso.ens-lyon.fr/nathalie.revol/software.html. (See p. 48).
[MPFR]
INRIA et al. Multiple Precision Floating-point Reliable library. Since 2000.
//www.mpfr.org/. (See pp. 4, 48).
[Mpfrcx]
Andreas Enge, Philippe Théveny, and Paul Zimmermann. Mpfrcx library for arithmetic
of univariate polynomials. Since 2007. URL: http://www.multiprecision.org/. (See
p. 22).
[NTL]
Victor Shoup et al. A Library for doing Number Theory. Since 1990.
shoup.net/ntl/. (See pp. 4, 22, 71).
URL :
URL :
http://www.
URL :
URL :
http:
http://www.
Further Sources
Besides the mentioned references, the following sources on the Internet have been consulted extensively during the writing of this thesis:
• MathWorld (Wolfram Research): http://mathworld.wolfram.com/
• Wikipedia: http://de.wikipedia.org/ and http://en.wikipedia.org/
• LEO German–English dictionary (LEO GmbH, TU Munich): http://dict.leo.org/
The figures have been created using the freely available open source packages and applications
• TikZ package for LATEX (http://sourceforge.net/projects/pgf/),
• Asymptote (http://asymptote.sourceforge.net/),
• gnuplot (http://www.gnuplot.info/) and
• Inkscape (http://inkscape.org/).
83
© Copyright 2025 Paperzz