License: CC BY 4.0
arXiv:2402.06083v1 [math.NA] 08 Feb 2024

How to split a tera-polynomial

Nicolae Mihalache11{}^{\small 1}start_FLOATSUPERSCRIPT 1 end_FLOATSUPERSCRIPT  and  François Vigneron22{}^{\small 2}start_FLOATSUPERSCRIPT 2 end_FLOATSUPERSCRIPT
Abstract

This article presents a new algorithm to compute all the roots of two families of polynomials that are of interest for the Mandelbrot set \mathcal{M}caligraphic_M : the roots of those polynomials are respectively the parameters c𝑐c\in\mathcal{M}italic_c ∈ caligraphic_M associated with periodic critical dynamics for fc(z)=z2+csubscript𝑓𝑐𝑧superscript𝑧2𝑐f_{c}(z)=z^{2}+citalic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_z ) = italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_c (hyperbolic centers) or with pre-periodic dynamics (Misiurewicz-Thurston parameters). The algorithm is based on the computation of discrete level lines that provide excellent starting points for the Newton method. In practice, we observe that these polynomials can be split in linear time of the degree.

This article is paired with a code library [Mandel] that implements this algorithm. Using this library and about 723 000 core-hours on the HPC center Roméo (Reims), we have successfully found all hyperbolic centers of period 41absent41\leq 41≤ 41 and all Misiurewicz-Thurston parameters whose period and pre-period sum to 35absent35\leq 35≤ 35. Concretely, this task involves splitting a tera-polynomial, i.e. a polynomial of degree 1012similar-toabsentsuperscript1012\sim 10^{12}∼ 10 start_POSTSUPERSCRIPT 12 end_POSTSUPERSCRIPT, which is orders of magnitude ahead of the previous state of the art. It also involves dealing with the certifiability of our numerical results, which is an issue that we address in detail, both mathematically and along the production chain. The certified database is available to the scientific community [Mand.DB].

For the smaller periods that can be represented using only hardware arithmetic (floating points FP80), the implementation of our algorithm can split the corresponding polynomials of degree 109similar-toabsentsuperscript109\sim 10^{9}∼ 10 start_POSTSUPERSCRIPT 9 end_POSTSUPERSCRIPT in less than one day-core. We complement these benchmarks with a statistical analysis of the separation of the roots, which confirms that no other polynomial in these families can be split without using higher precision arithmetic.

1 Introduction

Algorithms to find all the roots of a given polynomial date back to the beginning of mathematics. Greeks and Babylonians understood quadratic equations 2000 BC and applied them to compute the boundaries of their agricultural fields, to define just taxes and fair trade. Al-khawarizmi’s algorithm (825AD) constitutes the official starting point of algebra and gave it its name.

At a theoretical level, the fundamental theorem of algebra ensures that every polynomial can be split over \mathbb{C}blackboard_C and the proof of this results was successively refined by d’Alembert (1746), C.F. Gauss (1799), J.R. Argand (1806) and A.L. Cauchy (1821). The race towards general solutions by radicals, though punctuated by great achievements, ultimately stumped all generations until N. Abel (1829) and E. Galois (1832) proved the problem to be unsolvable and discovered a new branch of mathematics (groups theory) along the way.

Polynomial roots are also of key importance for modern numerical analysis. For example, Gauss quadrature formulas provide an extremely efficient way to compute the value of integrals as a linear combination of evaluations at the roots of some orthogonal polynomial (Legendre, Jacobi, Chebyshev, Laguerre, Hermite,…); see e.g. [BM92]. Another striking example is the computation of eigenvalues of linear operators, which are, by definition (at least when the ambiant dimension is finite), the roots of the characteristic polynomial. The knowledge of eigenvalues is crucial to understand the behavior of dynamical systems as illustrated, dramatically, by the collapse of Tacoma’s bridge in 1940. Similarly, the Covid-19 pandemic has put R0subscript𝑅0R_{0}italic_R start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT (the largest eigenvalue of the regeneration matrix in a population model) under the international spotlight. Eigenvalues are also essential in exploratory data analysis when a predictive model is based on a principal component analysis.

In this article, we focus on two important families of polynomials. The family of hyperbolic polynomials is defined recursively by

p0(z)=0,pn+1(z)=pn(z)2+z.formulae-sequencesubscript𝑝0𝑧0subscript𝑝𝑛1𝑧subscript𝑝𝑛superscript𝑧2𝑧p_{0}(z)=0,\qquad p_{n+1}(z)=p_{n}(z)^{2}+z.italic_p start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ( italic_z ) = 0 , italic_p start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ( italic_z ) = italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_z ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_z . (1)

For n1𝑛1n\geq 1italic_n ≥ 1, one has degpn=2n1degreesubscript𝑝𝑛superscript2𝑛1\deg p_{n}=2^{n-1}roman_deg italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = 2 start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT. The family of Misiurewicz-Thurston polynomials is a two parameters family defined for ,n𝑛\ell,n\in\mathbb{N}roman_ℓ , italic_n ∈ blackboard_N by

q,n(z)=p+n(z)p(z).subscript𝑞𝑛𝑧subscript𝑝𝑛𝑧subscript𝑝𝑧q_{\ell,n}(z)=p_{\ell+n}(z)-p_{\ell}(z).italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT ( italic_z ) = italic_p start_POSTSUBSCRIPT roman_ℓ + italic_n end_POSTSUBSCRIPT ( italic_z ) - italic_p start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ( italic_z ) . (2)

The polynomials pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT are closely related to the Mandelbrot set \mathcal{M}caligraphic_M (see [CG93], [Mil90] or Section 2 for further details). This set is both one of the most intricate mathematical objects and a very famous computer-generated image (Figure 1). Its fractal nature has fascinated the general public, the mathematical and the computer science communities since 1980 and a great deal of research has been done around its properties during this time. The century old conjecture of P. Fatou [Fat19] remains largely open and can be stated as the following question: are all connected components of the interior of \mathcal{M}caligraphic_M hyperbolic, i.e. do they each contain exactly one root of some pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ?

Refer to caption
Figure 1: The Mandelbrot set \mathcal{M}caligraphic_M with \partial\mathcal{M}∂ caligraphic_M in black and in gray, the interior of \mathcal{M}caligraphic_M.

The current state of the art for root-finding algorithms is limited, in practice, to polynomials whose degree does not exceed a few millions or, at best, a few hundred millions. In Section §3 we survey briefly the corresponding algorithms. For example, D. Schleicher and R. Stoll [SS17] have mastered this scale and give computing times111A time-core unit is a rough measure of the practical complexity of an implementation, regardless of the architecture of the computer. It is obtained by adding the individual compute time of each active computing unit involved throughout the computation. A convenient estimate and upper bound is the product of the wall-clock time of the computation by the number of CPU cores in use. Up to a point, mostly limited by memory management, parallelization leads to a better wall-clock time, even though the overall time-core requirements may be substantially higher. ranging from 18 hours-core to 15 days-core for various polynomials of degree 220106similar-tosuperscript220superscript1062^{20}\sim\nobreak 10^{6}2 start_POSTSUPERSCRIPT 20 end_POSTSUPERSCRIPT ∼ 10 start_POSTSUPERSCRIPT 6 end_POSTSUPERSCRIPT. Other implementations using a different splitting algorithm and massively parallel architectures [GSCG17] end up with similar core requirements and degree limitations. Eigenvalue methods encounter similar limitations on the size of non-zero elements in the matrices [DT93], [IYM11], [SZI+{}^{+}start_FLOATSUPERSCRIPT + end_FLOATSUPERSCRIPT17], [SK19]. A substantial leap forward was accomplished by [RSS17]: using an adaptative mesh-refinement technique for the Newton method they split a polynomial of degree 224superscript2242^{24}2 start_POSTSUPERSCRIPT 24 end_POSTSUPERSCRIPT in less than 7 days-core, however with a few missing roots, and even one instance of a polynomial of degree 230109similar-tosuperscript230superscript1092^{30}\sim 10^{9}2 start_POSTSUPERSCRIPT 30 end_POSTSUPERSCRIPT ∼ 10 start_POSTSUPERSCRIPT 9 end_POSTSUPERSCRIPT in 4 days-core. This remarquable implementation is even backed by theoretical results [HSS01], [Sch23] (see §3.5 below) that ensure that a certain set of starting points guaranties that all roots will be found.

For the application to Gaussian quadrature, one can exploit the specific connection between orthogonal polynomials and the associated ODEs to compute the roots in linear time. The published benchmark time [Bre17] is about 6 day-core to compute a Gauss-Jacobi rule of record size 1012superscript101210^{12}10 start_POSTSUPERSCRIPT 12 end_POSTSUPERSCRIPT. The algorithm is explained in [BMF12], [HT13], [TTO16].

Let us point out that, while numerical analysis has recently reached problems with 2×1092superscript1092\times 10^{9}2 × 10 start_POSTSUPERSCRIPT 9 end_POSTSUPERSCRIPT degrees of freedom for hyperbolic PDEs in field-ready medical imaging [TAB+{}^{+}start_FLOATSUPERSCRIPT + end_FLOATSUPERSCRIPT19], 550×109550superscript109550\times\nobreak 10^{9}550 × 10 start_POSTSUPERSCRIPT 9 end_POSTSUPERSCRIPT degrees of freedom for elliptic PDEs on the Titan supercomputer [GMSB16] and even 1015superscript101510^{15}10 start_POSTSUPERSCRIPT 15 end_POSTSUPERSCRIPT degrees of freedom for a turbulence simulation on Summit [RAY19], those remarkable achievements do not yet imply the ability to solve routinely eigenvalue and polynomial splitting problems of this size. In particular, as we will see in Section §6, the low separation between roots of polynomials of extreme degree cannot, in general, be resolved using hardware floating point arithmetic.

1.1 Our results in a nutshell

This article raises the state of the art of polynomial splitting to a degree about one trillion (i.e. 2401012similar-tosuperscript240superscript10122^{40}\sim 10^{12}2 start_POSTSUPERSCRIPT 40 end_POSTSUPERSCRIPT ∼ 10 start_POSTSUPERSCRIPT 12 end_POSTSUPERSCRIPT), called a tera-polynomial222As a trinomial denotes a polynomial expression with 3 terms, we should call it a teranomial. We decided against it as the single letter difference with the prefix tetra (that denotes 4) could lead to confusion.. We do not claim full generality and focus on the families pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT defined above.

To achieve this result without brute force, the main idea is a new splitting algorithm. Roughly speaking, the classical Newton’s method consists in choosing [HSS01] a mesh of initial points that encircles the roots and to iterate the Newton map until the trajectories reach the roots; this method results in a dense mesh of most of the disk (see Figure 2).

Refer to caption
Figure 2: Newton’s method to split a polynomial of degree d=20𝑑20d=20italic_d = 20 with 4 starting points (black) per root. The trajectories (white) are Newton’s iterations, which are stoped in case of divergence; the gray dots mark the critical points; the white disk are contracted to the roots (red). The classical choice for the starting points (left) leads to O(d2)𝑂superscript𝑑2O(d^{2})italic_O ( italic_d start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) Newton steps. A better choice, proposed in this article (right) optimizes the position of the starting points by combining their computation with that of a level curve and brings, in practice, the total number of steps to O(d)𝑂𝑑O(d)italic_O ( italic_d ). See also [RSS17, Fig. 2] for a similar idea, though implemented differently.

Instead, we propose to choose the starting points of the Newton method on a level curve that hugs the set of roots tightly. To produce this curve, one starts on an extremely lean mesh to perform most of the “descend” with as little computations as possible. When needed, one can then densify the mesh at a certain level set (horizontally) and then continue the descend (vertically) with more points. Ultimately, we catch up with the dense mesh of the classical method, having only a few Newton steps left until we find all the roots.

We are releasing an exhaustive and proven list [Mand.DB] of all the roots of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT (called hyperbolic centers) for n𝑛nitalic_n up to period 41414141 and all the roots of q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT (called pre-periodic or Misiurewicz-Thurston points) of order +n35𝑛35\ell+n\leq 35roman_ℓ + italic_n ≤ 35. By proven, we mean that each point zjsubscript𝑧𝑗z_{j}italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT in our database comes with a mathematical statement that guaranties two things: an exact root z~jsubscript~𝑧𝑗\tilde{z}_{j}over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT lies within a certain maximal tolerance from our numerical value, and a standard refinement technique (Newton’s method) applied to zjsubscript𝑧𝑗z_{j}italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT converges to z~jsubscript~𝑧𝑗\tilde{z}_{j}over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT. To ensure a strict control of the computational errors that is robust enough to withstand intensive iterations, we have revisited and extended the theory of disk arithmetic.

As a companion to this article, we also release an implementation of our algorithm as a standard C library [Mandel]. This library can be used to check and explore our database [Mand.DB] and contains all the tools necessary to perform extractions, generate images, compute arbitrary precision refinements, etc. This library is optimized on all fronts: it can run on a single core for the smallest periods or can take advantage of the massively parallel architectures of modern HPC centers for the higher ones. For example, the splitting of p21subscript𝑝21p_{21}italic_p start_POSTSUBSCRIPT 21 end_POSTSUBSCRIPT, which is reported as requiring at least 18.8 hours-core in [SS17] takes only 10 seconds with our algorithm, on a single core of a consumer-grade personal computer. Similarly, we can split p29subscript𝑝29p_{29}italic_p start_POSTSUBSCRIPT 29 end_POSTSUBSCRIPT in only 1 hour-core and p33subscript𝑝33p_{33}italic_p start_POSTSUBSCRIPT 33 end_POSTSUBSCRIPT in about 1 day-single-core. The computations automatically switch to high-precision, using the [MPFR] library, but only when necessary. For example, when n30𝑛30n\geq 30italic_n ≥ 30 the roots of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT near 22-2- 2 are so close that they cannot be resolved in the standard 64 bits floating point arithmetic. Up to n41𝑛41n\leq 41italic_n ≤ 41, we use numbers with 128 significant bits. Throughout the library, custom data structures ensure near optimal memory usage, data access and computation times.

The case of the polynomials q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT is interesting because, contrary to the pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, they have multiple roots, which slow down drastically the dynamics of the Newton map. However, our algorithm remains robust in this case. We stopped at the order +n35𝑛35\ell+n\leq 35roman_ℓ + italic_n ≤ 35. The volume of data generated by the roots of all (,n)𝑛(\ell,n)( roman_ℓ , italic_n ) combinations is of the same order of magnitude to that of the roots of all pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT for n39𝑛39n\leq 39italic_n ≤ 39 (see Section 2.4).

Our database and its companion library constitute a powerful numerical microscope whose resolution extends far beyond the current state of the art and that can assist the mathematical community in the exploration of the properties of \mathcal{M}caligraphic_M. While an in-depth analysis will take time, we already present in this first article a few properties, like the minimal distance between the roots of a given type (see Section 6.3.2).

1.2 Structure of this article

Our article is organized as follows. Section §2 contains a brief self-contained introduction to the Mandelbrot set. Section §3 presents a quick review of the most common splitting (or at least root finding) algorithms for polynomials. A detailed presentation of our new algorithm is done in Section §4, along with a general discussion of its algorithmic and bit complexity. As we do not claim full generality, the specifics of working with polynomials tailored to the Mandelbrot set is discussed too. Readers interested in polynomials of high degrees may appreciate, on the side, our improvement of the standard evaluation scheme [AMV22], along with its companion library [FPE].

Section §5 is focused on the question of providing certifiable results. The backbone of this section is a theory of a disk arithmetic, which, contrary to interval arithmetic, tolerates a high number of iterations.

Our implementation [Mandel] is presented in Section §6. We discuss the practical cost of splitting the tera-polynomial p41subscript𝑝41p_{41}italic_p start_POSTSUBSCRIPT 41 end_POSTSUBSCRIPT and confirm, in practice, the complexity claims of Section §4. A listing of the tasks is given in Appendix D.

A proof of our Theorem 2 stated in Section §2 on the factorization of q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT is given in Appendix A. A few background auxiliary mathematical results used in section §5 are recalled very briefly in Appendix B. For the sake of convenience, the notations introduced throughout the article are listed in Appendix C.

1.3 Thanks

We are grateful to Romeo, the HPC center of the University of Reims Champagne-Ardenne, for hosting our project graciously even though its scale (near 50TB of data and 1 century-core / 870 kh of CPU usage for both the development and production phase) is quite substantial for this regional structure.

It is our pleasure to thank our families who supported us in the long (5+ years) and, at times stressful, process that gave birth to the Mandelbrot library. We also thank Sarah Novak for a thorough proof-reading of this article.

2 About the Mandelbrot set

In this section, we will collect the strict minimum on the Mandelbrot set and fix notations that will be needed subsequently. See Appendix C for standard notations.


The Mandelbrot set \mathcal{M}caligraphic_M is composed of the parameters c𝑐c\in\mathbb{C}italic_c ∈ blackboard_C for which the sequence (pn(c))nsubscriptsubscript𝑝𝑛𝑐𝑛(p_{n}(c))_{n\in\mathbb{N}}( italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_c ) ) start_POSTSUBSCRIPT italic_n ∈ blackboard_N end_POSTSUBSCRIPT remains bounded (Figure 1). This sequence is the orbit by iterated compositions of the only critical point z=0𝑧0z=0italic_z = 0 of the map fc(z)=z2+csubscript𝑓𝑐𝑧superscript𝑧2𝑐f_{c}(z)=z^{2}+citalic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_z ) = italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_c, i.e.

n,fcn(0)=fcfcn times(0)=pn(c).formulae-sequencefor-all𝑛superscriptsubscript𝑓𝑐𝑛0n timessubscript𝑓𝑐subscript𝑓𝑐0subscript𝑝𝑛𝑐\forall n\in\mathbb{N},\qquad f_{c}^{n}(0)=\underset{\text{$n$ times}}{% \underbrace{\,f_{c}\circ\ldots\circ f_{c}}}(0)=p_{n}(c).∀ italic_n ∈ blackboard_N , italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ( 0 ) = undern times start_ARG under⏟ start_ARG italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ∘ … ∘ italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_ARG end_ARG ( 0 ) = italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_c ) . (3)

For short, the sequence (pn(c))nsubscriptsubscript𝑝𝑛𝑐𝑛(p_{n}(c))_{n\in\mathbb{N}}( italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_c ) ) start_POSTSUBSCRIPT italic_n ∈ blackboard_N end_POSTSUBSCRIPT is called the critical orbit of fcsubscript𝑓𝑐f_{c}italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT. \mathcal{M}caligraphic_M is a connected set, whose complement in ¯¯\overline{\mathbb{C}}over¯ start_ARG blackboard_C end_ARG is simply connected [DH82], [Sib84]. One has

D(0,2){2}.D022\mathcal{M}\subset\operatorname{D}(0,2)\cup\{-2\}.caligraphic_M ⊂ roman_D ( 0 , 2 ) ∪ { - 2 } .

There are many tools online to explore \mathcal{M}caligraphic_M, both for scientific purposes or just for its intrinsic beauty; see e.g. [Che10] or [Guc].

For c𝑐c\in\mathbb{C}italic_c ∈ blackboard_C, the dynamics of fcsubscript𝑓𝑐f_{c}italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT splits ¯¯\overline{\mathbb{C}}over¯ start_ARG blackboard_C end_ARG in two complementary sets. The Fatou set csubscript𝑐\mathcal{F}_{c}caligraphic_F start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT is the open subset of z¯𝑧¯z\in\overline{\mathbb{C}}italic_z ∈ over¯ start_ARG blackboard_C end_ARG in the neighborhood of which, the sequence (fcn)nsubscriptsuperscriptsubscript𝑓𝑐𝑛𝑛(f_{c}^{n})_{n\in\mathbb{N}}( italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) start_POSTSUBSCRIPT italic_n ∈ blackboard_N end_POSTSUBSCRIPT is a normal family i.e. precompact in the topology of local uniform convergence. On the contrary, on the Julia set 𝒥c=¯\csubscript𝒥𝑐\¯subscript𝑐\mathcal{J}_{c}=\overline{\mathbb{C}}\backslash\mathcal{F}_{c}caligraphic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT = over¯ start_ARG blackboard_C end_ARG \ caligraphic_F start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT, the dynamics appears to be, loosely speaking, chaotic. Both csubscript𝑐\mathcal{F}_{c}caligraphic_F start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT and 𝒥csubscript𝒥𝑐\mathcal{J}_{c}caligraphic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT are fully invariant (i.e. invariant sets of the forward and backwards dynamics) and that c𝑐c\in\mathcal{M}italic_c ∈ caligraphic_M if and only if 𝒥csubscript𝒥𝑐\mathcal{J}_{c}caligraphic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT is connected. For a review of the properties of Fatou and Julia sets, see e.g. [CG93], [Mil90] for polynomial and rational maps and [Ber93], [MPRW22] for entire and meromorphic functions.

2.1 Hyperbolic parameters

For n1𝑛1n\geq 1italic_n ≥ 1, the roots of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT are parameters c𝑐c\in\mathcal{M}italic_c ∈ caligraphic_M, called hyperbolic centers, whose critical orbits are periodic of period n𝑛nitalic_n. The roots of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT are simple [DH82, Buf18] and the polynomial pn(z)subscript𝑝𝑛𝑧p_{n}(z)italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_z ) is divisible by pk(z)subscript𝑝𝑘𝑧p_{k}(z)italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_z ) for any divisor k𝑘kitalic_k of n𝑛nitalic_n. A. Douady and J.H. Hubbard [DH82, DH85] have shown that the hyperbolic centers are interior points of \mathcal{M}caligraphic_M, with at most one hyperbolic center per connected component of the interior. The set of all hyperbolic centers is also dense in the boundary of \mathcal{M}caligraphic_M in the sense that its closure in \mathbb{C}blackboard_C contains \partial\mathcal{M}∂ caligraphic_M.

Let us define the set of hyperbolic centers of order n1𝑛1n\geq 1italic_n ≥ 1 as the subset of pn1(0)superscriptsubscript𝑝𝑛10p_{n}^{-1}(0)italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( 0 ) whose minimal (or fundamental) period is exactly n𝑛nitalic_n; in other terms:

Hyp(n)={zpn1(0)|kDiv(n),pk(z)0}\operatorname{Hyp}(n)=\left\{z\in p_{n}^{-1}(0)\,\big{|}\,\forall k\in% \operatorname{Div}(n)^{\ast},\>p_{k}(z)\neq 0\right\}roman_Hyp ( italic_n ) = { italic_z ∈ italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( 0 ) | ∀ italic_k ∈ roman_Div ( italic_n ) start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT , italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_z ) ≠ 0 } (4)

where Div(n)={k;k,kk=n}Div𝑛formulae-sequence𝑘superscriptformulae-sequencesuperscript𝑘𝑘superscript𝑘𝑛\operatorname{Div}(n)=\{k\in\mathbb{N}^{\ast}\,;\,\exists k^{\prime}\in\mathbb% {N},\enspace\enspace kk^{\prime}=n\}roman_Div ( italic_n ) = { italic_k ∈ blackboard_N start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ; ∃ italic_k start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ blackboard_N , italic_k italic_k start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = italic_n } and Div(n)=Div(n)\{n}\operatorname{Div}(n)^{\ast}=\operatorname{Div}(n)\backslash\{n\}roman_Div ( italic_n ) start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = roman_Div ( italic_n ) \ { italic_n } is the set of strict divisors of n𝑛nitalic_n. For example, Hyp(1)={0}Hyp10\operatorname{Hyp}(1)=\{0\}roman_Hyp ( 1 ) = { 0 } and Hyp(2)={1}Hyp21\operatorname{Hyp}(2)=\{-1\}roman_Hyp ( 2 ) = { - 1 }. The reduced hyperbolic polynomial, also known as Gleason’s polynomial, is:

hn(z)=rHyp(n)(zr).subscript𝑛𝑧subscriptproduct𝑟Hyp𝑛𝑧𝑟h_{n}(z)=\prod\limits_{r\in\operatorname{Hyp}(n)}(z-r).italic_h start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_z ) = ∏ start_POSTSUBSCRIPT italic_r ∈ roman_Hyp ( italic_n ) end_POSTSUBSCRIPT ( italic_z - italic_r ) . (5)

The polynomials pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and hnsubscript𝑛h_{n}italic_h start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT have integer coefficients. While expected, the irreducibility of hnsubscript𝑛h_{n}italic_h start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT over [z]delimited-[]𝑧\mathbb{Z}[z]blackboard_Z [ italic_z ] remains conjectural (see [HT15, last remark of §3], [SS17, p.155]).

Theorem 1 (folklore, included in [HT15]).

The complete factorization of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT is

pn(z)=k|nhk(z).subscript𝑝𝑛𝑧subscriptproductconditional𝑘𝑛subscript𝑘𝑧p_{n}(z)=\prod_{k|n}h_{k}(z).italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_z ) = ∏ start_POSTSUBSCRIPT italic_k | italic_n end_POSTSUBSCRIPT italic_h start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_z ) . (6)

Moreover, the cardinal of Hyp(n)normal-Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n ) is given by

|Hyp(n)|=k|nμ(n/k)2k1Hyp𝑛subscriptconditional𝑘𝑛𝜇𝑛𝑘superscript2𝑘1\left|\operatorname{Hyp}(n)\right|=\sum_{k|n}\mu(n/k)2^{k-1}| roman_Hyp ( italic_n ) | = ∑ start_POSTSUBSCRIPT italic_k | italic_n end_POSTSUBSCRIPT italic_μ ( italic_n / italic_k ) 2 start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT (7)

where μ𝜇\muitalic_μ is the Möbius function, i.e.

μ(n)={(1)νif n is square free and has ν distinct prime factors,0if n is not square free.𝜇𝑛casessuperscript1𝜈if n is square free and has ν distinct prime factors,0if n is not square free.\mu(n)=\begin{cases}(-1)^{\nu}&\text{if $n$ is square free and has $\nu$ % distinct prime factors,}\\ 0&\text{if $n$ is not square free.}\end{cases}italic_μ ( italic_n ) = { start_ROW start_CELL ( - 1 ) start_POSTSUPERSCRIPT italic_ν end_POSTSUPERSCRIPT end_CELL start_CELL if italic_n is square free and has italic_ν distinct prime factors, end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL if italic_n is not square free. end_CELL end_ROW

The notation k|nconditional𝑘𝑛k|nitalic_k | italic_n means kDiv(n)𝑘Div𝑛k\in\operatorname{Div}(n)italic_k ∈ roman_Div ( italic_n ) and |S|𝑆|S|| italic_S | denotes the cardinal of a finite set. The identity (6) is well known and is key in the count of hyperbolic centers. The Online Encyclopedia of Integer Sequences [OEIS] attributes (7) to Warren D. Smith and Robert Munafo (2000), sadly with no published reference. For a more general result that applies to iterated maps of the form zd+csuperscript𝑧𝑑𝑐z^{d}+citalic_z start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT + italic_c, see [HT15].

Refer to caption
Figure 3: The hyperbolic points Hyp(n)Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n ) for n18𝑛18n\leq 18italic_n ≤ 18 in green and the Misiurewicz-Thurston parameters M,n=Mis(,n)subscript𝑀𝑛Mis𝑛M_{\ell,n}=\operatorname{Mis}(\ell,n)italic_M start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT = roman_Mis ( roman_ℓ , italic_n ) with +n16𝑛16\ell+n\leq 16roman_ℓ + italic_n ≤ 16 in red in different parts of the Mandelbrot set \mathcal{M}caligraphic_M, with RecRe𝑐\operatorname{Re}croman_Re italic_c increasing from left to right between images.

2.2 Pre-periodic or Misiurewicz-Thurston parameters

For integers n1𝑛1n\geq 1italic_n ≥ 1 and 22\ell\geq 2roman_ℓ ≥ 2, the roots of q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT are parameters c𝑐c\in\partial\mathcal{M}italic_c ∈ ∂ caligraphic_M, called pre-periodic centers or Misiurewicz-Thurston points, whose critical orbits are pre-periodic, that is it becomes periodic of period n𝑛nitalic_n after the first \ellroman_ℓ steps. For {0,1}01\ell\in\{0,1\}roman_ℓ ∈ { 0 , 1 }, one can check immediately that

q0,n(z)=pn(z)andq1,n(z)=pn2(z).formulae-sequencesubscript𝑞0𝑛𝑧subscript𝑝𝑛𝑧andsubscript𝑞1𝑛𝑧superscriptsubscript𝑝𝑛2𝑧q_{0,n}(z)=p_{n}(z)\qquad\text{and}\qquad q_{1,n}(z)=p_{n}^{2}(z).italic_q start_POSTSUBSCRIPT 0 , italic_n end_POSTSUBSCRIPT ( italic_z ) = italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_z ) and italic_q start_POSTSUBSCRIPT 1 , italic_n end_POSTSUBSCRIPT ( italic_z ) = italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_z ) . (8)

The dynamical reason for the second identity in (8) is that 00 is the only pre-image of c𝑐citalic_c under fcsubscript𝑓𝑐f_{c}italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT so a pre-periodic orbit of type (1,n)1𝑛(1,n)( 1 , italic_n ) starting at zero actually loops back to zero, so is periodic of period n𝑛nitalic_n. The polynomial q,n(z)subscript𝑞𝑛𝑧q_{\ell,n}(z)italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT ( italic_z ) is divisible by q,k(z)subscript𝑞𝑘𝑧q_{\ell,k}(z)italic_q start_POSTSUBSCRIPT roman_ℓ , italic_k end_POSTSUBSCRIPT ( italic_z ) for any divisor k𝑘kitalic_k of n𝑛nitalic_n and by q,n(z)subscript𝑞superscript𝑛𝑧q_{\ell^{\prime},n}(z)italic_q start_POSTSUBSCRIPT roman_ℓ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT , italic_n end_POSTSUBSCRIPT ( italic_z ) for any superscript\ell^{\prime}\leq\ellroman_ℓ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ≤ roman_ℓ. Some of the roots of q,n(z)subscript𝑞𝑛𝑧q_{\ell,n}(z)italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT ( italic_z ) have multiplicity; however, the polynomial

s,n(z)=q,n(z)q1,n(z)[z]subscript𝑠𝑛𝑧subscript𝑞𝑛𝑧subscript𝑞1𝑛𝑧delimited-[]𝑧s_{\ell,n}(z)=\frac{q_{\ell,n}(z)}{q_{\ell-1,n}(z)}\in\mathbb{Z}[z]italic_s start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT ( italic_z ) = divide start_ARG italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT ( italic_z ) end_ARG start_ARG italic_q start_POSTSUBSCRIPT roman_ℓ - 1 , italic_n end_POSTSUBSCRIPT ( italic_z ) end_ARG ∈ blackboard_Z [ italic_z ] (9)

has simple roots [Buf18], [HT15, Lemma 3.1]. Douady-Hubbard [DH82, DH85] have shown that the set of all pre-periodic points is dense in the boundary of \mathcal{M}caligraphic_M. Visually, those points are either branch tips, centers of spirals or points where branches meet (see Figure 3).

By analogy with the hyperbolic case, let us define the set of Misiurewicz points of type (,n)normal-ℓ𝑛(\ell,n)( roman_ℓ , italic_n ) as the subset of q,n1(0)superscriptsubscript𝑞𝑛10q_{\ell,n}^{-1}(0)italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( 0 ) whose dynamical parameters are exactly \ellroman_ℓ and n𝑛nitalic_n; in other terms:

Mis(,n)={zq,n1(0)|q1,n(z)0,kDiv(n),q,k(z)0}.\operatorname{Mis}(\ell,n)=\left\{z\in q_{\ell,n}^{-1}(0)\left|\begin{array}[]% {l}q_{\ell-1,n}(z)\neq 0,\\[3.0pt] \forall k\in\operatorname{Div}(n)^{\ast},\>q_{\ell,k}(z)\neq 0\end{array}% \right.\right\}.roman_Mis ( roman_ℓ , italic_n ) = { italic_z ∈ italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( 0 ) | start_ARRAY start_ROW start_CELL italic_q start_POSTSUBSCRIPT roman_ℓ - 1 , italic_n end_POSTSUBSCRIPT ( italic_z ) ≠ 0 , end_CELL end_ROW start_ROW start_CELL ∀ italic_k ∈ roman_Div ( italic_n ) start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT , italic_q start_POSTSUBSCRIPT roman_ℓ , italic_k end_POSTSUBSCRIPT ( italic_z ) ≠ 0 end_CELL end_ROW end_ARRAY } . (10)

We call +n𝑛\ell+nroman_ℓ + italic_n the order of Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n ) because q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT is a polynomial of degree 2+n1superscript2𝑛12^{\ell+n-1}2 start_POSTSUPERSCRIPT roman_ℓ + italic_n - 1 end_POSTSUPERSCRIPT. The reduced polynomial whose roots are exactly Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n ) is denoted by

m,n(z)=rMis(,n)(zr)[z].subscript𝑚𝑛𝑧subscriptproduct𝑟Mis𝑛𝑧𝑟delimited-[]𝑧m_{\ell,n}(z)=\prod\limits_{r\in\operatorname{Mis}(\ell,n)}(z-r)\in\mathbb{Z}[% z].italic_m start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT ( italic_z ) = ∏ start_POSTSUBSCRIPT italic_r ∈ roman_Mis ( roman_ℓ , italic_n ) end_POSTSUBSCRIPT ( italic_z - italic_r ) ∈ blackboard_Z [ italic_z ] . (11)

Note that Mis(0,n)=Hyp(n)Mis0𝑛Hyp𝑛\operatorname{Mis}(0,n)=\operatorname{Hyp}(n)roman_Mis ( 0 , italic_n ) = roman_Hyp ( italic_n ) and Mis(1,n)=Mis1𝑛\operatorname{Mis}(1,n)=\emptysetroman_Mis ( 1 , italic_n ) = ∅ because of (8). The count of the Misiurewicz points has been established by B. Hutz and A. Towsley [HT15, Cor. 3.3]:

|Mis(,n)|=Φ(,n)|Hyp(n)|Mis𝑛Φ𝑛Hyp𝑛\left|\operatorname{Mis}(\ell,n)\right|=\Phi(\ell,n)\left|\operatorname{Hyp}(n% )\right|| roman_Mis ( roman_ℓ , italic_n ) | = roman_Φ ( roman_ℓ , italic_n ) | roman_Hyp ( italic_n ) | (12)

where

Φ(,n)={1if =0,211if 0 and n|1,21otherwise.Φ𝑛cases1if 0superscript211if conditional0 and 𝑛1superscript21otherwise.\Phi(\ell,n)=\begin{cases}1&\text{if }\ell=0,\\ 2^{\ell-1}-1&\text{if }\ell\neq 0\text{ and }n|\ell-1,\\ 2^{\ell-1}&\text{otherwise.}\end{cases}roman_Φ ( roman_ℓ , italic_n ) = { start_ROW start_CELL 1 end_CELL start_CELL if roman_ℓ = 0 , end_CELL end_ROW start_ROW start_CELL 2 start_POSTSUPERSCRIPT roman_ℓ - 1 end_POSTSUPERSCRIPT - 1 end_CELL start_CELL if roman_ℓ ≠ 0 and italic_n | roman_ℓ - 1 , end_CELL end_ROW start_ROW start_CELL 2 start_POSTSUPERSCRIPT roman_ℓ - 1 end_POSTSUPERSCRIPT end_CELL start_CELL otherwise. end_CELL end_ROW

To get a complete factorization of q,n(z)subscript𝑞𝑛𝑧q_{\ell,n}(z)italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT ( italic_z ) in terms of (5) and (11), one needs to understand the multiplicity of the hyperbolic factors. We claim the following result.

Theorem 2.

For normal-ℓ\ell\in\mathbb{N}roman_ℓ ∈ blackboard_N and n𝑛superscriptnormal-∗n\in\mathbb{N}^{\ast}italic_n ∈ blackboard_N start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT, one has

q,n(z)=k|n(hk(z)η(k)j=2mj,k(z))subscript𝑞𝑛𝑧subscriptproductconditional𝑘𝑛subscript𝑘superscript𝑧subscript𝜂𝑘superscriptsubscriptproduct𝑗2subscript𝑚𝑗𝑘𝑧q_{\ell,n}(z)=\prod_{k|n}\left(h_{k}(z)^{\eta_{\ell}(k)}\prod_{j=2}^{\ell}m_{j% ,k}(z)\right)italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT ( italic_z ) = ∏ start_POSTSUBSCRIPT italic_k | italic_n end_POSTSUBSCRIPT ( italic_h start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_z ) start_POSTSUPERSCRIPT italic_η start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ( italic_k ) end_POSTSUPERSCRIPT ∏ start_POSTSUBSCRIPT italic_j = 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT italic_m start_POSTSUBSCRIPT italic_j , italic_k end_POSTSUBSCRIPT ( italic_z ) ) (13)

where the multiplicity η(k)subscript𝜂normal-ℓ𝑘\eta_{\ell}(k)italic_η start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ( italic_k ) is given by333In (14), the floor function is denoted by x=k𝑥𝑘\lfloor x\rfloor=k⌊ italic_x ⌋ = italic_k if k𝑘k\in\mathbb{Z}italic_k ∈ blackboard_Z and x[k,k+1)𝑥𝑘𝑘1x\in[k,k+1)italic_x ∈ [ italic_k , italic_k + 1 ).

η(k)=1k+2.subscript𝜂𝑘1𝑘2\eta_{\ell}(k)=\left\lfloor\frac{\ell-1}{k}\right\rfloor+2.italic_η start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ( italic_k ) = ⌊ divide start_ARG roman_ℓ - 1 end_ARG start_ARG italic_k end_ARG ⌋ + 2 . (14)

In other words, the roots of q,nsubscript𝑞normal-ℓ𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT are composed of the points Hyp(k)normal-Hyp𝑘\operatorname{Hyp}(k)roman_Hyp ( italic_k ) for any divisor k𝑘kitalic_k of n𝑛nitalic_n, which are roots with multiplicity η(k)subscript𝜂normal-ℓ𝑘\eta_{\ell}(k)italic_η start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ( italic_k ), and of the points Mis(j,k)normal-Mis𝑗𝑘\operatorname{Mis}(j,k)roman_Mis ( italic_j , italic_k ) for 2j2𝑗normal-ℓ2\leq j\leq\ell2 ≤ italic_j ≤ roman_ℓ, which are simple roots.

This result appears to be new. We propose a direct proof in Appendix A.

2.3 Harmonic measure

The sets of all hyperbolic-centers and of all Misiurewicz-Thurston points are respectively denoted by:

Hyp=nHyp(n)andMis=2nMis(,n).formulae-sequenceHypsubscript𝑛superscriptHyp𝑛andMissubscript2𝑛superscriptMis𝑛\operatorname{Hyp}=\bigcup_{n\in\mathbb{N}^{\ast}}\operatorname{Hyp}(n)\subset% \overset{\circ}{\mathcal{M}}\qquad\text{and}\qquad\operatorname{Mis}=\bigcup_{% \begin{subarray}{c}\ell\geq 2\\[1.0pt] n\in\mathbb{N}^{\ast}\end{subarray}}\operatorname{Mis}(\ell,n)\subset\partial% \mathcal{M}.roman_Hyp = ⋃ start_POSTSUBSCRIPT italic_n ∈ blackboard_N start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT roman_Hyp ( italic_n ) ⊂ over∘ start_ARG caligraphic_M end_ARG and roman_Mis = ⋃ start_POSTSUBSCRIPT start_ARG start_ROW start_CELL roman_ℓ ≥ 2 end_CELL end_ROW start_ROW start_CELL italic_n ∈ blackboard_N start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG end_POSTSUBSCRIPT roman_Mis ( roman_ℓ , italic_n ) ⊂ ∂ caligraphic_M .

As mentioned above, Mis¯=Hyp¯¯Mis¯Hyp\overline{\operatorname{Mis}}=\partial\mathcal{M}\subset\overline{% \operatorname{Hyp}}over¯ start_ARG roman_Mis end_ARG = ∂ caligraphic_M ⊂ over¯ start_ARG roman_Hyp end_ARG. The density measures of HypHyp\operatorname{Hyp}roman_Hyp and MisMis\operatorname{Mis}roman_Mis (i.e. the limit of the uniform counting measure on finite subsets of increasing order) both coincide with the harmonic measure for (c)superscript𝑐\partial(\mathcal{M}^{c})∂ ( caligraphic_M start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT ), which is the image of the uniform measure on the unit circle under the Riemann map D(0,1)cc𝐷superscript01𝑐superscript𝑐D(0,1)^{c}\to\mathcal{M}^{c}italic_D ( 0 , 1 ) start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT → caligraphic_M start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT. Intuitively, the harmonic measure expresses the asymptotic density of the external rays as they land on the boundary of the Mandelbrot set. The support of the harmonic measure is the only subset of \partial\mathcal{M}∂ caligraphic_M that is “visible” to a random brownian motion starting at \infty and is of Hausdorff dimension 1. For further details, see [Mak85], [Lev90], [BS05], [FG15], [GV17], [GV19] and Remark 7 below.

2.4 Scale of the computational challenge

Using the library [Mandel] associated with this article, we have completely determined the sets Hyp(n)Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n ) for all n41𝑛41n\leq 41italic_n ≤ 41 and Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n ) for +n35𝑛35\ell+n\leq 35roman_ℓ + italic_n ≤ 35. Both problems consists in solving polynomial equations, namely (1) or (2), of respective degrees 2n1superscript2𝑛12^{n-1}2 start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT or 2+n1superscript2𝑛12^{\ell+n-1}2 start_POSTSUPERSCRIPT roman_ℓ + italic_n - 1 end_POSTSUPERSCRIPT. Overall, we have sifted through about 3.3×10123.3superscript10123.3\times 10^{12}3.3 × 10 start_POSTSUPERSCRIPT 12 end_POSTSUPERSCRIPT polynomial roots and identified 2 725 023 424 66227250234246622\,725\,023\,424\,6622 725 023 424 662 distinct parameters of the Mandelbrot set. About 80% of them are hyperbolic centers.

The tera-polynomial p41subscript𝑝41p_{41}italic_p start_POSTSUBSCRIPT 41 end_POSTSUBSCRIPT has degree 1 099 511 627 77610995116277761\,099\,511\,627\,7761 099 511 627 776 and, as 41414141 is a prime number,

p411(0)=Hyp(41){0}.superscriptsubscript𝑝4110Hyp410p_{41}^{-1}(0)=\operatorname{Hyp}(41)\cup\{0\}.italic_p start_POSTSUBSCRIPT 41 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( 0 ) = roman_Hyp ( 41 ) ∪ { 0 } .

More generally, the deflation of Hyp(n)Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n ) due to strict divisors of n𝑛nitalic_n constitutes an asymptotically negligible subset of the roots of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT.

The situation is not exactly the same for Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n ). There are 33333333 non-hyperbolic pre-periodic polynomials q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT of order +n=35𝑛35\ell+n=35roman_ℓ + italic_n = 35, each of degree 17 179 869 1841717986918417\,179\,869\,18417 179 869 184. However, the exact count 271 590 481 057271590481057271\,590\,481\,057271 590 481 057 of Mis(,n)Mis𝑛\bigcup\operatorname{Mis}(\ell,n)⋃ roman_Mis ( roman_ℓ , italic_n ) for all types of order 35 represents only 47.9%percent47.947.9\%47.9 % of the total number of roots of those polynomials. More generally, (12) ensures that, for large N𝑁Nitalic_N:

+n=N0|Mis(,n)|N22|Hyp(N)|.similar-to-or-equalssubscript𝑛𝑁0Mis𝑛𝑁22Hyp𝑁\sum_{\begin{subarray}{c}\ell+n=N\\ \ell\neq 0\end{subarray}}|\operatorname{Mis}(\ell,n)|\simeq\frac{N-2}{2}\>|% \operatorname{Hyp}(N)|.∑ start_POSTSUBSCRIPT start_ARG start_ROW start_CELL roman_ℓ + italic_n = italic_N end_CELL end_ROW start_ROW start_CELL roman_ℓ ≠ 0 end_CELL end_ROW end_ARG end_POSTSUBSCRIPT | roman_Mis ( roman_ℓ , italic_n ) | ≃ divide start_ARG italic_N - 2 end_ARG start_ARG 2 end_ARG | roman_Hyp ( italic_N ) | .

The deflation of Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n ) due to divisors is therefore, asymptotically, 50% as +n𝑛\ell+n\to\inftyroman_ℓ + italic_n → ∞.

To convey a sense of the orders of magnitude involved for storing and processing the roots of polynomials of giga- and tera-scale, let us underline that a computation that takes, on average, only 1 milli-second per root requires about 12121212 days-core for a polynomial of degree 109superscript10910^{9}10 start_POSTSUPERSCRIPT 9 end_POSTSUPERSCRIPT. This requirement jumps to 32323232 years-core (280similar-toabsent280\sim 280∼ 280k hours-core) for a polynomial of degree 1012superscript101210^{12}10 start_POSTSUPERSCRIPT 12 end_POSTSUPERSCRIPT.

Our actual computation times are discussed in Section §6. The success of our entreprise is due to the efficiency of our new splitting algorithm for pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT (see Section 4), which is bounded by O(dlogd)𝑂𝑑𝑑O(d\log d)italic_O ( italic_d roman_log italic_d ) and runs as O(d)𝑂𝑑O(d)italic_O ( italic_d ) in practice.

3 A brief review of root finding algorithms

In the rest of the article, one will assume that P[z]𝑃delimited-[]𝑧P\in\mathbb{C}[z]italic_P ∈ blackboard_C [ italic_z ] is a polynomial of degree d=degP1𝑑degree𝑃1d=\deg P\geq 1italic_d = roman_deg italic_P ≥ 1 and that its roots 𝒵=P1(0)𝒵superscript𝑃10\mathcal{Z}=P^{-1}(0)caligraphic_Z = italic_P start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( 0 ) are localized in the disk D(0,r)D0𝑟\operatorname{D}(0,r)roman_D ( 0 , italic_r ). See Theorem 10 in Appendix B to estimate r𝑟ritalic_r from the coefficients of P𝑃Pitalic_P.


A splitting algorithm is an algorithm that provides the list of all the roots of P𝑃Pitalic_P through convergent numerical approximations. Splitting algorithms can be classified in three broad families: methods based on Newton’s iterations, root isolation methods and eigenvalue methods. Let us review them briefly.


We denote by VdsubscriptV𝑑\operatorname{V}_{d}roman_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT the arithmetic complexity of evaluating a polynomial of degree d𝑑ditalic_d. Horner’s method ensures that, in general, Vd=O(d)subscriptV𝑑𝑂𝑑\operatorname{V}_{d}=O(d)roman_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT = italic_O ( italic_d ) when the coefficients are known. Some evaluation schemes offer a similar complexity with better balanced intermediary computations, like Estrin’s method, which is implemented in the Flint library [FLINT], or some variants [Mor13]. Other schemes take advantage of multipoint evaluations (see e.g. [KS16]). In a separate article [AMV22], we propose a Fast Polynomial Evaluator algorithm and its practical implementation [FPE] that brings the average cost of evaluating real and complex polynomials with a fixed precision down to Vd=O(dlogd)subscriptV𝑑𝑂𝑑𝑑\operatorname{V}_{d}=O(\sqrt{d\log d})roman_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT = italic_O ( square-root start_ARG italic_d roman_log italic_d end_ARG ) after a preprocessing phase that can be performed independently of the precision444In the pre-processing phase of the FPE algorithm, only the integer part of the base-2 logarithm of the coefficients is needed. and that costs O(dlogd)𝑂𝑑𝑑O(d\log d)italic_O ( italic_d roman_log italic_d ).

For iteratively defined polynomials (e.g. for pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, which is of degree d=2n1𝑑superscript2𝑛1d=2^{n-1}italic_d = 2 start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT), one obviously has Vd=O(log2d)subscriptV𝑑𝑂subscript2𝑑\operatorname{V}_{d}=O(\log_{2}d)roman_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT = italic_O ( roman_log start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_d ). To keep comparisons fair between algorithms, we will therefore explicitly factor out the cost of evaluations whenever possible.

Remark 1.

If a polynomial P𝑃Pitalic_P has simple roots, the computational cost of checking that a sorted list of numbers is indeed a list of all the roots of P𝑃Pitalic_P is O(dVd)𝑂𝑑subscriptnormal-V𝑑O(d\operatorname{V}_{d})italic_O ( italic_d roman_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ). To check that a root z𝑧zitalic_z is of multiplicity k𝑘kitalic_k, one computes P(z)𝑃𝑧P(z)italic_P ( italic_z ), P(z)superscript𝑃normal-′𝑧P^{\prime}(z)italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z ), …, P(k1)(z)superscript𝑃𝑘1𝑧P^{(k-1)}(z)italic_P start_POSTSUPERSCRIPT ( italic_k - 1 ) end_POSTSUPERSCRIPT ( italic_z ) instead of computing k𝑘kitalic_k distinct values of P𝑃Pitalic_P so the contribution to the total cost remains of order kVd𝑘subscriptnormal-V𝑑k\operatorname{V}_{d}italic_k roman_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT provided that each derivative can also be evaluated in time O(Vd)𝑂subscriptnormal-V𝑑O(\operatorname{V}_{d})italic_O ( roman_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ). The cost of checking roots thus remains O(dVd)𝑂𝑑subscriptnormal-V𝑑O(d\operatorname{V}_{d})italic_O ( italic_d roman_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ).

3.1 A word on numerical instabilities

A naive splitting algorithm consists in finding a root of P𝑃Pitalic_P by any available method, and then reduce the degree of P𝑃Pitalic_P by performing a euclidian division.


In practice, this method is plagued by numerical instabilities, illustrated on Wilkinson’s polynomial [Wil84]

W20(x)=n=120(xn)subscript𝑊20𝑥superscriptsubscriptproduct𝑛120𝑥𝑛W_{20}(x)=\prod_{n=1}^{20}(x-n)italic_W start_POSTSUBSCRIPT 20 end_POSTSUBSCRIPT ( italic_x ) = ∏ start_POSTSUBSCRIPT italic_n = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 20 end_POSTSUPERSCRIPT ( italic_x - italic_n )

whose largest root is 2019superscript201920^{19}20 start_POSTSUPERSCRIPT 19 end_POSTSUPERSCRIPT times less stable than its smallest root when the coefficients are perturbed in the canonical basis (though other basis may behave better). In general, determining the roots of a polynomial from the list of its coefficients is a highly ill-conditioned problem.

Consequently, for very large polynomials, computing the coefficients is not always advisable. For example, as p3(z)=z4+2z3+z2+zsubscript𝑝3𝑧superscript𝑧42superscript𝑧3superscript𝑧2𝑧p_{3}(z)=z^{4}+2z^{3}+z^{2}+zitalic_p start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( italic_z ) = italic_z start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT + 2 italic_z start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT + italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_z, the largest coefficient of pn(z)subscript𝑝𝑛𝑧p_{n}(z)italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_z ) for n3𝑛3n\geq 3italic_n ≥ 3 exceeds 22n3superscript2superscript2𝑛32^{2^{n-3}}2 start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_n - 3 end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT while the smallest one remains 1111. Storing the coefficients of p41(z)subscript𝑝41𝑧p_{41}(z)italic_p start_POSTSUBSCRIPT 41 end_POSTSUBSCRIPT ( italic_z ) exactly is, at best, impractical and any reasonable approximation of those coefficients would not be sufficiently precise to compute the roots accurately.

3.2 Root isolation methods

Bracketing (or root isolation) consists in identifying an interval of the real line or a domain of the complex plane where the number of roots of P𝑃Pitalic_P is prescribed.


Methods based on this principle are usually developed on the real line where they constitute a textbook application of the intermediary value theorem (bisection method, or the more involved ITP method).

In the complex plane, the splitting circle method and the Lehmer–Schur algorithm are based on the residue theorem, which implies that, for all n𝑛n\in\mathbb{N}italic_n ∈ blackboard_N

zΩP(z)=0mP(z)zn=12iπΩP(z)P(z)zn𝑑zsubscript𝑧Ω𝑃𝑧0subscript𝑚𝑃𝑧superscript𝑧𝑛12𝑖𝜋subscriptΩsuperscript𝑃𝑧𝑃𝑧superscript𝑧𝑛differential-d𝑧\sum_{\begin{subarray}{c}z\in\Omega\\[2.0pt] P(z)=0\end{subarray}}m_{P}(z)z^{n}=\frac{1}{2i\pi}\int_{\partial\Omega}\frac{P% ^{\prime}(z)}{P(z)}z^{n}dz∑ start_POSTSUBSCRIPT start_ARG start_ROW start_CELL italic_z ∈ roman_Ω end_CELL end_ROW start_ROW start_CELL italic_P ( italic_z ) = 0 end_CELL end_ROW end_ARG end_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ( italic_z ) italic_z start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT = divide start_ARG 1 end_ARG start_ARG 2 italic_i italic_π end_ARG ∫ start_POSTSUBSCRIPT ∂ roman_Ω end_POSTSUBSCRIPT divide start_ARG italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z ) end_ARG start_ARG italic_P ( italic_z ) end_ARG italic_z start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT italic_d italic_z

for any smooth domain ΩΩ\Omegaroman_Ω whose boundary avoids the zeros of P𝑃Pitalic_P and where mP(z)subscript𝑚𝑃𝑧m_{P}(z)italic_m start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ( italic_z ) denotes the multiplicity of z𝑧zitalic_z as a root of P𝑃Pitalic_P. Successive refinements of ΩΩ\Omegaroman_Ω will either isolate single roots or clusters of close roots that can be identified using Newton’s identities. Aside from the cost of computing the integral to a sufficient precision, those methods are plagued by the geometrical problem of finding a “good” circle, i.e. one which is proper to initiate a sequence of divide and conquer iterations.

Of similar nature is Graeffe’s method, where the sequence

Pn+1(z2)=(1)dPn(z)Pn(z)subscript𝑃𝑛1superscript𝑧2superscript1𝑑subscript𝑃𝑛𝑧subscript𝑃𝑛𝑧P_{n+1}(z^{2})=(-1)^{d}P_{n}(z)P_{n}(-z)italic_P start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ( italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) = ( - 1 ) start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT italic_P start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_z ) italic_P start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( - italic_z )

is computed from P1=Psubscript𝑃1𝑃P_{1}=Pitalic_P start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_P. The roots of Pnsubscript𝑃𝑛P_{n}italic_P start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT are {z2n;P(z)=0}superscript𝑧superscript2𝑛𝑃𝑧0\{z^{2^{n}}\,;\,P(z)=0\}{ italic_z start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT ; italic_P ( italic_z ) = 0 } and are thus, generically, exponentially separated from each other. In that case Vieta’s formulas can easily be inverted approximately, which gives the roots of Pnsubscript𝑃𝑛P_{n}italic_P start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and ultimately, those of P𝑃Pitalic_P.


Root isolation methods excel in finding roots of a given polynomial, but they are not a splitting algorithms per se. We will not insist on comparing their complexity.

Our algorithm (see §4 below) presents a strong familiarity with the splitting circle method: the level lines that we will use provide a tight enclosure of the roots of P𝑃Pitalic_P by a Jordan curve. Tighter level sets would enclose the roots in a finite union of disjointed connected sets (see Figures 2 and 6).

3.3 Eigenvalue algorithms

Splitting a polynomial P𝑃Pitalic_P can always be restated as the question of finding all the eigenvalues of the companion matrix APd()subscript𝐴𝑃subscript𝑑A_{P}\in\mathcal{M}_{d}(\mathbb{C})italic_A start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ∈ caligraphic_M start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( blackboard_C ), at least provided that the coefficients of P𝑃Pitalic_P are known.

AP=(01000010001c0c1cn1)ifP(x)=xnk=0n1ckxk.formulae-sequencesubscript𝐴𝑃matrix0100001missing-subexpression0001subscript𝑐0subscript𝑐1subscript𝑐𝑛1if𝑃𝑥superscript𝑥𝑛superscriptsubscript𝑘0𝑛1subscript𝑐𝑘superscript𝑥𝑘A_{P}=\begin{pmatrix}0&1&0&\ldots&0\\ 0&0&1&\ddots&\vdots\\ \vdots&&\ddots&\ddots&0\\ 0&\cdots&\cdots&0&1\\ c_{0}&c_{1}&\cdots&\cdots&c_{n-1}\end{pmatrix}\qquad\text{if}\qquad P(x)=x^{n}% -\sum_{k=0}^{n-1}c_{k}x^{k}.italic_A start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT = ( start_ARG start_ROW start_CELL 0 end_CELL start_CELL 1 end_CELL start_CELL 0 end_CELL start_CELL … end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 1 end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL end_CELL start_CELL ⋱ end_CELL start_CELL ⋱ end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL ⋯ end_CELL start_CELL ⋯ end_CELL start_CELL 0 end_CELL start_CELL 1 end_CELL end_ROW start_ROW start_CELL italic_c start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL start_CELL italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL ⋯ end_CELL start_CELL ⋯ end_CELL start_CELL italic_c start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ) if italic_P ( italic_x ) = italic_x start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT - ∑ start_POSTSUBSCRIPT italic_k = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT italic_c start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_x start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT .

The vector (1,x,x2,,xn1)1𝑥superscript𝑥2superscript𝑥𝑛1(1,x,x^{2},\ldots,x^{n-1})( 1 , italic_x , italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , … , italic_x start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT ) is an eigenvector of APsubscript𝐴𝑃A_{P}italic_A start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT if and only if P(x)=0𝑃𝑥0P(x)=0italic_P ( italic_x ) = 0.


The complexity of eigenvalue algorithms usually depends on the structure of the matrix under consideration. For example, the modern version of the QR algorithm for Hessenberg matrices555A Hessenberg matrix has zero entries above the first superdiagonal, which is the case for APsubscript𝐴𝑃A_{P}italic_A start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT. costs O(d2)𝑂superscript𝑑2O(d^{2})italic_O ( italic_d start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) per iteration [BDG04], [CGXZ07]. The sequence starts with A0=Asubscript𝐴0𝐴A_{0}=Aitalic_A start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_A, the matrix whose spectrum is being computed. The principle of each step consists in an orthogonal similarity transform Ak+1=QkTAkQksubscript𝐴𝑘1superscriptsubscript𝑄𝑘𝑇subscript𝐴𝑘subscript𝑄𝑘A_{k+1}=Q_{k}^{T}A_{k}Q_{k}italic_A start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT = italic_Q start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_A start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_Q start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT where

Ak=QkRkwith{Qk orthogonalRk upper triangularsubscript𝐴𝑘subscript𝑄𝑘subscript𝑅𝑘withcasessubscript𝑄𝑘 orthogonal𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒subscript𝑅𝑘 upper triangular𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒A_{k}=Q_{k}R_{k}\quad\text{with}\quad\begin{cases}Q_{k}\text{ orthogonal}\\ R_{k}\text{ upper triangular}\end{cases}italic_A start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_Q start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_R start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT with { start_ROW start_CELL italic_Q start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT orthogonal end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL italic_R start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT upper triangular end_CELL start_CELL end_CELL end_ROW

As QkTQk=Isuperscriptsubscript𝑄𝑘𝑇subscript𝑄𝑘𝐼Q_{k}^{T}Q_{k}=Iitalic_Q start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_Q start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_I, it boils down to computing Qksubscript𝑄𝑘Q_{k}italic_Q start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, Rksubscript𝑅𝑘R_{k}italic_R start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT and then forming Ak+1=RkQksubscript𝐴𝑘1subscript𝑅𝑘subscript𝑄𝑘A_{k+1}=R_{k}Q_{k}italic_A start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT = italic_R start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_Q start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT. The number of iterations used in practice until Aksubscript𝐴𝑘A_{k}italic_A start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT reaches the Schur form of A𝐴Aitalic_A (upper triangular) may be O(d)𝑂𝑑O(d)italic_O ( italic_d ) or higher. Companion matrices belong to the Hessenberg class, so, as a splitting algorithm, the QR method costs at least O(d3)𝑂superscript𝑑3O(d^{3})italic_O ( italic_d start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ).

Note that the polynomial P𝑃Pitalic_P is not explicitly evaluated here, so the factor VdsubscriptV𝑑\operatorname{V}_{d}roman_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT is not included in the arithmetic complexity. However, it appears implicitly in each step as a cost of matrices operations.

Remark 2.

Many applications that require polynomial splitting arise naturally as an eigenvalue problem. For example, in structural mechanics, the asymptotic stability analysis of an engineering design calls for the determination of the spectrum of some PDE operator, which can be approximated by a large band-limited finite-elements matrix. Most linear algebra algorithms are tailored for the needs of the specific applications, like finding the extreme eigenvalues or their distribution [ACE09], or determining the eigenvectors. They do not always constitute proper splitting algorithms, even though they can occasionnaly be repurposed as such.

3.4 Newton’s iterations

The core of many iterative splitting algorithms are Newton’s iterations:

zn+1=NP(zn)whereNP(z)=zP(z)P(z)z_{n+1}=N_{P}(z_{n})\qquad\text{where}\qquad N_{P}(z)=z-\frac{P(z)}{P^{\prime}% (z)}\cdotpitalic_z start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT = italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ( italic_z start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) where italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ( italic_z ) = italic_z - divide start_ARG italic_P ( italic_z ) end_ARG start_ARG italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z ) end_ARG ⋅ (15)

The fixed points of the dynamics of NPsubscript𝑁𝑃N_{P}italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT are the roots of P𝑃Pitalic_P.

In the vicinity of each simple root, this method converges bi-exponentially. More precisely, if z=limznsubscript𝑧subscript𝑧𝑛z_{\ast}=\lim z_{n}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT = roman_lim italic_z start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT with P(z)0superscript𝑃subscript𝑧0P^{\prime}(z_{\ast})\neq 0italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ) ≠ 0, Taylor’s formula for P𝑃Pitalic_P can be rewritten

zn+1z=(znz)2P(zn)01(1t)P′′(tz+(1t)zn)𝑑t.subscript𝑧𝑛1subscript𝑧superscriptsubscript𝑧𝑛subscript𝑧2superscript𝑃subscript𝑧𝑛superscriptsubscript011𝑡superscript𝑃′′𝑡subscript𝑧1𝑡subscript𝑧𝑛differential-d𝑡z_{n+1}-z_{\ast}=\frac{(z_{n}-z_{\ast})^{2}}{P^{\prime}(z_{n})}\int_{0}^{1}(1-% t)P^{\prime\prime}(tz_{\ast}+(1-t)z_{n})dt.italic_z start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT - italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT = divide start_ARG ( italic_z start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT - italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG start_ARG italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) end_ARG ∫ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT ( 1 - italic_t ) italic_P start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT ( italic_t italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT + ( 1 - italic_t ) italic_z start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) italic_d italic_t .

For ρ>0𝜌0\rho>0italic_ρ > 0, one defines Cρ=12sup|P′′(z)|/inf|P(z)|subscript𝐶𝜌12supremumsuperscript𝑃′′𝑧infimumsuperscript𝑃𝑧C_{\rho}=\frac{1}{2}\sup|P^{\prime\prime}(z)|/\inf|P^{\prime}(z)|italic_C start_POSTSUBSCRIPT italic_ρ end_POSTSUBSCRIPT = divide start_ARG 1 end_ARG start_ARG 2 end_ARG roman_sup | italic_P start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT ( italic_z ) | / roman_inf | italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z ) |, each extremum being computed for zD(z,ρ)𝑧Dsubscript𝑧𝜌z\in\operatorname{D}(z_{\ast},\rho)italic_z ∈ roman_D ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT , italic_ρ ). One can always assume that ρCρ<1𝜌subscript𝐶𝜌1\rho C_{\rho}<1italic_ρ italic_C start_POSTSUBSCRIPT italic_ρ end_POSTSUBSCRIPT < 1 because Cρ12|P′′(z)P(z)|+subscript𝐶𝜌12superscript𝑃′′subscript𝑧superscript𝑃subscript𝑧subscriptC_{\rho}\to\frac{1}{2}\left|\frac{P^{\prime\prime}(z_{\ast})}{P^{\prime}(z_{% \ast})}\right|\in\mathbb{R}_{+}italic_C start_POSTSUBSCRIPT italic_ρ end_POSTSUBSCRIPT → divide start_ARG 1 end_ARG start_ARG 2 end_ARG | divide start_ARG italic_P start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ) end_ARG start_ARG italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ) end_ARG | ∈ blackboard_R start_POSTSUBSCRIPT + end_POSTSUBSCRIPT as ρ0𝜌0\rho\to 0italic_ρ → 0, so ρCρ0𝜌subscript𝐶𝜌0\rho C_{\rho}\to 0italic_ρ italic_C start_POSTSUBSCRIPT italic_ρ end_POSTSUBSCRIPT → 0. In that case, if zn0D(z,ρ)subscript𝑧subscript𝑛0Dsubscript𝑧𝜌z_{n_{0}}\in\operatorname{D}(z_{\ast},\rho)italic_z start_POSTSUBSCRIPT italic_n start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ∈ roman_D ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT , italic_ρ ) then

nn0,|zn+1z|Cρ|znz|2i.e.|znz|Cρ1(ρCρ)2nn0.formulae-sequencefor-all𝑛subscript𝑛0formulae-sequencesubscript𝑧𝑛1subscript𝑧subscript𝐶𝜌superscriptsubscript𝑧𝑛subscript𝑧2i.e.subscript𝑧𝑛subscript𝑧superscriptsubscript𝐶𝜌1superscript𝜌subscript𝐶𝜌superscript2𝑛subscript𝑛0\forall n\geq n_{0},\quad|z_{n+1}-z_{\ast}|\leq C_{\rho}|z_{n}-z_{\ast}|^{2}% \quad\textit{i.e.}\leavevmode\nobreak\ \quad|z_{n}-z_{\ast}|\leq C_{\rho}^{-1}% (\rho C_{\rho})^{2^{n-n_{0}}}.∀ italic_n ≥ italic_n start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , | italic_z start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT - italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT | ≤ italic_C start_POSTSUBSCRIPT italic_ρ end_POSTSUBSCRIPT | italic_z start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT - italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT | start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT i.e. | italic_z start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT - italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT | ≤ italic_C start_POSTSUBSCRIPT italic_ρ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_ρ italic_C start_POSTSUBSCRIPT italic_ρ end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_n - italic_n start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT . (16)

When the root zsubscript𝑧z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT is of multiplicity μ2𝜇2\mu\geq 2italic_μ ≥ 2, then the convergence of Newton’s algorithm is only exponential. Indeed, one has

NP(z)=P(z)P′′(z)P(z)2zz11μ[12,1)superscriptsubscript𝑁𝑃𝑧𝑃𝑧superscript𝑃′′𝑧superscript𝑃superscript𝑧2𝑧subscript𝑧11𝜇121N_{P}^{\prime}(z)=\frac{P(z)P^{\prime\prime}(z)}{P^{\prime}(z)^{2}}\underset{z% \to z_{\ast}}{\longrightarrow}1-\frac{1}{\mu}\in\left[\textstyle{\frac{1}{2}},% 1\right)italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z ) = divide start_ARG italic_P ( italic_z ) italic_P start_POSTSUPERSCRIPT ′ ′ end_POSTSUPERSCRIPT ( italic_z ) end_ARG start_ARG italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG start_UNDERACCENT italic_z → italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT end_UNDERACCENT start_ARG ⟶ end_ARG 1 - divide start_ARG 1 end_ARG start_ARG italic_μ end_ARG ∈ [ divide start_ARG 1 end_ARG start_ARG 2 end_ARG , 1 )

so for any z0subscript𝑧0z_{0}italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT in the bassin of attraction

𝒜(z)={z;limnNPn(z)=z}𝒜subscript𝑧formulae-sequence𝑧subscript𝑛superscriptsubscript𝑁𝑃𝑛𝑧subscript𝑧\operatorname{\mathcal{A}}(z_{\ast})=\{z\in\mathbb{C}\,;\,\lim_{n\to\infty}N_{% P}^{n}(z)=z_{\ast}\}caligraphic_A ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ) = { italic_z ∈ blackboard_C ; roman_lim start_POSTSUBSCRIPT italic_n → ∞ end_POSTSUBSCRIPT italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ( italic_z ) = italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT }

the estimate (16) is replaced, using Taylor’s formula for NPsubscript𝑁𝑃N_{P}italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT, by

zn+1zznz11μ\frac{z_{n+1}-z_{\ast}}{z_{n}-z_{\ast}}\to 1-\frac{1}{\mu}\cdotpdivide start_ARG italic_z start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT - italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT end_ARG start_ARG italic_z start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT - italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT end_ARG → 1 - divide start_ARG 1 end_ARG start_ARG italic_μ end_ARG ⋅ (17)

In that case, the accelerated scheme

zn+1=znμP(zn)P(zn)superscriptsubscript𝑧𝑛1superscriptsubscript𝑧𝑛𝜇𝑃superscriptsubscript𝑧𝑛superscript𝑃superscriptsubscript𝑧𝑛z_{n+1}^{\prime}=z_{n}^{\prime}-\mu\cdot\frac{P(z_{n}^{\prime})}{P^{\prime}(z_% {n}^{\prime})}italic_z start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = italic_z start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT - italic_μ ⋅ divide start_ARG italic_P ( italic_z start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) end_ARG start_ARG italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) end_ARG (18)

could be used instead to restore an ultimately bi-exponential behavior in the vicinity of multiple roots. In practice, however, μ𝜇\muitalic_μ may be unknown and, even if it was known, this accelerator will completely destroy the attraction bassins of the simple roots, as illustrated on Figure 4. A better accelerator may be König’s method [BH03] that replaces P/P𝑃superscript𝑃P/P^{\prime}italic_P / italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT in (15) by ratios of consecutive higher-order derivatives of 1/P1𝑃1/P1 / italic_P.

Refer to caption
Figure 4: Attraction bassins and Julia set of the Newton method (left) and of the accelerated method with μ=2𝜇2\mu=2italic_μ = 2 (right) for P(z)=(z1)2(z+1)(z2+1)𝑃𝑧superscript𝑧12𝑧1superscript𝑧21P(z)=(z-1)^{2}(z+1)(z^{2}+1)italic_P ( italic_z ) = ( italic_z - 1 ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_z + 1 ) ( italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + 1 ).

The so called, quasi-Newton variants (Muller, Steffensen) avoid computing the derivative for numerical purposes, in particular if the method is applied to a general function whose derivative is not known or not easily computable. A typical example is the secant method. Another class of quasi-Newton methods involve higher-order derivatives (Halley, Householder, Laguerre, Jenkins-Traub,…): they give a higher-order of convergence in exchange for a tighter requirement on the smoothness of the function and higher-order norms in the estimates. See e.g. [Cam19] for a parallel implementation of Laguerre’s method.


Transforming Newton’s method into a splitting algorithm requires choosing a set of starting points for which the dynamics will visit every root. The naive approach of findind one root at a time and factoring it out is both unpractical and numerically unstable (see §3.1). Choosing starting points at random may miss some roots entirely.

For a given z0subscript𝑧0z_{0}\in\mathbb{C}italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ∈ blackboard_C for which the sequence converges to zsubscript𝑧z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT, the number of steps required before the sequence enters the bi-exponential regime i.e. min{n;znD(z,ρ)}𝑛subscript𝑧𝑛Dsubscript𝑧𝜌\min\{n\,;\,z_{n}\in\operatorname{D}(z_{\ast},\rho)\}roman_min { italic_n ; italic_z start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ∈ roman_D ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT , italic_ρ ) } with ρ𝜌\rhoitalic_ρ as in (16) may be astronomical. Occasional wild excursions from the vicinity of critical points of P𝑃Pitalic_P towards \infty are not the main problem: those trajectories are easily identified and abandoned. The less understood regime happens when the sequence crosses the mid-range D(0,r)\D(z,ρ)\D0𝑟Dsubscript𝑧𝜌\operatorname{D}(0,r)\backslash\operatorname{D}(z_{\ast},\rho)roman_D ( 0 , italic_r ) \ roman_D ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT , italic_ρ ) where the sequence may almost stall if the Newton’s bassin forms a narrow gorge, as described in [HSS01]; see also Figure 2. Any theoretical advance on this matter like [BAS16] are of interest to improve the bounds on the complexity of Newton’s method as a global splitting algorithm.

The stoping criterion is another critical issue: P. Henrici [Hen74, Chap. 6] states that one may stop the Newton method when its steps get smaller then ε/d𝜀𝑑\varepsilon/ditalic_ε / italic_d where ε𝜀\varepsilonitalic_ε is the precision sought after, in which case the proximity of a root can be proved. In our algorithm, we stopped much earlier and relied instead on an a-posteriori analysis, performed in a higher precision and using disk arithmetic to prove that the sequence has entered the quadratic convergence region (see §5).


Aberth-Ehrlich method [Abe73] is a generalisation of Newton’s method. It attempts to find all the roots simultaneously by computing a fixed point for zn=(zn,j)dsubscript𝑧𝑛subscript𝑧𝑛𝑗superscript𝑑z_{n}=(z_{n,j})\in\mathbb{C}^{d}italic_z start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = ( italic_z start_POSTSUBSCRIPT italic_n , italic_j end_POSTSUBSCRIPT ) ∈ blackboard_C start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT :

zn+1,j=zn,j1P(zn,j)P(zn,j)kj1zn,jzn,kz_{n+1,j}=z_{n,j}-\frac{1}{\frac{P^{\prime}(z_{n,j})}{P(z_{n,j})}-\sum\limits_% {k\neq j}\frac{1}{z_{n,j}-z_{n,k}}}\cdotpitalic_z start_POSTSUBSCRIPT italic_n + 1 , italic_j end_POSTSUBSCRIPT = italic_z start_POSTSUBSCRIPT italic_n , italic_j end_POSTSUBSCRIPT - divide start_ARG 1 end_ARG start_ARG divide start_ARG italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z start_POSTSUBSCRIPT italic_n , italic_j end_POSTSUBSCRIPT ) end_ARG start_ARG italic_P ( italic_z start_POSTSUBSCRIPT italic_n , italic_j end_POSTSUBSCRIPT ) end_ARG - ∑ start_POSTSUBSCRIPT italic_k ≠ italic_j end_POSTSUBSCRIPT divide start_ARG 1 end_ARG start_ARG italic_z start_POSTSUBSCRIPT italic_n , italic_j end_POSTSUBSCRIPT - italic_z start_POSTSUBSCRIPT italic_n , italic_k end_POSTSUBSCRIPT end_ARG end_ARG ⋅

The idea is that each root repels the others with an electrostatic potential, which prevents the Newton’s dynamics to converge multiple times on a single root while missing another one completely. The components of the starting vector z0dsubscript𝑧0superscript𝑑z_{0}\in\mathbb{C}^{d}italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ∈ blackboard_C start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT are chosen within D(0,r)D0𝑟\operatorname{D}(0,r)roman_D ( 0 , italic_r ) and presumed to lack any symmetries that would accidentally match a symmetry of the set of roots, which could prevent convergence.

The Aberth method is at the heart of the implementation of MPSolve, which is the reference software for splitting polynomials using arbitrary precision arithmetic. A massively parallel implementation [GSKC16] of this algorithm on multiple GPUs can run up to a few millions of roots.

At each step, computing the electrostatic potential requires O(d2)𝑂superscript𝑑2O(d^{2})italic_O ( italic_d start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) operations, while the evaluation of all P(zn,j)/P(zn,j)superscript𝑃subscript𝑧𝑛𝑗𝑃subscript𝑧𝑛𝑗P^{\prime}(z_{n,j})/P(z_{n,j})italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z start_POSTSUBSCRIPT italic_n , italic_j end_POSTSUBSCRIPT ) / italic_P ( italic_z start_POSTSUBSCRIPT italic_n , italic_j end_POSTSUBSCRIPT ) costs O(dVd)𝑂𝑑subscriptV𝑑O(d\operatorname{V}_{d})italic_O ( italic_d roman_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ). The typical number of steps to reach a given approximation depends strongly on the choice of initial points [Gug86], [Fra89], [Bin96]; in practice, it takes at least O(d)𝑂𝑑O(d)italic_O ( italic_d ) steps, with an overhead of O(dlogd)𝑂𝑑𝑑O(d\log d)italic_O ( italic_d roman_log italic_d ) operations to compute a “good” initial vector z0dsubscript𝑧0superscript𝑑z_{0}\in\mathbb{C}^{d}italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ∈ blackboard_C start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT. The overall cost of Aberth’s method is thus O(d3)𝑂superscript𝑑3O(d^{3})italic_O ( italic_d start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ) operations regardless of the actual value of VdsubscriptV𝑑\operatorname{V}_{d}roman_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT.

In practice, the Aberth method has good global convergence properties. However, a theoretical foundation for this global convergence remains an open problem.


Weierstrass method (also known as Durand–Kerner) is the following variation:

zn+1,j=zn,jP(zn,j)kj(zn,jzn,k)z_{n+1,j}=z_{n,j}-\frac{P(z_{n,j})}{\prod\limits_{k\neq j}(z_{n,j}-z_{n,k})}\cdotpitalic_z start_POSTSUBSCRIPT italic_n + 1 , italic_j end_POSTSUBSCRIPT = italic_z start_POSTSUBSCRIPT italic_n , italic_j end_POSTSUBSCRIPT - divide start_ARG italic_P ( italic_z start_POSTSUBSCRIPT italic_n , italic_j end_POSTSUBSCRIPT ) end_ARG start_ARG ∏ start_POSTSUBSCRIPT italic_k ≠ italic_j end_POSTSUBSCRIPT ( italic_z start_POSTSUBSCRIPT italic_n , italic_j end_POSTSUBSCRIPT - italic_z start_POSTSUBSCRIPT italic_n , italic_k end_POSTSUBSCRIPT ) end_ARG ⋅

On a theoretical level, it was recently proven [RSS20], [KI04] that the Weierstrass method may fail generically, i.e. on an open set of polynomials for an open set of intialization points. This is a sharp reminder that one must pay close attention to the bassin of attraction of each numerical method.

3.5 The algorithm of Hubbard, Schleicher and Sutherland

The global structure of the bassins of attraction of Newton’s method is quite intricate. It has been extensively studied in [Sut89], [HSS01], [SS17], where a remarkable universal algorithm for splitting P𝑃Pitalic_P is explained. Let us consider a root zsubscript𝑧z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT of P𝑃Pitalic_P and denote by 𝒜(z)¯𝒜subscript𝑧¯\operatorname{\mathcal{A}}(z_{\ast})\subset\overline{\mathbb{C}}caligraphic_A ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ) ⊂ over¯ start_ARG blackboard_C end_ARG the basin of attraction for Newton’s method.


The connected component of zsubscript𝑧z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT in 𝒜(z)𝒜subscript𝑧\operatorname{\mathcal{A}}(z_{\ast})caligraphic_A ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ) is called the immediate basin of attraction and is denoted by 𝒰(z)𝒰subscript𝑧\mathcal{U}(z_{\ast})caligraphic_U ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ). It admits as many access to infinity (i.e. homotopy classes of simple arcs connecting zsubscript𝑧z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT to \infty) as the number of critical points of NPsubscript𝑁𝑃N_{P}italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT within it, counted with multiplicity (including the root itself as critical point if zsubscript𝑧z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT is a multiple root). The girth (or channel width) at z𝒰(z)𝑧𝒰subscript𝑧z\in\mathcal{U}(z_{\ast})italic_z ∈ caligraphic_U ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ) is the length of the connected component of z𝑧zitalic_z in

{z𝒰(z);|z|=|z|}.formulae-sequencesuperscript𝑧𝒰subscript𝑧superscript𝑧𝑧\{z^{\prime}\in\mathcal{U}(z_{\ast})\,;\,|z^{\prime}|=|z|\}.{ italic_z start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ caligraphic_U ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ) ; | italic_z start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT | = | italic_z | } .

The girths admits a universal bound from below, which implies that taking about 2.47d3/22.47superscript𝑑322.47d^{3/2}2.47 italic_d start_POSTSUPERSCRIPT 3 / 2 end_POSTSUPERSCRIPT points uniformly along a wide enough circle ensures that there is at least one point per basin of attraction. This property turns Newton’s method into a trivially parallelizable global splitting algorithm.

A more involved analysis based on the conformal modulus of the access channels (roughly speaking: the ratio between the girth of the channel to the amplitude of one Newton step from that point) allows both a reduction in the number of points involved, and better estimates. A universal starting mesh, given in [HSS01], is composed of about α4.16dlogdsimilar-to-or-equals𝛼4.16𝑑𝑑\alpha\simeq 4.16d\log ditalic_α ≃ 4.16 italic_d roman_log italic_d points taken on β0.27logdsimilar-to-or-equals𝛽0.27𝑑\beta\simeq 0.27\log ditalic_β ≃ 0.27 roman_log italic_d concentric circles.

Theorem 3 (Splitting algorithm of [HSS01]).

Given a polynomial P(z)𝑃𝑧P(z)italic_P ( italic_z ) of degree d𝑑ditalic_d whose roots are contained in D(0,r)normal-D0𝑟\operatorname{D}(0,r)roman_D ( 0 , italic_r ) and integers α4.16dlogd𝛼4.16𝑑𝑑\alpha\geq 4.16d\log ditalic_α ≥ 4.16 italic_d roman_log italic_d, β0.27logd𝛽0.27𝑑\beta\geq 0.27\log ditalic_β ≥ 0.27 roman_log italic_d, the mesh

𝕄r(d)=1νβr(1+2)(11d)2ν14β𝕌αsubscript𝕄𝑟𝑑subscript1𝜈𝛽𝑟12superscript11𝑑2𝜈14𝛽subscript𝕌𝛼\mathbb{M}_{r}(d)=\bigcup_{1\leq\nu\leq\beta}r(1+\sqrt{2})\left(1-\frac{1}{d}% \right)^{\frac{2\nu-1}{4\beta}}\mathbb{U}_{\alpha}blackboard_M start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_d ) = ⋃ start_POSTSUBSCRIPT 1 ≤ italic_ν ≤ italic_β end_POSTSUBSCRIPT italic_r ( 1 + square-root start_ARG 2 end_ARG ) ( 1 - divide start_ARG 1 end_ARG start_ARG italic_d end_ARG ) start_POSTSUPERSCRIPT divide start_ARG 2 italic_ν - 1 end_ARG start_ARG 4 italic_β end_ARG end_POSTSUPERSCRIPT blackboard_U start_POSTSUBSCRIPT italic_α end_POSTSUBSCRIPT

contains a point in each bassin of attraction of the roots of P𝑃Pitalic_P, for Newton’s method. Here, 𝕌α={e2ikπ/α; 0k<α}subscript𝕌𝛼superscript𝑒2𝑖𝑘𝜋𝛼 0𝑘𝛼\mathbb{U}_{\alpha}=\left\{e^{2ik\pi/\alpha}\,;\,0\leq k<\alpha\right\}blackboard_U start_POSTSUBSCRIPT italic_α end_POSTSUBSCRIPT = { italic_e start_POSTSUPERSCRIPT 2 italic_i italic_k italic_π / italic_α end_POSTSUPERSCRIPT ; 0 ≤ italic_k < italic_α } denotes the roots of unity of order α𝛼\alphaitalic_α.

Overall, #𝕄r(d)1.11dlog2dsimilar-to-or-equals#subscript𝕄𝑟𝑑1.11𝑑superscript2𝑑\#\mathbb{M}_{r}(d)\simeq 1.11d\log^{2}d# blackboard_M start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_d ) ≃ 1.11 italic_d roman_log start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_d. For d232similar-to-or-equals𝑑superscript232d\simeq 2^{32}italic_d ≃ 2 start_POSTSUPERSCRIPT 32 end_POSTSUPERSCRIPT, the mesh is build upon β=6𝛽6\beta=6italic_β = 6 circles. The computational improvement over a one-circle approach, which requires O(d3/2)𝑂superscript𝑑32O(d^{3/2})italic_O ( italic_d start_POSTSUPERSCRIPT 3 / 2 end_POSTSUPERSCRIPT ) starting points, becomes advantageous when d214𝑑superscript214d\geq 2^{14}italic_d ≥ 2 start_POSTSUPERSCRIPT 14 end_POSTSUPERSCRIPT (see Figure 5).

3.6 Practical considerations regarding the algorithm of [HSS01]

In this subsection, we discuss some practical aspects of the implementation of Theorem 3, seen as a splitting algorithm, that will lead (for the polynomials pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT) to our improved algorithm presented in Section 4.

The overall complexity of J.H. Hubbard, D. Schleicher and S. Sutherland splitting algorithm is αβγ𝛼𝛽𝛾\alpha\beta\gammaitalic_α italic_β italic_γ Newton steps (i.e. αβγVd𝛼𝛽𝛾subscript𝑉𝑑\alpha\beta\gamma V_{d}italic_α italic_β italic_γ italic_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT arithmetic operations), where αβ=#𝕄r(d)𝛼𝛽#subscript𝕄𝑟𝑑\alpha\beta=\#\mathbb{M}_{r}(d)italic_α italic_β = # blackboard_M start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_d ) is the number of starting points and γ𝛾\gammaitalic_γ is the average number of Newton iterations that are actually necessary to compute the roots with a precision ε𝜀\varepsilonitalic_ε. The question of estimating γ𝛾\gammaitalic_γ is two-fold. It obviously depends on the minimal separation of the roots of P(z)𝑃𝑧P(z)italic_P ( italic_z ), which dictates the precision ε𝜀\varepsilonitalic_ε of the (final) computations. In [HSS01], no upper bound on γ𝛾\gammaitalic_γ is given. However, a practical number of iterates is recommended:

γdlog(rε)similar-to-or-equals𝛾𝑑𝑟𝜀\gamma\simeq d\log\left(\frac{r}{\varepsilon}\right)italic_γ ≃ italic_d roman_log ( divide start_ARG italic_r end_ARG start_ARG italic_ε end_ARG ) (19)

assuming that roots are simple. On the other hand, γ𝛾\gammaitalic_γ is also profoundly impacted by the mid-range dynamics of the Newton map, i.e. the region D(0,r(1+2))\D(z,ρ)\D0𝑟12Dsubscript𝑧𝜌\operatorname{D}(0,r(1+\sqrt{2}))\backslash\operatorname{D}(z_{\ast},\rho)roman_D ( 0 , italic_r ( 1 + square-root start_ARG 2 end_ARG ) ) \ roman_D ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT , italic_ρ ) with ρ𝜌\rhoitalic_ρ as in (16), where the method can spend a substantial amount of time. The key observation that leads to our algorithm is that, in that region, Newton’s method appears to be computing level lines over and over in a very inefficient way (see Figure 2).

Refer to caption
Figure 5: Gridpoints-per-root ratio for 𝕄r(d)subscript𝕄𝑟𝑑\mathbb{M}_{r}(d)blackboard_M start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_d ) as a function of log2(d)subscript2𝑑\log_{2}(d)roman_log start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_d ). Comparison with the one-circle grid (dashed line).

3.6.1 On the scalability of the number of gridpoints per root

The algorithm of [HSS01] is remarkably efficient when d220𝑑superscript220d\leq 2^{20}italic_d ≤ 2 start_POSTSUPERSCRIPT 20 end_POSTSUPERSCRIPT i.e. for polynomials of degree up to a few millions. However, in the giga- and tera-scale, the growth of the gridpoint-per-root ratio, i.e. αβ/d𝛼𝛽𝑑\alpha\beta/ditalic_α italic_β / italic_d, may add a substantial overhead to the cost of the computation (see Figure 5). In other terms, having the certainty to catch all the roots comes at a cost of at least 500500500500 redundant finds for each root, on average. Moreover, eliminating those redundant finds adds, in practice, additional search and sorting costs.

This objection is, however, not completely fair: in practice, one can start the search on a dyadic thinning of 𝕄r(d)subscript𝕄𝑟𝑑\mathbb{M}_{r}(d)blackboard_M start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_d ) and gradually step up to using the full mesh if roots are still missing after each pass (see [HSS01, §9]).

Remark 3.

If P𝑃Pitalic_P is known to only have real roots, then the mesh 𝕄r(d)subscript𝕄𝑟𝑑\mathbb{M}_{r}(d)blackboard_M start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_d ) can be reduced to 1.3d1.3𝑑1.3d1.3 italic_d points on a single semi-circle, which gives a constant gridpoints-per-root ratio.

3.6.2 On root separation

Let 𝒵=P1(0)𝒵superscript𝑃10\mathcal{Z}=P^{-1}(0)caligraphic_Z = italic_P start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( 0 ). For any z𝒵𝑧𝒵z\in\mathcal{Z}italic_z ∈ caligraphic_Z, let us introduce

δP(z)=min{|zz|;z𝒵 and zz}.subscript𝛿𝑃𝑧𝑧superscript𝑧superscript𝑧𝒵 and superscript𝑧𝑧\delta_{P}(z)=\min\left\{|z-z^{\prime}|\,;\,z^{\prime}\in\mathcal{Z}\text{ and% }z^{\prime}\neq z\right\}.italic_δ start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ( italic_z ) = roman_min { | italic_z - italic_z start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT | ; italic_z start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ caligraphic_Z and italic_z start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ≠ italic_z } . (20)

In order to be able to distinguish the root z𝑧zitalic_z from its closest neighbor, it is necessary to compute it with a precision ε<δP(z)/2𝜀subscript𝛿𝑃𝑧2\varepsilon<\delta_{P}(z)/2italic_ε < italic_δ start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ( italic_z ) / 2. The minimal separation between the roots of the polynomial P𝑃Pitalic_P is

ΔP=min{δP(z);z𝒵},subscriptΔ𝑃subscript𝛿𝑃𝑧𝑧𝒵\Delta_{P}=\min\left\{\delta_{P}(z)\,;\,z\in\mathcal{Z}\right\},roman_Δ start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT = roman_min { italic_δ start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ( italic_z ) ; italic_z ∈ caligraphic_Z } , (21)

For example (see Figure 15), for hyperbolic polynomials, one has Δpn4nproportional-tosubscriptΔsubscript𝑝𝑛superscript4𝑛\Delta_{p_{n}}\propto 4^{-n}roman_Δ start_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT ∝ 4 start_POSTSUPERSCRIPT - italic_n end_POSTSUPERSCRIPT which means that, lacking any further information on the local fluctuations of δpn(z)subscript𝛿subscript𝑝𝑛𝑧\delta_{p_{n}}(z)italic_δ start_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( italic_z ), one should request a precision ε𝜀\varepsilonitalic_ε of order O(4n)𝑂superscript4𝑛O(4^{-n})italic_O ( 4 start_POSTSUPERSCRIPT - italic_n end_POSTSUPERSCRIPT ) for all the roots, which, according to (19) requires γ=O(n2n)𝛾𝑂𝑛superscript2𝑛\gamma=O(n2^{n})italic_γ = italic_O ( italic_n 2 start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) iterations of the Newton map. The cardinality of the starting mesh is at least d=2n1𝑑superscript2𝑛1d=2^{n-1}italic_d = 2 start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT and may skyrocket up to #𝕄2(d)=O(n22n)#subscript𝕄2𝑑𝑂superscript𝑛2superscript2𝑛\#\mathbb{M}_{2}(d)=O(n^{2}2^{n})# blackboard_M start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_d ) = italic_O ( italic_n start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) should the finest mesh be required. The total number of Newton steps thus ranges from O(n22n)𝑂𝑛superscript22𝑛O(n2^{2n})italic_O ( italic_n 2 start_POSTSUPERSCRIPT 2 italic_n end_POSTSUPERSCRIPT ) to O(n322n)𝑂superscript𝑛3superscript22𝑛O(n^{3}2^{2n})italic_O ( italic_n start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT 2 italic_n end_POSTSUPERSCRIPT ). As the evaluation of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT requires Vd=O(n)subscript𝑉𝑑𝑂𝑛V_{d}=O(n)italic_V start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT = italic_O ( italic_n ) arithmetic operations, applying [HSS01] to split pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT requires O(nκ22n)𝑂superscript𝑛𝜅superscript22𝑛O(n^{\kappa}2^{2n})italic_O ( italic_n start_POSTSUPERSCRIPT italic_κ end_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT 2 italic_n end_POSTSUPERSCRIPT ) arithmetic operations with 2κ42𝜅42\leq\kappa\leq 42 ≤ italic_κ ≤ 4.

We have no reason to believe that p41subscript𝑝41p_{41}italic_p start_POSTSUBSCRIPT 41 end_POSTSUBSCRIPT would behave especially badly. However, the previous discussion gives a range of 1027superscript102710^{27}10 start_POSTSUPERSCRIPT 27 end_POSTSUPERSCRIPT to 1031superscript103110^{31}10 start_POSTSUPERSCRIPT 31 end_POSTSUPERSCRIPT arithmetic operations, which means that, even if we disregard the need to compute at a precision much higher than 64 bits and forget all the extra operations required to handle the large volume of data, it would take, optimistically, 31 years to split p41subscript𝑝41p_{41}italic_p start_POSTSUBSCRIPT 41 end_POSTSUBSCRIPT on a exa-scale computer like Frontier. This optimistic estimate is astronomical and marks the splitting of p41subscript𝑝41p_{41}italic_p start_POSTSUBSCRIPT 41 end_POSTSUBSCRIPT as a problem clearly out of reach of the current state of the art.

Remark 4.

The root separation of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT will be analysed in details in §6.3.2 (see Figure 16), which would improve the overall cost if the precision ε𝜀\varepsilonitalic_ε was adjusted dynamically.

3.6.3 On the mid-range dynamics of the Newton map

A pertinent quantity for the analysis of the Newton map is the number of Newton steps that are necessary to bridge the level set A𝐴Aitalic_A to the level set B𝐵Bitalic_B (with A>B𝐴𝐵A>Bitalic_A > italic_B):

γA,B(P,z0)=min{k;|P(zk)|B}max{k;|P(zk)|A}.subscript𝛾𝐴𝐵𝑃subscript𝑧0𝑘𝑃subscript𝑧𝑘𝐵𝑘𝑃subscript𝑧𝑘𝐴\gamma_{A,B}(P,z_{0})=\min\{k\,;\,|P(z_{k})|\leq B\}-\max\{k\,;\,|P(z_{k})|% \geq A\}.italic_γ start_POSTSUBSCRIPT italic_A , italic_B end_POSTSUBSCRIPT ( italic_P , italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) = roman_min { italic_k ; | italic_P ( italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) | ≤ italic_B } - roman_max { italic_k ; | italic_P ( italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) | ≥ italic_A } . (22)

For each root zsubscript𝑧z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT, the dynamics of the Newton map develops in two stages. The first stage (called mid-range) connects the starting mesh 𝕄r(d)subscript𝕄𝑟𝑑\mathbb{M}_{r}(d)blackboard_M start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_d ) to the edge of D(z,ρ)Dsubscript𝑧𝜌\operatorname{D}(z_{\ast},\rho)roman_D ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT , italic_ρ ), which requires γ1γA,B(P,z0)similar-to-or-equalssubscript𝛾1subscript𝛾𝐴𝐵𝑃subscript𝑧0\gamma_{1}\simeq\gamma_{A,B}(P,z_{0})italic_γ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ≃ italic_γ start_POSTSUBSCRIPT italic_A , italic_B end_POSTSUBSCRIPT ( italic_P , italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) Newton steps where A=|P(z0)|𝐴𝑃subscript𝑧0A=|P(z_{0})|italic_A = | italic_P ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) | and B=max{|P(z)|;zD(z,ρ)}𝐵𝑃𝑧𝑧Dsubscript𝑧𝜌B=\max\{|P(z)|\,;\,z\in\operatorname{D}(z_{\ast},\rho)\}italic_B = roman_max { | italic_P ( italic_z ) | ; italic_z ∈ roman_D ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT , italic_ρ ) } with ρ𝜌\rhoitalic_ρ as in (16). In practice, γ1O(d)subscript𝛾1𝑂𝑑\gamma_{1}\geq O(d)italic_γ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ≥ italic_O ( italic_d ) because, according to [HSS01, Lemma 3], Newton steps satisfy

|z|rd<|NP(z)z|<|z|+rd𝑧𝑟𝑑subscript𝑁𝑃𝑧𝑧𝑧𝑟𝑑\frac{|z|-r}{d}<|N_{P}(z)-z|<\frac{|z|+r}{d}divide start_ARG | italic_z | - italic_r end_ARG start_ARG italic_d end_ARG < | italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ( italic_z ) - italic_z | < divide start_ARG | italic_z | + italic_r end_ARG start_ARG italic_d end_ARG (23)

for |z|r>0𝑧𝑟0|z|\geq r>0| italic_z | ≥ italic_r > 0. A second stage connects the edge of D(z,ρ)Dsubscript𝑧𝜌\operatorname{D}(z_{\ast},\rho)roman_D ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT , italic_ρ ) to D(z,ε)Dsubscript𝑧𝜀\operatorname{D}(z_{\ast},\varepsilon)roman_D ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT , italic_ε ) where the desired precision is reached. As it happens entirely in the quadratic regime (16), this phase requires and additional γ2=O(logρε)subscript𝛾2𝑂𝜌𝜀\gamma_{2}=O(\log\frac{\rho}{\varepsilon})italic_γ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_O ( roman_log divide start_ARG italic_ρ end_ARG start_ARG italic_ε end_ARG ) refining steps. Overall γ=γ1+γ2𝛾subscript𝛾1subscript𝛾2\gamma=\gamma_{1}+\gamma_{2}italic_γ = italic_γ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_γ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT.

Remark 5.

As discussed in [HSS01, §9], starting instead from a rescaled mesh or radius λr𝜆𝑟\lambda ritalic_λ italic_r for some λ>1𝜆1\lambda>1italic_λ > 1 would allow one to slightly decrease the upper bound on the cardinality of the mesh if λ𝜆\lambdaitalic_λ is chosen close to 1, but it would dramatically increase γ1subscript𝛾1\gamma_{1}italic_γ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT by O(dlogλ)𝑂𝑑𝜆O(d\log\lambda)italic_O ( italic_d roman_log italic_λ ).

Computing γA,Bsubscript𝛾𝐴𝐵\gamma_{A,B}italic_γ start_POSTSUBSCRIPT italic_A , italic_B end_POSTSUBSCRIPT precisely in full generality seems hopeless (see however [BAS16]). However, one may experiment along the real line to get a feeling of the orders of magnitude. For the hyperbolic polynomials pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, the Newton dynamics starting from the point

z0=14+θn+such thatpn(14+θn)=5formulae-sequencesubscript𝑧014subscript𝜃𝑛subscriptsuch thatsubscript𝑝𝑛14subscript𝜃𝑛5z_{0}=\frac{1}{4}+\theta_{n}\in\mathbb{R}_{+}\quad\text{such that}\quad p_{n}% \left(\frac{1}{4}+\theta_{n}\right)=5italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = divide start_ARG 1 end_ARG start_ARG 4 end_ARG + italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUBSCRIPT + end_POSTSUBSCRIPT such that italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( divide start_ARG 1 end_ARG start_ARG 4 end_ARG + italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) = 5

always converges to z=0subscript𝑧0z_{\ast}=0italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT = 0. The first stage of the dynamics takes

γ1=inf{k;zkD(0,1/4)}subscript𝛾1infimumformulae-sequence𝑘subscript𝑧𝑘D014\gamma_{1}=\inf\{k\in\mathbb{N}\,;\,z_{k}\in\operatorname{D}(0,1/4)\}italic_γ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = roman_inf { italic_k ∈ blackboard_N ; italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∈ roman_D ( 0 , 1 / 4 ) }

steps because for kγ1𝑘subscript𝛾1k\geq\gamma_{1}italic_k ≥ italic_γ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, the convergence of the sequence (zk)ksubscriptsubscript𝑧𝑘𝑘(z_{k})_{k\in\mathbb{N}}( italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_k ∈ blackboard_N end_POSTSUBSCRIPT becomes quadratic. We checked numerically that γ16subscript𝛾16\gamma_{1}\leq 6italic_γ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ≤ 6 for any k38000𝑘38000k\leq 38000italic_k ≤ 38000. On the other hand, starting another sequence of Newton iterations from z0~=1~subscript𝑧01\widetilde{z_{0}}=1over~ start_ARG italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_ARG = 1 (as would be the case if we start from 𝕄r(2n1)subscript𝕄𝑟superscript2𝑛1\mathbb{M}_{r}(2^{n-1})blackboard_M start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( 2 start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT )), one would get

γ~1=inf{n;pk(z~n)5}O(2k)subscript~𝛾1infimumformulae-sequence𝑛subscript𝑝𝑘subscript~𝑧𝑛5𝑂superscript2𝑘\widetilde{\gamma}_{1}=\inf\{n\in\mathbb{N}\,;\,p_{k}(\widetilde{z}_{n})\leq 5% \}\geq O(2^{k})over~ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = roman_inf { italic_n ∈ blackboard_N ; italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) ≤ 5 } ≥ italic_O ( 2 start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT )

because each Newton step is of order

|pk(z~n)/pk(z~n)|pk(1)pk(14+θk)subscript𝑝𝑘subscript~𝑧𝑛superscriptsubscript𝑝𝑘subscript~𝑧𝑛subscript𝑝𝑘1superscriptsubscript𝑝𝑘14subscript𝜃𝑘|p_{k}(\widetilde{z}_{n})/p_{k}^{\prime}(\widetilde{z}_{n})|\leq\frac{p_{k}(1)% }{p_{k}^{\prime}(\frac{1}{4}+\theta_{k})}| italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) / italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) | ≤ divide start_ARG italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( 1 ) end_ARG start_ARG italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( divide start_ARG 1 end_ARG start_ARG 4 end_ARG + italic_θ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) end_ARG

This simple observation suggests that, instead of starting from a universal and too far mesh 𝕄r(2n1)subscript𝕄𝑟superscript2𝑛1\mathbb{M}_{r}(2^{n-1})blackboard_M start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( 2 start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT ), it may be more appropriate to start from a mesh along a level line

|pn(z)|=L.subscript𝑝𝑛𝑧𝐿|p_{n}(z)|=L.| italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_z ) | = italic_L .

This idea is the key to the new algorithm that we describe in the next section.

4 A new splitting algorithm based on level-lines

In this section, we expose our new splitting algorithm at the general level, and illustrate it on the search for hyperbolic centers and Misiurewicz points of \mathcal{M}caligraphic_M. Again, throughout this section P𝑃Pitalic_P denotes a polynomial in [z]delimited-[]𝑧\mathbb{C}[z]blackboard_C [ italic_z ] of degree d=degP𝑑degree𝑃d=\deg Pitalic_d = roman_deg italic_P whose roots 𝒵=P1(0)𝒵superscript𝑃10\mathcal{Z}=P^{-1}(0)caligraphic_Z = italic_P start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( 0 ) are located within the disk D(0,r)D0𝑟\operatorname{D}(0,r)roman_D ( 0 , italic_r ). The set of critical points is denoted by CritPCrit𝑃\operatorname{Crit}{P}roman_Crit italic_P. For simplicity, we will also assume that P𝑃Pitalic_P is monic.

Brute force is not a viable option when d1012greater-than-or-equivalent-to𝑑superscript1012d\gtrsim 10^{12}italic_d ≳ 10 start_POSTSUPERSCRIPT 12 end_POSTSUPERSCRIPT. For example, one observes that the minimal separation between roots of pksubscript𝑝𝑘p_{k}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT changes dramatically with the position in \mathcal{M}caligraphic_M and that only a few roots contribute to the realisation of the overall minimum (see figure 16). The corresponding Newton bassins are narrow channels. As illustrated in the previous section, using a uniform starting grid fine enough to capture all of those narrow channels is an algorithmic dead-end.

4.1 General principle

The solution we propose is that of an adaptative mesh refinement. Trying to reverse-engineer the dynamics of the Newton map on the fly to guess where to add points seems mostly out of reach and has only been attempted by [RSS17]-[Sch23] who use a clever geometric estimator of the deformation of the trajectories for that purpose; however, if a few roots end up being missed, it is not clear how to refine the computation.

What we need instead is a systematic way to put more grid points around regions of high root density and spend less time visiting the regions of lower root density. We want to parametrise a curve encircling the roots of P𝑃Pitalic_P such that uniform subdivisions of its parameter induce the desired adaptative mesh refinement.


The answer is given by the interaction between the two ordinary differential equations that rule Newton’s flow and the level lines. Newton’s flow is defined by the ODE:

ζ(t)=P(ζ(t))P(ζ(t))superscript𝜁𝑡𝑃𝜁𝑡superscript𝑃𝜁𝑡\zeta^{\prime}(t)=-\frac{P(\zeta(t))}{P^{\prime}(\zeta(t))}italic_ζ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_t ) = - divide start_ARG italic_P ( italic_ζ ( italic_t ) ) end_ARG start_ARG italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_ζ ( italic_t ) ) end_ARG (24)

The evolution is iso-angle (i.e. argP𝑃\arg Proman_arg italic_P is constant along trajectories) and the modulus is an exponentially decaying Lyapunov function because any solution satisfies:

P(ζ(t))=e(tt0)P(ζ(t0)).𝑃𝜁𝑡superscript𝑒𝑡subscript𝑡0𝑃𝜁subscript𝑡0P(\zeta(t))=e^{-(t-t_{0})}P(\zeta(t_{0})).italic_P ( italic_ζ ( italic_t ) ) = italic_e start_POSTSUPERSCRIPT - ( italic_t - italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT italic_P ( italic_ζ ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) ) . (25)

The stationary solutions are the roots. We will call Newton’s rays or iso-angle rays the non-stationary solutions of the Newton flow. The non-critical iso-angles, i.e.

argP(ζ(t0))arg[P(CritP)\{0}]𝑃𝜁subscript𝑡0\𝑃Crit𝑃0\arg P(\zeta(t_{0}))\notin\arg\left[P(\operatorname{Crit}{P})\backslash\{0\}\right]roman_arg italic_P ( italic_ζ ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) ) ∉ roman_arg [ italic_P ( roman_Crit italic_P ) \ { 0 } ] (26)

stem global solutions, both forwards and backwards. Forwards, non-stationary maximal trajectories on [t0,T)subscript𝑡0superscript𝑇[t_{0},T^{\ast})[ italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_T start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ) converge to the roots if the trajectory is global i.e. T=+superscript𝑇T^{\ast}=+\inftyitalic_T start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = + ∞, or to critical points if T<+superscript𝑇T^{\ast}<+\inftyitalic_T start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT < + ∞. Note that, when T<+superscript𝑇T^{\ast}<+\inftyitalic_T start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT < + ∞, the argument of the critical value at the end-point must match the iso-angle of the trajectory; also, the end-point cannot be a multiple root because (25) implies that

limtTP(ζ(t))=e(Tt0)P(ζ(t0))0.subscript𝑡superscript𝑇𝑃𝜁𝑡superscript𝑒superscript𝑇subscript𝑡0𝑃𝜁subscript𝑡00\lim_{t\to T^{\ast}}P(\zeta(t))=e^{-(T^{\ast}-t_{0})}P(\zeta(t_{0}))\neq 0.roman_lim start_POSTSUBSCRIPT italic_t → italic_T start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_P ( italic_ζ ( italic_t ) ) = italic_e start_POSTSUPERSCRIPT - ( italic_T start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT - italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT italic_P ( italic_ζ ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) ) ≠ 0 .

Backwards, maximal trajectories on (T,t0]subscript𝑇subscript𝑡0(T_{\ast},t_{0}]( italic_T start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ] either go to ¯¯\infty\in\overline{\mathbb{C}}∞ ∈ over¯ start_ARG blackboard_C end_ARG if T=subscript𝑇T_{\ast}=-\inftyitalic_T start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT = - ∞ or to non-root critical points with the same critical iso-angle if |T|<subscript𝑇|T_{\ast}|<\infty| italic_T start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT | < ∞. Bounded maximal trajectories are possible between two critical points whose values share the same argument. Note that 00 is a critical value if and only if P𝑃Pitalic_P admits multiple roots. In that case, if ζ(t)𝜁𝑡\zeta(t)italic_ζ ( italic_t ) converges to a root of multiplicity μ𝜇\muitalic_μ, L’Hopital’s rule ensures that

ζ(t)t+P(μ1)(ζ(t))P(μ)(ζ(t))superscript𝜁𝑡𝑡similar-tosuperscript𝑃𝜇1𝜁𝑡superscript𝑃𝜇𝜁𝑡\zeta^{\prime}(t)\underset{t\to+\infty}{\sim}-\frac{P^{(\mu-1)}(\zeta(t))}{P^{% (\mu)}(\zeta(t))}italic_ζ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_t ) start_UNDERACCENT italic_t → + ∞ end_UNDERACCENT start_ARG ∼ end_ARG - divide start_ARG italic_P start_POSTSUPERSCRIPT ( italic_μ - 1 ) end_POSTSUPERSCRIPT ( italic_ζ ( italic_t ) ) end_ARG start_ARG italic_P start_POSTSUPERSCRIPT ( italic_μ ) end_POSTSUPERSCRIPT ( italic_ζ ( italic_t ) ) end_ARG

so, locally, the profile of Newton’s flow is radial and coincides with that of a simple root of P(μ1)superscript𝑃𝜇1P^{(\mu-1)}italic_P start_POSTSUPERSCRIPT ( italic_μ - 1 ) end_POSTSUPERSCRIPT. The properties of Newton’s flow where used in [AMV23] to produce a short proof of the fundamental Theorem of Algebra.


Level lines |P(z)|=L𝑃𝑧𝐿|P(z)|=L| italic_P ( italic_z ) | = italic_L are also caracterized by an ODE, namely:

λ(t)=iP(λ(t))P(λ(t))\lambda^{\prime}(t)=i\frac{P(\lambda(t))}{P^{\prime}(\lambda(t))}\cdotpitalic_λ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_t ) = italic_i divide start_ARG italic_P ( italic_λ ( italic_t ) ) end_ARG start_ARG italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_λ ( italic_t ) ) end_ARG ⋅ (27)

The solutions satisfy

P(λ(t))=eitP(λ(0)).𝑃𝜆𝑡superscript𝑒𝑖𝑡𝑃𝜆0P(\lambda(t))=e^{it}P(\lambda(0)).italic_P ( italic_λ ( italic_t ) ) = italic_e start_POSTSUPERSCRIPT italic_i italic_t end_POSTSUPERSCRIPT italic_P ( italic_λ ( 0 ) ) . (28)

By construction, the level-lines are orthogonal to iso-angles. Again, stationary solutions are the roots of P𝑃Pitalic_P. The modulus |P(λ(t))|𝑃𝜆𝑡|P(\lambda(t))|| italic_P ( italic_λ ( italic_t ) ) | is constant along each level-line; in particular, the level-lines are bounded. If |P(λ(t))|>max|P(Crit(P))|𝑃𝜆𝑡𝑃Crit𝑃|P(\lambda(t))|>\max|P(\operatorname{Crit}(P))|| italic_P ( italic_λ ( italic_t ) ) | > roman_max | italic_P ( roman_Crit ( italic_P ) ) |, there is only one maximal solution, which is a Jordan curve (as the image of a circle by the Riemann map of the outside). Below the maximal critical value, there are multiple connected components that are either compact or join two (possibly identical) critical points. The function λ(t)𝜆𝑡\lambda(t)italic_λ ( italic_t ) is 2π2𝜋2\ell\pi2 roman_ℓ italic_π-periodic where d=degP𝑑degree𝑃\ell\leq d=\deg Proman_ℓ ≤ italic_d = roman_deg italic_P because P(λ(2kπ))=P(λ(0))𝑃𝜆2𝑘𝜋𝑃𝜆0P(\lambda(2k\pi))=P(\lambda(0))italic_P ( italic_λ ( 2 italic_k italic_π ) ) = italic_P ( italic_λ ( 0 ) ) for any k𝑘k\in\mathbb{Z}italic_k ∈ blackboard_Z and P𝑃Pitalic_P can take this value at most d𝑑ditalic_d distinct times; once the value loops, the unicity in the Cauchy-Lipschitz theorem for the first-order ODE (27) ensures periodicity. For a level line of modulus large enough, d𝑑ditalic_d is the smallest period.


Theorem 4.

Given a monic polynomial P𝑃Pitalic_P of degree d𝑑ditalic_d, if z0subscript𝑧0z_{0}\in\mathbb{C}italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ∈ blackboard_C satisfies

|P(z0)|>max|P(Crit(P))|𝑎𝑛𝑑argP(z0)arg[P(Crit(P))\{0}],formulae-sequence𝑃subscript𝑧0𝑃Crit𝑃𝑎𝑛𝑑𝑃subscript𝑧0\𝑃Crit𝑃0|P(z_{0})|>\max|P(\operatorname{Crit}(P))|\qquad\text{and}\qquad\arg P(z_{0})% \notin\arg[P(\operatorname{Crit}(P))\backslash\{0\}],| italic_P ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) | > roman_max | italic_P ( roman_Crit ( italic_P ) ) | and roman_arg italic_P ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) ∉ roman_arg [ italic_P ( roman_Crit ( italic_P ) ) \ { 0 } ] , (29)

then the points zk=λ(t0+2kπ)subscript𝑧𝑘𝜆subscript𝑡02𝑘𝜋z_{k}=\lambda(t_{0}+2k\pi)italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_λ ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + 2 italic_k italic_π ) for 0k<d0𝑘𝑑0\leq k<d0 ≤ italic_k < italic_d obtained by solving (27) with λ(t0)=z0𝜆subscript𝑡0subscript𝑧0\lambda(t_{0})=z_{0}italic_λ ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) = italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT are distinct. Each zksubscript𝑧𝑘z_{k}italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT is associated to a global forward Newton flow (24), denoted by ζk(t)subscript𝜁𝑘𝑡\zeta_{k}(t)italic_ζ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_t ). The points zk=limt+ζk(t)superscriptsubscript𝑧𝑘normal-∗subscriptnormal-→𝑡subscript𝜁𝑘𝑡z_{k}^{\ast}=\lim\limits_{t\to+\infty}\zeta_{k}(t)italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = roman_lim start_POSTSUBSCRIPT italic_t → + ∞ end_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_t ) are all the roots of P𝑃Pitalic_P and this enumeration is consistent with the multiplicities, i.e.

P(z)=(zz0)(zz1)(zzd).𝑃𝑧𝑧superscriptsubscript𝑧0𝑧superscriptsubscript𝑧1𝑧superscriptsubscript𝑧𝑑P(z)=(z-z_{0}^{\ast})(z-z_{1}^{\ast})\ldots(z-z_{d}^{\ast}).italic_P ( italic_z ) = ( italic_z - italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ) ( italic_z - italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ) … ( italic_z - italic_z start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ) . (30)
Proof.

From the discussion above, we know that the starting points λ(t0+2kπ)𝜆subscript𝑡02𝑘𝜋\lambda(t_{0}+2k\pi)italic_λ ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + 2 italic_k italic_π ) for 0k<d0𝑘𝑑0\leq k<d0 ≤ italic_k < italic_d such that argP(λ(t0))arg[P(Crit(P))\{0}]𝑃𝜆subscript𝑡0\𝑃Crit𝑃0\arg P(\lambda(t_{0}))\notin\arg[P(\operatorname{Crit}(P))\backslash\{0\}]roman_arg italic_P ( italic_λ ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) ) ∉ roman_arg [ italic_P ( roman_Crit ( italic_P ) ) \ { 0 } ] have a global forward Newton flow and that each of these flows converges to a root of P𝑃Pitalic_P. The d𝑑ditalic_d starting points are distinct because |P(λ(t0))|>max|P(Crit(P))|𝑃𝜆subscript𝑡0𝑃Crit𝑃|P(\lambda(t_{0}))|>\max|P(\operatorname{Crit}(P))|| italic_P ( italic_λ ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) ) | > roman_max | italic_P ( roman_Crit ( italic_P ) ) | so the level line has only one connected component. The question is wether one could be missing a root. Near each root zsubscript𝑧z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT, the polynomial P𝑃Pitalic_P takes all possible arguments exactly as many times as the multiplicity because P(z)α(zz)msimilar-to𝑃𝑧𝛼superscript𝑧subscript𝑧𝑚P(z)\sim\alpha(z-z_{\ast})^{m}italic_P ( italic_z ) ∼ italic_α ( italic_z - italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT as zz𝑧subscript𝑧z\to z_{\ast}italic_z → italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT, for α𝛼superscript\alpha\in\mathbb{C}^{\ast}italic_α ∈ blackboard_C start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT and m𝑚superscriptm\in\mathbb{N}^{\ast}italic_m ∈ blackboard_N start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT. If we missed a root zsubscript𝑧z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT, we consider a nearby point where argP(z)=argP(λ(t0))𝑃𝑧𝑃𝜆subscript𝑡0\arg P(z)=\arg P(\lambda(t_{0}))roman_arg italic_P ( italic_z ) = roman_arg italic_P ( italic_λ ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) ). The Newton ray from z𝑧zitalic_z is global both forwards and backwards and escapes (backwards) at infinity. Thus, this Newton ray intersects the level line of modulus |P(λ(t0))|𝑃𝜆subscript𝑡0|P(\lambda(t_{0}))|| italic_P ( italic_λ ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) ) | and, as the angle is invariant, it is one of the λ(t0+2kπ)𝜆subscript𝑡02𝑘𝜋\lambda(t_{0}+2k\pi)italic_λ ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + 2 italic_k italic_π ) points. Therefore, no root could have been missed. The same argument shows that no multiplicity can be misrepresented, by following back the m𝑚mitalic_m Newton rays near zsubscript𝑧z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT whose angle is argP(λ(t0))𝑃𝜆subscript𝑡0\arg P(\lambda(t_{0}))roman_arg italic_P ( italic_λ ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) ). ∎

If one chooses d𝑑ditalic_d distinct values (tj)0j<dsubscriptsubscript𝑡𝑗0𝑗𝑑(t_{j})_{0\leq j<d}( italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT 0 ≤ italic_j < italic_d end_POSTSUBSCRIPT in [0,2π)02𝜋[0,2\pi)[ 0 , 2 italic_π ), then at least one of them must satisfy argP(λ(tj))arg[P(Crit(P))\{0}]𝑃𝜆subscript𝑡𝑗\𝑃Crit𝑃0\arg P(\lambda(t_{j}))\notin\arg[P(\operatorname{Crit}(P))\backslash\{0\}]roman_arg italic_P ( italic_λ ( italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) ) ∉ roman_arg [ italic_P ( roman_Crit ( italic_P ) ) \ { 0 } ] because argP(λ(tj))=argP(λ(t0))+t0tjmod2π𝑃𝜆subscript𝑡𝑗modulo𝑃𝜆subscript𝑡0subscript𝑡0subscript𝑡𝑗2𝜋\arg P(\lambda(t_{j}))=\arg P(\lambda(t_{0}))+t_{0}-t_{j}\mod 2\piroman_arg italic_P ( italic_λ ( italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) ) = roman_arg italic_P ( italic_λ ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) ) + italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT roman_mod 2 italic_π and there are, at most, d1𝑑1d-1italic_d - 1 distinct critical values. We have therefore a naive way of choosing O(d2)𝑂superscript𝑑2O(d^{2})italic_O ( italic_d start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) starting points (λ(tj+2kπ))0j,k<dsubscript𝜆subscript𝑡𝑗2𝑘𝜋formulae-sequence0𝑗𝑘𝑑(\lambda(t_{j}+2k\pi))_{0\leq j,k<d}( italic_λ ( italic_t start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT + 2 italic_k italic_π ) ) start_POSTSUBSCRIPT 0 ≤ italic_j , italic_k < italic_d end_POSTSUBSCRIPT whose Newton trajectories are guarantied to reach all the roots. Generically however, the number of starting point drops to O(d)𝑂𝑑O(d)italic_O ( italic_d ) as it is very unlikely that more than a few choices will hit critical arguments. For example, in practice, we were able to split the polynomials pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT by Newton’s method using only 4d4𝑑4d4 italic_d starting points of iso-angles 00, π/2𝜋2\pi/2italic_π / 2, π𝜋\piitalic_π and 3π/23𝜋23\pi/23 italic_π / 2.


As illustrated on Figure 2, the next advantage of using iso-angle rays and level lines instead of using unstructured parallel iterations of the Newton map, is that one can perform most of the descend using a lean mesh, and densify it at a lowest level with no risk of missing iso-angle rays.


For ζ0subscript𝜁0\zeta_{0}\in\mathbb{C}italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ∈ blackboard_C such that |ζ0|>max|P(Crit(P))|subscript𝜁0𝑃Crit𝑃|\zeta_{0}|>\max|P(\operatorname{Crit}(P))|| italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT | > roman_max | italic_P ( roman_Crit ( italic_P ) ) | and N𝑁superscriptN\in\mathbb{N}^{\ast}italic_N ∈ blackboard_N start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT, let us consider the mesh

𝕃ζ0,N(P)={λ(2kdπ/N); 0k<N}subscript𝕃subscript𝜁0𝑁𝑃𝜆2𝑘𝑑𝜋𝑁 0𝑘𝑁\mathbb{L}_{\zeta_{0},N}(P)=\left\{\lambda(2kd\pi/N)\,;\,0\leq k<N\right\}blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N end_POSTSUBSCRIPT ( italic_P ) = { italic_λ ( 2 italic_k italic_d italic_π / italic_N ) ; 0 ≤ italic_k < italic_N } (31)

where λ𝜆\lambdaitalic_λ is the 2dπ2𝑑𝜋2d\pi2 italic_d italic_π-periodic maximal solution of (27) defined by a choice666To lift the ambiguity regarding that choice, one can also denote the level set by 𝕃z0,N(P)subscriptsuperscript𝕃subscript𝑧0𝑁𝑃\mathbb{L}^{\bullet}_{z_{0},N}(P)blackboard_L start_POSTSUPERSCRIPT ∙ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N end_POSTSUBSCRIPT ( italic_P ) as the level set that starts at λ(0)=z0𝜆0subscript𝑧0\lambda(0)=z_{0}\in\mathbb{C}italic_λ ( 0 ) = italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ∈ blackboard_C; it is the level of ζ0=P(z0)subscript𝜁0𝑃subscript𝑧0\zeta_{0}=P(z_{0})italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_P ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ), i.e. 𝕃z0,N(P)=𝕃ζ0,N(P)subscriptsuperscript𝕃subscript𝑧0𝑁𝑃subscript𝕃subscript𝜁0𝑁𝑃\mathbb{L}^{\bullet}_{z_{0},N}(P)=\mathbb{L}_{\zeta_{0},N}(P)blackboard_L start_POSTSUPERSCRIPT ∙ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N end_POSTSUBSCRIPT ( italic_P ) = blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N end_POSTSUBSCRIPT ( italic_P ). of λ(0)𝜆0\lambda(0)italic_λ ( 0 ) as one arbitrary root of P(λ(0))=ζ0𝑃𝜆0subscript𝜁0P(\lambda(0))=\zeta_{0}italic_P ( italic_λ ( 0 ) ) = italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT. In the rest of this section, we assume that this choice is made consistently, even though it does not interfere with the set itself because λ𝜆\lambdaitalic_λ is periodic. The formula (28) implies that:

P(λ(2kdπ/N))=e2ikdπ/Nζ0.𝑃𝜆2𝑘𝑑𝜋𝑁superscript𝑒2𝑖𝑘𝑑𝜋𝑁subscript𝜁0P(\lambda(2kd\pi/N))=e^{2ikd\pi/N}\zeta_{0}.italic_P ( italic_λ ( 2 italic_k italic_d italic_π / italic_N ) ) = italic_e start_POSTSUPERSCRIPT 2 italic_i italic_k italic_d italic_π / italic_N end_POSTSUPERSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT . (32)

In particular, the mesh 𝕃ζ0,Nsubscript𝕃subscript𝜁0𝑁\mathbb{L}_{\zeta_{0},N}blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N end_POSTSUBSCRIPT is a finite subset of cardinality N𝑁Nitalic_N of the (smooth) level curve defined by |P(z)|=|ζ0|𝑃𝑧subscript𝜁0|P(z)|=|\zeta_{0}|| italic_P ( italic_z ) | = | italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT |. It is called a discrete level set of order N𝑁Nitalic_N. As

𝕃ζ0,N(P)𝕃ζ0,2N(P),subscript𝕃subscript𝜁0𝑁𝑃subscript𝕃subscript𝜁02𝑁𝑃\mathbb{L}_{\zeta_{0},N}(P)\subset\mathbb{L}_{\zeta_{0},2N}(P),blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N end_POSTSUBSCRIPT ( italic_P ) ⊂ blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , 2 italic_N end_POSTSUBSCRIPT ( italic_P ) ,

each mesh 𝕃ζ0,2m(P)subscript𝕃subscript𝜁0superscript2𝑚𝑃\mathbb{L}_{\zeta_{0},2^{m}}(P)blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_P ) is a refinement of 𝕃ζ0,2m1(P)subscript𝕃subscript𝜁0superscript2𝑚1𝑃\mathbb{L}_{\zeta_{0},2^{m-1}}(P)blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , 2 start_POSTSUPERSCRIPT italic_m - 1 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_P ). The mesh 𝕃ζ0,N(P)subscript𝕃subscript𝜁0𝑁𝑃\mathbb{L}_{\zeta_{0},N}(P)blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N end_POSTSUBSCRIPT ( italic_P ) is naturally self-refining. Increasing the value of N𝑁Nitalic_N creates a finer uniform mesh on the parameter side (roots of unity of higher order). However, on the preimage side of P𝑃Pitalic_P, the density of the mesh increases naturally around points of higher root density, as illustrated on Figure 6. Note that the previous considerations on the solutions of (27) imply that

P1(ζ0)=𝕃ζ0,degP(P)superscript𝑃1subscript𝜁0subscript𝕃subscript𝜁0degree𝑃𝑃P^{-1}(\zeta_{0})=\mathbb{L}_{\zeta_{0},\deg P}(P)italic_P start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) = blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , roman_deg italic_P end_POSTSUBSCRIPT ( italic_P )

as long as |ζ0|>max|P(Crit(P))|subscript𝜁0𝑃Crit𝑃|\zeta_{0}|>\max|P(\operatorname{Crit}(P))|| italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT | > roman_max | italic_P ( roman_Crit ( italic_P ) ) |.

Refer to caption
Figure 6: Initial mesh 𝕃ζ0,d(p5)subscript𝕃subscript𝜁0𝑑subscript𝑝5\mathbb{L}_{\zeta_{0},d}(p_{5})blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_d end_POSTSUBSCRIPT ( italic_p start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT ) as black points and part of 𝕃ζ0,8d(p5)subscript𝕃subscript𝜁08𝑑subscript𝑝5\mathbb{L}_{\zeta_{0},8d}(p_{5})blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , 8 italic_d end_POSTSUBSCRIPT ( italic_p start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT ) with d=16𝑑16d=16italic_d = 16 and ζ0=5subscript𝜁05\zeta_{0}=5italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 5. Two other level lines are depicted along with Newton’s flow (iso-angles). The map ΦP(z)=P(z)1/dsubscriptΦ𝑃𝑧𝑃superscript𝑧1𝑑\Phi_{P}(z)=P(z)^{1/d}roman_Φ start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ( italic_z ) = italic_P ( italic_z ) start_POSTSUPERSCRIPT 1 / italic_d end_POSTSUPERSCRIPT maps large level lines to circles (top right) while P𝑃Pitalic_P folds the level line ζ0subscript𝜁0\zeta_{0}italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT onto itself d𝑑ditalic_d times (bottom right). This figure is a commutative diagram.

Let us assume for now that one is able to compute 𝕃ζ0,N(P)subscript𝕃subscript𝜁0𝑁𝑃\mathbb{L}_{\zeta_{0},N}(P)blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N end_POSTSUBSCRIPT ( italic_P ) efficiently. Then, the (theoretical) algorithm consists in iterating either Newton’s flow or the Newton map from each point of 𝕃ζ0,N(P)subscript𝕃subscript𝜁0𝑁𝑃\mathbb{L}_{\zeta_{0},N}(P)blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N end_POSTSUBSCRIPT ( italic_P ) until roots are found up to the precision desired. Obviously, this step is highly parallelizable. Duplicates are eliminated from the list and if some roots are missing, N𝑁Nitalic_N can be increased.

The strategy for splitting P𝑃Pitalic_P can be formalized as follows. The constant cLsubscript𝑐𝐿c_{L}italic_c start_POSTSUBSCRIPT italic_L end_POSTSUBSCRIPT is chosen in accordance with Proposition 4.1. In practice, cL=4subscript𝑐𝐿4c_{L}=4italic_c start_POSTSUBSCRIPT italic_L end_POSTSUBSCRIPT = 4.

Data: λ0>max|P(Crit(P))|subscript𝜆0𝑃Crit𝑃\lambda_{0}>\max|P(\operatorname{Crit}(P))|italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT > roman_max | italic_P ( roman_Crit ( italic_P ) ) | and η𝜂\etaitalic_η level of quadratic convergence for NPsubscript𝑁𝑃N_{P}italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT.
Compute the discrete level line 𝕄=𝕃λ0,cLd(P)𝕄subscript𝕃subscript𝜆0subscript𝑐𝐿𝑑𝑃\mathbb{M}=\mathbb{L}_{\lambda_{0},c_{L}d}(P)blackboard_M = blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_c start_POSTSUBSCRIPT italic_L end_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_P )   /* O(d)𝑂𝑑O(d)italic_O ( italic_d ) */
1 for each z𝕄𝑧𝕄z\in\mathbb{M}italic_z ∈ blackboard_M do
       Iterate time-1-flow up to level η𝜂\etaitalic_η   /* O(T𝚏𝚕𝚘𝚠×logλ0η)𝑂subscript𝑇𝚏𝚕𝚘𝚠subscript𝜆0𝜂O(T_{\text{flow}}\times\log\frac{\lambda_{0}}{\eta})italic_O ( italic_T start_POSTSUBSCRIPT flow end_POSTSUBSCRIPT × roman_log divide start_ARG italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_ARG start_ARG italic_η end_ARG ) */
       Iterate NPsubscript𝑁𝑃N_{P}italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT up to desired precision ε𝜀\varepsilonitalic_ε   /* O(log|logε|)𝑂𝜀O(\log|\log\varepsilon|)italic_O ( roman_log | roman_log italic_ε | ) */
       Add root to appropriate data structure R𝑅Ritalic_R   /* O(1)𝑂1O(1)italic_O ( 1 ) */
2      
Algorithm 𝒮(P)𝒮𝑃\mathcal{S}(P)caligraphic_S ( italic_P )  1 Splitting algorithm for a polynomial P𝑃Pitalic_P (sequential version)

The discrete level line 𝕃ζ0,N(P)subscript𝕃subscript𝜁0𝑁𝑃\mathbb{L}_{\zeta_{0},N}(P)blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N end_POSTSUBSCRIPT ( italic_P ) is computed recursively using the following result. One defines the Newton map with target ζ0eiϑsubscript𝜁0superscript𝑒𝑖italic-ϑ\zeta_{0}e^{i\vartheta}italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT italic_i italic_ϑ end_POSTSUPERSCRIPT as the limit, if it exists:

L(P;z0,ζ0,ϑ)=limnNPζ0eiϑn(z0)𝐿𝑃subscript𝑧0subscript𝜁0italic-ϑsubscript𝑛superscriptsubscript𝑁𝑃subscript𝜁0superscript𝑒𝑖italic-ϑ𝑛subscript𝑧0L(P;z_{0},\zeta_{0},\vartheta)=\lim_{n\to\infty}N_{P-\zeta_{0}e^{i\vartheta}}^% {n}(z_{0})italic_L ( italic_P ; italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_ϑ ) = roman_lim start_POSTSUBSCRIPT italic_n → ∞ end_POSTSUBSCRIPT italic_N start_POSTSUBSCRIPT italic_P - italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT italic_i italic_ϑ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) (33)

where NQsubscript𝑁𝑄N_{Q}italic_N start_POSTSUBSCRIPT italic_Q end_POSTSUBSCRIPT is the Newton map (15) of a polynomial Q𝑄Qitalic_Q and powers denote, as usual, composition. By construction, P(L(P;z0,ζ0,ϑ))=ζeiϑ𝑃𝐿𝑃subscript𝑧0subscript𝜁0italic-ϑ𝜁superscript𝑒𝑖italic-ϑP(L(P;z_{0},\zeta_{0},\vartheta))=\zeta e^{i\vartheta}italic_P ( italic_L ( italic_P ; italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_ϑ ) ) = italic_ζ italic_e start_POSTSUPERSCRIPT italic_i italic_ϑ end_POSTSUPERSCRIPT.

Proposition 4.1.

Given z0subscript𝑧0z_{0}italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT such that |P(z0)|>max|P(Crit(P))|𝑃subscript𝑧0𝑃normal-Crit𝑃|P(z_{0})|>\max|P(\operatorname{Crit}(P))|| italic_P ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) | > roman_max | italic_P ( roman_Crit ( italic_P ) ) |, an arbitrary integer N𝑁superscriptnormal-∗N\in\mathbb{N}^{\ast}italic_N ∈ blackboard_N start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT there exists M𝑀superscriptnormal-∗M\in\mathbb{N}^{\ast}italic_M ∈ blackboard_N start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT large enough such that the finite sequence

zk+1=L(P;zk,P(zk),2πdMN)subscript𝑧𝑘1𝐿𝑃subscript𝑧𝑘𝑃subscript𝑧𝑘2𝜋𝑑𝑀𝑁z_{k+1}=L\left(P;z_{k},P(z_{k}),{\textstyle\frac{2\pi d}{MN}}\right)italic_z start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT = italic_L ( italic_P ; italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_P ( italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) , divide start_ARG 2 italic_π italic_d end_ARG start_ARG italic_M italic_N end_ARG ) (34)

satisfies 𝕃P(z0),N={z0,zM,z2M,,z(N1)M}subscript𝕃𝑃subscript𝑧0𝑁subscript𝑧0subscript𝑧𝑀subscript𝑧2𝑀normal-…subscript𝑧𝑁1𝑀\mathbb{L}_{P(z_{0}),N}=\{z_{0},z_{M},z_{2M},\ldots,z_{(N-1)M}\}blackboard_L start_POSTSUBSCRIPT italic_P ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) , italic_N end_POSTSUBSCRIPT = { italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_z start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT , italic_z start_POSTSUBSCRIPT 2 italic_M end_POSTSUBSCRIPT , … , italic_z start_POSTSUBSCRIPT ( italic_N - 1 ) italic_M end_POSTSUBSCRIPT }.

Remark 6.

In practice, 𝕃ζ0,N(P)={z0~,,z~N1}subscript𝕃subscript𝜁0𝑁𝑃normal-~subscript𝑧0normal-…subscriptnormal-~𝑧𝑁1\mathbb{L}_{\zeta_{0},N}(P)=\{\tilde{z_{0}},\ldots,\tilde{z}_{N-1}\}blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N end_POSTSUBSCRIPT ( italic_P ) = { over~ start_ARG italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_ARG , … , over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_N - 1 end_POSTSUBSCRIPT } where z~k=zkMsubscriptnormal-~𝑧𝑘subscript𝑧𝑘𝑀\tilde{z}_{k}=z_{kM}over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_z start_POSTSUBSCRIPT italic_k italic_M end_POSTSUBSCRIPT where the auxiliary finite sequence (zkM+j)j0,Msubscriptsubscript𝑧𝑘𝑀𝑗𝑗0𝑀(z_{kM+j})_{j\in\llbracket{0},{M}\rrbracket}( italic_z start_POSTSUBSCRIPT italic_k italic_M + italic_j end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_j ∈ ⟦ 0 , italic_M ⟧ end_POSTSUBSCRIPT is defined recursively from z~ksubscriptnormal-~𝑧𝑘\tilde{z}_{k}over~ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT such that

P(zkM+j)=ζ0e2iπdkM+jNM.𝑃subscript𝑧𝑘𝑀𝑗subscript𝜁0superscript𝑒2𝑖𝜋𝑑𝑘𝑀𝑗𝑁𝑀P(z_{kM+j})=\zeta_{0}e^{2i\pi d\,\frac{kM+j}{NM}}.italic_P ( italic_z start_POSTSUBSCRIPT italic_k italic_M + italic_j end_POSTSUBSCRIPT ) = italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT italic_e start_POSTSUPERSCRIPT 2 italic_i italic_π italic_d divide start_ARG italic_k italic_M + italic_j end_ARG start_ARG italic_N italic_M end_ARG end_POSTSUPERSCRIPT .

When N=d𝑁𝑑N=ditalic_N = italic_d, the phase shift is simpler. The phase of P(z)𝑃𝑧P(z)italic_P ( italic_z ) changes d=degP𝑑degree𝑃d=\deg Pitalic_d = roman_deg italic_P times along |P(z)|=λ𝑃𝑧𝜆|P(z)|=\lambda| italic_P ( italic_z ) | = italic_λ; each time the phase advances by 2π2𝜋2\pi2 italic_π (one turn), we have a new point of 𝕃ζ0,d(P)subscript𝕃subscript𝜁0𝑑𝑃\mathbb{L}_{\zeta_{0},d}(P)blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_d end_POSTSUBSCRIPT ( italic_P ). Each discrete turn is completed with M𝑀Mitalic_M intermediary steps, as illustrated on Figure 6. The value M𝑀Mitalic_M is called the number of points per turn for the computation of 𝕃ζ0,d(P)subscript𝕃subscript𝜁0𝑑𝑃\mathbb{L}_{\zeta_{0},d}(P)blackboard_L start_POSTSUBSCRIPT italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_d end_POSTSUBSCRIPT ( italic_P ). When N𝑁Nitalic_N divides d𝑑ditalic_d, roots of P(z)=ζ0𝑃𝑧subscript𝜁0P(z)=\zeta_{0}italic_P ( italic_z ) = italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT are being skipped.

Proof.

Let C=max|P(Crit(P))|𝐶𝑃Crit𝑃C=\max|P(\operatorname{Crit}(P))|italic_C = roman_max | italic_P ( roman_Crit ( italic_P ) ) |. Applying the same argument as in [Jun85], one can claim the following: for ζ𝜁\zeta\in\mathbb{C}italic_ζ ∈ blackboard_C such that |ζ|>C𝜁𝐶|\zeta|>C| italic_ζ | > italic_C there is unique analytic determination of ΦP(z)=P(z)1/dsubscriptΦ𝑃𝑧𝑃superscript𝑧1𝑑\Phi_{P}(z)=P(z)^{1/d}roman_Φ start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ( italic_z ) = italic_P ( italic_z ) start_POSTSUPERSCRIPT 1 / italic_d end_POSTSUPERSCRIPT which is determined by the constraint ΦP(z)zsimilar-tosubscriptΦ𝑃𝑧𝑧\Phi_{P}(z)\sim zroman_Φ start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ( italic_z ) ∼ italic_z as |z|𝑧|z|\to\infty| italic_z | → ∞. Moreover, the map ΦPsubscriptΦ𝑃\Phi_{P}roman_Φ start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT is univalent on {z¯;|P(z)|>C}formulae-sequence𝑧¯𝑃𝑧𝐶\{z\in\overline{\mathbb{C}}\,;\,|P(z)|>C\}{ italic_z ∈ over¯ start_ARG blackboard_C end_ARG ; | italic_P ( italic_z ) | > italic_C }. Choosing a guard γ>C𝛾𝐶\gamma>Citalic_γ > italic_C and a number of intermediary points M2πγ|ζ|C|ζ|𝑀2𝜋𝛾𝜁𝐶𝜁M\geq\frac{2\pi\gamma}{|\zeta|-C}|\zeta|italic_M ≥ divide start_ARG 2 italic_π italic_γ end_ARG start_ARG | italic_ζ | - italic_C end_ARG | italic_ζ | ensures

|P(zkM+j)|Cγ|P(zkM+j)P(zkM+j+1)|.𝑃subscript𝑧𝑘𝑀𝑗𝐶𝛾𝑃subscript𝑧𝑘𝑀𝑗𝑃subscript𝑧𝑘𝑀𝑗1|P(z_{kM+j})|-C\geq\gamma|P(z_{kM+j})-P(z_{kM+j+1})|.| italic_P ( italic_z start_POSTSUBSCRIPT italic_k italic_M + italic_j end_POSTSUBSCRIPT ) | - italic_C ≥ italic_γ | italic_P ( italic_z start_POSTSUBSCRIPT italic_k italic_M + italic_j end_POSTSUBSCRIPT ) - italic_P ( italic_z start_POSTSUBSCRIPT italic_k italic_M + italic_j + 1 end_POSTSUBSCRIPT ) | . (35)

The rigidity provided by Kobe’s Theorem 12 ensures that one captures the right root. ∎


Heuristically, Newton’s descend can be split in two phases. In the first phase, the discrete version (iterating NPsubscript𝑁𝑃N_{P}italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT) is roughly equivalent to following the iso-angle rays in time 1. An exact upper-bound of the number of steps is available for the continuous flow. We call Tflowsubscript𝑇flowT_{\text{flow}}italic_T start_POSTSUBSCRIPT flow end_POSTSUBSCRIPT the arithmetic cost of following the continuous flow in time 1 and factor it out.

Proposition 4.2.

Given a point z0subscript𝑧0z_{0}italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT such that |P(z0)|=λ1𝑃subscript𝑧0subscript𝜆1|P(z_{0})|=\lambda_{1}| italic_P ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) | = italic_λ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and λ2<λ1subscript𝜆2subscript𝜆1\lambda_{2}<\lambda_{1}italic_λ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT < italic_λ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, the Newton flow ζ(t)𝜁𝑡\zeta(t)italic_ζ ( italic_t ) of P𝑃Pitalic_P defined by (24) with ζ(0)=z0𝜁0subscript𝑧0\zeta(0)=z_{0}italic_ζ ( 0 ) = italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT satisfies

|P(ζ(t))|λ2if and only iftlogλ1λ2|P(\zeta(t))|\leq\lambda_{2}\qquad\text{if and only if}\qquad t\geq\log\frac{% \lambda_{1}}{\lambda_{2}}\cdotp| italic_P ( italic_ζ ( italic_t ) ) | ≤ italic_λ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT if and only if italic_t ≥ roman_log divide start_ARG italic_λ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_λ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG ⋅

In other terms, the number of iterations of the time 1 Newton flow that connect two level lines is logarithmic in the ratio of the levels.

Proof.

According to (25), each time 1 iteration of Newton’s flow divides the modulus of the value of the polynomial by e𝑒eitalic_e. ∎

In the second phase (assuming simple roots), NPsubscript𝑁𝑃N_{P}italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT converges quadratically.

Proposition 4.3.

If P1(D(0,η))superscript𝑃1𝐷0𝜂P^{-1}(D(0,\eta))italic_P start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_D ( 0 , italic_η ) ) in included in the union of the quadratic bassins of the Newton’s method, it takes O(loglogη/ε)𝑂𝜂𝜀O(\log\log\eta/\varepsilon)italic_O ( roman_log roman_log italic_η / italic_ε ) Newton steps to go from the level line η𝜂\etaitalic_η to the final desired precision ε𝜀\varepsilonitalic_ε.


The appropriate data structure that allows sorting and insertions of d𝑑ditalic_d points with total complexity of only O(d)𝑂𝑑O(d)italic_O ( italic_d ) will be presented in Section 6.

4.2 Specifics for polynomials related to \mathcal{M}caligraphic_M

In full generality, 𝒮(P)𝒮𝑃\mathcal{S}(P)caligraphic_S ( italic_P ) is not yet ready to rival the algorithm of [HSS01]. However, in practice, our strategy behaves extremely well (see Section 6).


In our implementation, the outmost level line is ζ0=5subscript𝜁05\zeta_{0}=5italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 5 for pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and ζ0=100subscript𝜁0100\zeta_{0}=100italic_ζ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 100 for q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT. For the smallest degrees, there is no need for parallelism and it is not necessary to refine the level curve: one applies simply 𝒮(P)𝒮𝑃\mathcal{S}(P)caligraphic_S ( italic_P ) with 4d4𝑑4d4 italic_d points, i.e. cL=4subscript𝑐𝐿4c_{L}=4italic_c start_POSTSUBSCRIPT italic_L end_POSTSUBSCRIPT = 4.


To split pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT for large n𝑛nitalic_n, a massively parallel implementation is welcome and can be formalized as follows. Upper bounds on the arithmetic complexity are given as commentaries. The mention para indicates that the operation can be performed in a trivially parallel fashion (i.e. as J𝐽Jitalic_J independent jobs) on multiple computing units ; on the other hand, the mention mono is a step that should be performed on a single computing unit.


One chooses a constant cNsubscript𝑐𝑁c_{N}italic_c start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT that will cap the number of Newton iterates to cNlogdsubscript𝑐𝑁𝑑c_{N}\log ditalic_c start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT roman_log italic_d. In practice, cN=1subscript𝑐𝑁1c_{N}=1italic_c start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT = 1 for pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT or cN=2.6subscript𝑐𝑁2.6c_{N}=2.6italic_c start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT = 2.6 for q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT.

1 begin compute level lines
       coarse level line 𝕃λ0,N0(P)subscript𝕃subscript𝜆0subscript𝑁0𝑃\mathbb{L}_{\lambda_{0},N_{0}}(P)blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( italic_P )   /* O(1)𝑂1O(1)italic_O ( 1 ) mono */
       refine level line to 𝕃λ0,N1(P)=𝕄jsubscript𝕃subscript𝜆0subscript𝑁1𝑃subscript𝕄𝑗\mathbb{L}_{\lambda_{0},N_{1}}(P)=\bigcup\mathbb{M}_{j}blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( italic_P ) = ⋃ blackboard_M start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT   /* O(d)𝑂𝑑O(d)italic_O ( italic_d ) para */
2      with N1N0×2subscript𝑁1subscript𝑁0superscript2N_{1}\in N_{0}\times 2^{\mathbb{N}}italic_N start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∈ italic_N start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT × 2 start_POSTSUPERSCRIPT blackboard_N end_POSTSUPERSCRIPT such that N1=cLdsubscript𝑁1subscript𝑐𝐿𝑑N_{1}=c_{L}ditalic_N start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_c start_POSTSUBSCRIPT italic_L end_POSTSUBSCRIPT italic_d
3
4begin root finding
5       for each parallel job j{1,,J}𝑗1normal-…𝐽j\in\{1,\ldots,J\}italic_j ∈ { 1 , … , italic_J } do
6             for each z𝕄j𝑧subscript𝕄𝑗z\in\mathbb{M}_{j}italic_z ∈ blackboard_M start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT do
                   iterate NPsubscript𝑁𝑃N_{P}italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT up to max{20;cNlogd}20subscript𝑐𝑁𝑑\max\{20;c_{N}\log d\}roman_max { 20 ; italic_c start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT roman_log italic_d }   /* O(logd)𝑂𝑑O(\log d)italic_O ( roman_log italic_d ) para */
7                  
            sort roots Rjsubscript𝑅𝑗R_{j}italic_R start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT in appropriate data structure   /* O(1)𝑂1O(1)italic_O ( 1 ) para */
8            
      merge roots from all jobs R=Rj𝑅subscript𝑅𝑗R=\bigcup R_{j}italic_R = ⋃ italic_R start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT   /* O(d/J)𝑂𝑑𝐽O(d/J)italic_O ( italic_d / italic_J ) mono */
9      
10
11begin certification
12       for each zR𝑧𝑅z\in Ritalic_z ∈ italic_R do
             check P(z)=0𝑃𝑧0P(z)=0italic_P ( italic_z ) = 0 using disk arithmetic   /* O(logd)𝑂𝑑O(\log d)italic_O ( roman_log italic_d ) para */
13            
14      
15
Algorithm 𝒮//subscript𝒮\mathcal{S}_{\mathrel{\mathchoice{\leavevmode\resizebox{}{4.78333pt}{\raisebox% {0.0pt}{$\displaystyle/\mkern-5.0mu/$}}}{\leavevmode\resizebox{}{4.78333pt}{% \raisebox{0.0pt}{$\textstyle/\mkern-5.0mu/$}}}{\leavevmode\resizebox{}{3.34833% pt}{\raisebox{0.0pt}{$\scriptstyle/\mkern-5.0mu/$}}}{\leavevmode\resizebox{}{2% .39166pt}{\raisebox{0.0pt}{$\scriptscriptstyle/\mkern-5.0mu/$}}}}}caligraphic_S start_POSTSUBSCRIPT / / end_POSTSUBSCRIPT  2 Splitting algorithm for pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT (parallel & certified version)

Refer to caption
Figure 7: Level sets of pksubscript𝑝𝑘p_{k}italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT for 10k1810𝑘1810\leq k\leq 1810 ≤ italic_k ≤ 18 (red) and hyperbolic centers Hyp(n)Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n ) for n12𝑛12n\leq 12italic_n ≤ 12 (green). The level lines 𝕃λ,Nsubscript𝕃𝜆𝑁\mathbb{L}_{\lambda,N}blackboard_L start_POSTSUBSCRIPT italic_λ , italic_N end_POSTSUBSCRIPT tend to self-refine around regions where argP(z)𝑃𝑧\arg P(z)roman_arg italic_P ( italic_z ) cycles most, which reflects a higher intrication of the bassins of attraction for the Newton flow and the Newton map.

Let us go over each step in details and justify the bounds on the arithmetic complexity claimed above.


The mesh refinement is possible because the pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT are defined recursively (see below). Each point 𝕃λ0,N0(P)subscript𝕃subscript𝜆0subscript𝑁0𝑃\mathbb{L}_{\lambda_{0},N_{0}}(P)blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( italic_P ) can then be used as a starting point of an independent job so one can choose JN0𝐽subscript𝑁0J\leq N_{0}italic_J ≤ italic_N start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT. By construction, there are N1/N01subscript𝑁1subscript𝑁01N_{1}/N_{0}-1italic_N start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT / italic_N start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - 1 points of 𝕃λ0,N1(P)subscript𝕃subscript𝜆0subscript𝑁1𝑃\mathbb{L}_{\lambda_{0},N_{1}}(P)blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( italic_P ) between each pair of consecutive points of 𝕃λ0,N0(P)subscript𝕃subscript𝜆0subscript𝑁0𝑃\mathbb{L}_{\lambda_{0},N_{0}}(P)blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( italic_P ). According to Theorem 4, it means that the algorithm will produce #Rjd/J#subscript𝑅𝑗𝑑𝐽\#R_{j}\leq d/J# italic_R start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ≤ italic_d / italic_J roots per job.

For large degrees (typically n17𝑛17n\geq 17italic_n ≥ 17), the coarse level set corresponds to N0=215subscript𝑁0superscript215N_{0}=2^{15}italic_N start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 2 start_POSTSUPERSCRIPT 15 end_POSTSUPERSCRIPT which means that 16 385 starting points such that |P(z)|=λ0𝑃𝑧subscript𝜆0|P(z)|=\lambda_{0}| italic_P ( italic_z ) | = italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT are computed in the upper plane Imz0Im𝑧0\operatorname{Im}z\geq 0roman_Im italic_z ≥ 0, with argP(z)=2kπ/N0𝑃𝑧2𝑘𝜋subscript𝑁0\arg P(z)=2k\pi/N_{0}roman_arg italic_P ( italic_z ) = 2 italic_k italic_π / italic_N start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT and k0,N0𝑘0subscript𝑁0k\in\llbracket{0},{N_{0}}\rrbracketitalic_k ∈ ⟦ 0 , italic_N start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ⟧. For the intermediary periods, we found it more practical to group consecutive jobs together in order to ensure an approximately constant size for #Rj#subscript𝑅𝑗\#R_{j}# italic_R start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT (and thus consistent file sizes across the project).

Let us now explain how 𝕃λ0,cLd(P)subscript𝕃subscript𝜆0subscript𝑐𝐿𝑑𝑃\mathbb{L}_{\lambda_{0},c_{L}d}(P)blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_c start_POSTSUBSCRIPT italic_L end_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ( italic_P ) can be computed efficiently using a parallel algorithm. As the cardinality of this mesh is cLdsubscript𝑐𝐿𝑑c_{L}ditalic_c start_POSTSUBSCRIPT italic_L end_POSTSUBSCRIPT italic_d, the huge volume of data prohibits to compute the mesh ahead of time or to store it on disk when d𝑑ditalic_d reaches the tera-scale. The pertinent subsection of the mesh has to be generated on the fly by each computing process.

For the Mandelbrot set, one uses the fact that the polynomials (pk)k3subscriptsubscript𝑝𝑘𝑘3(p_{k})_{k\geq 3}( italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_k ≥ 3 end_POSTSUBSCRIPT form a nested family whose level lines encircle \mathcal{M}caligraphic_M tightly (see Figure 7). One computes an initial mesh 𝕃λ0,215(p16)subscript𝕃subscript𝜆0superscript215subscript𝑝16\mathbb{L}_{\lambda_{0},2^{15}}(p_{16})blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , 2 start_POSTSUPERSCRIPT 15 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_p start_POSTSUBSCRIPT 16 end_POSTSUBSCRIPT ). Next, one observes that

p17(zj)=p16(zj)2+zj=λ02+zj.subscript𝑝17subscript𝑧𝑗subscript𝑝16superscriptsubscript𝑧𝑗2subscript𝑧𝑗superscriptsubscript𝜆02subscript𝑧𝑗p_{17}(z_{j})=p_{16}(z_{j})^{2}+z_{j}=\lambda_{0}^{2}+z_{j}.italic_p start_POSTSUBSCRIPT 17 end_POSTSUBSCRIPT ( italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) = italic_p start_POSTSUBSCRIPT 16 end_POSTSUBSCRIPT ( italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT .

Using the guard γ𝛾\gammaitalic_γ as in (35), we can find zjsuperscriptsubscript𝑧𝑗z_{j}^{\prime}italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT close to zjsubscript𝑧𝑗z_{j}italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT such that p17(zj)=λ02subscript𝑝17superscriptsubscript𝑧𝑗superscriptsubscript𝜆02p_{17}(z_{j}^{\prime})=\lambda_{0}^{2}italic_p start_POSTSUBSCRIPT 17 end_POSTSUBSCRIPT ( italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) = italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT. This means that zj𝕃λ02,215(p16)superscriptsubscript𝑧𝑗subscript𝕃superscriptsubscript𝜆02superscript215subscript𝑝16z_{j}^{\prime}\in\mathbb{L}_{\lambda_{0}^{2},2^{15}}(p_{16})italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , 2 start_POSTSUPERSCRIPT 15 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_p start_POSTSUBSCRIPT 16 end_POSTSUBSCRIPT ) with the correct index. Iterating this method, one can then use zjsuperscriptsubscript𝑧𝑗z_{j}^{\prime}italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT as starting points to solve iteratively p17(z)=rksubscript𝑝17𝑧subscript𝑟𝑘p_{17}(z)=r_{k}italic_p start_POSTSUBSCRIPT 17 end_POSTSUBSCRIPT ( italic_z ) = italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT where the radius rksubscript𝑟𝑘r_{k}italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT is gradually reduced from λ02superscriptsubscript𝜆02\lambda_{0}^{2}italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT down to λ0subscript𝜆0\lambda_{0}italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT. In the end, one obtains 𝕃λ0,215(p17)subscript𝕃subscript𝜆0superscript215subscript𝑝17\mathbb{L}_{\lambda_{0},2^{15}}(p_{17})blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , 2 start_POSTSUPERSCRIPT 15 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_p start_POSTSUBSCRIPT 17 end_POSTSUBSCRIPT ). In a similar fashion, one can construct the mesh 𝕃λ0,215(pk+1)subscript𝕃subscript𝜆0superscript215subscript𝑝𝑘1\mathbb{L}_{\lambda_{0},2^{15}}(p_{k+1})blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , 2 start_POSTSUPERSCRIPT 15 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_p start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ) from 𝕃λ0,215(pk)subscript𝕃subscript𝜆0superscript215subscript𝑝𝑘\mathbb{L}_{\lambda_{0},2^{15}}(p_{k})blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , 2 start_POSTSUPERSCRIPT 15 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) in negligible time. This method is the key to the parallelization as each point of 𝕃λ0,215(pk)subscript𝕃subscript𝜆0superscript215subscript𝑝𝑘\mathbb{L}_{\lambda_{0},2^{15}}(p_{k})blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , 2 start_POSTSUPERSCRIPT 15 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) is the seed of a parallel task.


The guard γ𝛾\gammaitalic_γ in (the proof of) Proposition 4.1 is γ=6.1𝛾6.1\gamma=6.1italic_γ = 6.1 because of the following statement, which is based on the fact that the highest critical value (in module) of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT is reached along the real axis, at the left-most tip of the Mandelbrot set and is asymptotically equal to 2222.

Theorem 5 ([Jun85]).

There exists a sequence of analytic maps Φk:c¯normal-:subscriptnormal-Φ𝑘normal-→superscript𝑐normal-¯\Phi_{k}:\mathcal{M}^{c}\to\overline{\mathbb{C}}roman_Φ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT : caligraphic_M start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT → over¯ start_ARG blackboard_C end_ARG such that

k3,Φk(c)dk=pk(c)𝑎𝑛𝑑Φk(c)|c|cformulae-sequencefor-all𝑘3subscriptΦ𝑘superscript𝑐subscript𝑑𝑘subscript𝑝𝑘𝑐𝑎𝑛𝑑subscriptΦ𝑘𝑐𝑐similar-to𝑐\forall k\geq 3,\qquad\Phi_{k}(c)^{d_{k}}=p_{k}(c)\qquad\text{and}\qquad\Phi_{% k}(c)\underset{|c|\to\infty}{\sim}c∀ italic_k ≥ 3 , roman_Φ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_c ) start_POSTSUPERSCRIPT italic_d start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT end_POSTSUPERSCRIPT = italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_c ) and roman_Φ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_c ) start_UNDERACCENT | italic_c | → ∞ end_UNDERACCENT start_ARG ∼ end_ARG italic_c (36)

with dk=2k1subscript𝑑𝑘superscript2𝑘1d_{k}=2^{k-1}italic_d start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = 2 start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT. The map Φksubscriptnormal-Φ𝑘\Phi_{k}roman_Φ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT is one-to-one from Uk={z¯;|pk+1(c)|>2}subscript𝑈𝑘formulae-sequence𝑧normal-¯subscript𝑝𝑘1𝑐2U_{k}=\{z\in\overline{\mathbb{C}}\,;\,|p_{k+1}(c)|>2\}italic_U start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = { italic_z ∈ over¯ start_ARG blackboard_C end_ARG ; | italic_p start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ( italic_c ) | > 2 } onto the outer disk {z¯;|z|>22k}formulae-sequence𝑧normal-¯𝑧superscript2superscript2𝑘\{z\in\overline{\mathbb{C}}\,;\,|z|>2^{2^{-k}}\}{ italic_z ∈ over¯ start_ARG blackboard_C end_ARG ; | italic_z | > 2 start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT - italic_k end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT }. The sequence converges uniformly on compact sets to the Riemann map c{}¯\𝔻(0,1)¯cnormal-→superscript𝑐normal-\normal-¯superscriptnormal-¯𝔻01𝑐\mathcal{M}^{c}\,\cup\{\infty\}\to\bar{\mathbb{C}}\backslash\overline{\mathbb{% D}(0,1)}^{c}caligraphic_M start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT ∪ { ∞ } → over¯ start_ARG blackboard_C end_ARG \ over¯ start_ARG blackboard_D ( 0 , 1 ) end_ARG start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT.

Remark 7.

The Riemann map is given by Φ(c)=φc(c)normal-Φ𝑐subscript𝜑𝑐𝑐\Phi(c)=\varphi_{c}(c)roman_Φ ( italic_c ) = italic_φ start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_c ) where φcsubscript𝜑𝑐\varphi_{c}italic_φ start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT is the map

φc(z)=zn=0(1+cfcn(z)2)2n1=limnfcn(z)2nsubscript𝜑𝑐𝑧𝑧superscriptsubscriptproduct𝑛0superscript1𝑐superscriptsubscript𝑓𝑐𝑛superscript𝑧2superscript2𝑛1subscript𝑛superscriptsubscript𝑓𝑐𝑛superscript𝑧superscript2𝑛\varphi_{c}(z)=z\prod_{n=0}^{\infty}\left(1+\frac{c}{f_{c}^{n}(z)^{2}}\right)^% {2^{-n-1}}=\lim_{n\to\infty}f_{c}^{n}(z)^{2^{-n}}italic_φ start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_z ) = italic_z ∏ start_POSTSUBSCRIPT italic_n = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∞ end_POSTSUPERSCRIPT ( 1 + divide start_ARG italic_c end_ARG start_ARG italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ( italic_z ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG ) start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT - italic_n - 1 end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT = roman_lim start_POSTSUBSCRIPT italic_n → ∞ end_POSTSUBSCRIPT italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ( italic_z ) start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT - italic_n end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT

that conjugates the dynamics on fc1(¯\D(0,|c|))superscriptsubscript𝑓𝑐1normal-\normal-¯normal-D0𝑐f_{c}^{-1}(\overline{\mathbb{C}}\,\backslash\operatorname{D}(0,|c|))italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( over¯ start_ARG blackboard_C end_ARG \ roman_D ( 0 , | italic_c | ) ) to that of z2superscript𝑧2z^{2}italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT, i.e.

fc(z)=φc1(φc(z)2).subscript𝑓𝑐𝑧superscriptsubscript𝜑𝑐1subscript𝜑𝑐superscript𝑧2f_{c}(z)=\varphi_{c}^{-1}(\varphi_{c}(z)^{2}).italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_z ) = italic_φ start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_φ start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_z ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) .

It satisfies φc(z)=z+o(1)subscript𝜑𝑐𝑧𝑧𝑜1\varphi_{c}(z)=z+o(1)italic_φ start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_z ) = italic_z + italic_o ( 1 ) at infinity. The function Gc(z)=log|φc(z)|subscript𝐺𝑐𝑧subscript𝜑𝑐𝑧G_{c}(z)=\log|\varphi_{c}(z)|italic_G start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_z ) = roman_log | italic_φ start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_z ) | is the Green function of the unbounded component of csubscript𝑐\mathcal{F}_{c}caligraphic_F start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT, with pole at \infty.

In practice, the number of Newton steps necessary to jump from the level line λ0subscript𝜆0\lambda_{0}italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT to a neighbourhood D(z,ε)D𝑧𝜀\operatorname{D}(z,\varepsilon)roman_D ( italic_z , italic_ε ) of a root z𝑧zitalic_z is almost constant: on average, no more then 12 steps where necessary to split p41subscript𝑝41p_{41}italic_p start_POSTSUBSCRIPT 41 end_POSTSUBSCRIPT, most of which can even be performed in a lower precision (see Table 3 in Section 6).

4.3 About multiple roots

As the level line is chosen above the highest modulus of critical values, the algorithm is not affected by multiple roots. A root of multiplicity m𝑚mitalic_m will be reached along m𝑚mitalic_m distinct iso-angles. In practice, our benchmarks (see Section 6.4.2) confirm that our algorithm is indeed robust to high multiplicities.

5 The certification process

As illustrated in [RSS17], there are various techniques to convince oneself that one has found all roots. For example, one can use Viete’s identities to check that a few sums of the powers of the roots are in concordance with the first coefficients of the polynomial. Occasionally, this technique can provide some help in finding a few missing roots. However, for very large degrees, the cost of this checkup may become prohibitive for a result that, in the worst case, could be no more than a lucky coincidence.

Each of our results comes instead with a numerical proof, based on disk arithmetic. The complexity of checking that P(z)=0𝑃𝑧0P(z)=0italic_P ( italic_z ) = 0 using our method is O(dlogd)𝑂𝑑𝑑O(d\log d)italic_O ( italic_d roman_log italic_d ).

5.1 How to prove the localization of a root

Let us consider fHol(U)𝑓Hol𝑈f\in\operatorname{Hol}(U)italic_f ∈ roman_Hol ( italic_U ) and assume that one has found a point z0Usubscript𝑧0𝑈z_{0}\in Uitalic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ∈ italic_U such that f(z0)D(0,ε)𝑓subscript𝑧0D0𝜀f(z_{0})\in\operatorname{D}(0,\varepsilon)italic_f ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) ∈ roman_D ( 0 , italic_ε ) for some ε>0𝜀0\varepsilon>0italic_ε > 0 and f(z0)D(λ,η)superscript𝑓subscript𝑧0D𝜆𝜂f^{\prime}(z_{0})\in\operatorname{D}(\lambda,\eta)italic_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) ∈ roman_D ( italic_λ , italic_η ) with |λ|>η>0𝜆𝜂0|\lambda|>\eta>0| italic_λ | > italic_η > 0. If ε/(|λ|η)𝜀𝜆𝜂\varepsilon/(|\lambda|-\eta)italic_ε / ( | italic_λ | - italic_η ) is small enough, one can expect the existence of an exact root of f𝑓fitalic_f in the immediate vicinity of z0subscript𝑧0z_{0}italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT. This idea is at the heart of Newton’s method. We can combine it with the spirit of Rouché’s theorem 11 to produce a quantifiable statement.

Theorem 6.

Given a holomorphic function fHol(U)𝑓normal-Hol𝑈f\in\operatorname{Hol}(U)italic_f ∈ roman_Hol ( italic_U ), a disk B=D(z0,R)𝐵normal-Dsubscript𝑧0𝑅B=\operatorname{D}(z_{0},R)italic_B = roman_D ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_R ) such that B¯Unormal-¯𝐵𝑈\bar{B}\subset Uover¯ start_ARG italic_B end_ARG ⊂ italic_U and Bsuperscript𝐵normal-′B^{\prime}italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT a second disk such that f(B)Bsuperscript𝑓normal-′𝐵superscript𝐵normal-′f^{\prime}(B)\subset B^{\prime}italic_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_B ) ⊂ italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, we assume that

Rdist(0,B)>|f(z0)|.𝑅dist0superscript𝐵𝑓subscript𝑧0R\operatorname{dist}(0,B^{\prime})>|f(z_{0})|.italic_R roman_dist ( 0 , italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) > | italic_f ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) | . (37)

Then there exists a unique point zBsubscript𝑧normal-∗𝐵z_{\ast}\in Bitalic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ∈ italic_B such that f(z)=0𝑓subscript𝑧normal-∗0f(z_{\ast})=0italic_f ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ) = 0.

Remark 8.

Note that, zsubscript𝑧normal-∗z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT is necessarily a simple root of f𝑓fitalic_f. In practice, disk arithmetic (see §5.3) provides an upper bound of |f(z0)|𝑓subscript𝑧0|f(z_{0})|| italic_f ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) | and, for a given R>0𝑅0R>0italic_R > 0, also of |f(z)z1|superscript𝑓normal-′𝑧subscript𝑧1|f^{\prime}(z)-z_{1}|| italic_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z ) - italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT | when zB𝑧𝐵z\in Bitalic_z ∈ italic_B, where z1subscript𝑧1z_{1}italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT is a numerical approximation of f(z0)superscript𝑓normal-′subscript𝑧0f^{\prime}(z_{0})italic_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ). One can then construct Bsuperscript𝐵normal-′B^{\prime}italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT and check if (37) is indeed satisfied.

Proof.

Let us introduce the arc γ(t)=z0+Re2iπt𝛾𝑡subscript𝑧0𝑅superscript𝑒2𝑖𝜋𝑡\gamma(t)=z_{0}+Re^{2i\pi t}italic_γ ( italic_t ) = italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_R italic_e start_POSTSUPERSCRIPT 2 italic_i italic_π italic_t end_POSTSUPERSCRIPT for t[0,1]𝑡01t\in[0,1]italic_t ∈ [ 0 , 1 ]. The fundamental theorem of calculus and the convexity of Bsuperscript𝐵B^{\prime}italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT imply:

f(γ(t))=f(z0)+Re2iπt01f(z0+sRe2iπt)𝑑sf(z0)+Re2iπtB.𝑓𝛾𝑡𝑓subscript𝑧0𝑅superscript𝑒2𝑖𝜋𝑡superscriptsubscript01superscript𝑓subscript𝑧0𝑠𝑅superscript𝑒2𝑖𝜋𝑡differential-d𝑠𝑓subscript𝑧0𝑅superscript𝑒2𝑖𝜋𝑡superscript𝐵f(\gamma(t))=f(z_{0})+Re^{2i\pi t}\int_{0}^{1}f^{\prime}(z_{0}+sRe^{2i\pi t})% ds\in f(z_{0})+Re^{2i\pi t}\cdot B^{\prime}.italic_f ( italic_γ ( italic_t ) ) = italic_f ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) + italic_R italic_e start_POSTSUPERSCRIPT 2 italic_i italic_π italic_t end_POSTSUPERSCRIPT ∫ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT italic_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_s italic_R italic_e start_POSTSUPERSCRIPT 2 italic_i italic_π italic_t end_POSTSUPERSCRIPT ) italic_d italic_s ∈ italic_f ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) + italic_R italic_e start_POSTSUPERSCRIPT 2 italic_i italic_π italic_t end_POSTSUPERSCRIPT ⋅ italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT .

Assumption (37) thus implies that fγ𝑓𝛾f\circ\gammaitalic_f ∘ italic_γ is valued in an annulus centered at f(z0)𝑓subscript𝑧0f(z_{0})italic_f ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) that encircles zero. Its winding number with respect to zero is thus the same than that with respect to f(z0)𝑓subscript𝑧0f(z_{0})italic_f ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ). Moreover, fγ𝑓𝛾f\circ\gammaitalic_f ∘ italic_γ is homotopic, within that annulus, to the path tf(z0)+Rλe2iπtmaps-to𝑡𝑓subscript𝑧0𝑅𝜆superscript𝑒2𝑖𝜋𝑡t\mapsto f(z_{0})+R\lambda e^{2i\pi t}italic_t ↦ italic_f ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) + italic_R italic_λ italic_e start_POSTSUPERSCRIPT 2 italic_i italic_π italic_t end_POSTSUPERSCRIPT where λ𝜆\lambdaitalic_λ is the center of Bsuperscript𝐵B^{\prime}italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT so the winding number is 1. Because of (37), 0f(B)0superscript𝑓𝐵0\notin f^{\prime}(B)0 ∉ italic_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_B ) so all possible roots within B𝐵Bitalic_B are simple and

|f1(0)B|=12iπγf(z)f(z)𝑑z=12iπfγdζζ=12iπfγdζζf(z0)=1superscript𝑓10𝐵12𝑖𝜋subscript𝛾superscript𝑓𝑧𝑓𝑧differential-d𝑧12𝑖𝜋subscript𝑓𝛾𝑑𝜁𝜁12𝑖𝜋subscript𝑓𝛾𝑑𝜁𝜁𝑓subscript𝑧01|f^{-1}(0)\cap B|=\frac{1}{2i\pi}\int_{\gamma}\frac{f^{\prime}(z)}{f(z)}dz=% \frac{1}{2i\pi}\int_{f\circ\gamma}\frac{d\zeta}{\zeta}=\frac{1}{2i\pi}\int_{f% \circ\gamma}\frac{d\zeta}{\zeta-f(z_{0})}=1| italic_f start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( 0 ) ∩ italic_B | = divide start_ARG 1 end_ARG start_ARG 2 italic_i italic_π end_ARG ∫ start_POSTSUBSCRIPT italic_γ end_POSTSUBSCRIPT divide start_ARG italic_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z ) end_ARG start_ARG italic_f ( italic_z ) end_ARG italic_d italic_z = divide start_ARG 1 end_ARG start_ARG 2 italic_i italic_π end_ARG ∫ start_POSTSUBSCRIPT italic_f ∘ italic_γ end_POSTSUBSCRIPT divide start_ARG italic_d italic_ζ end_ARG start_ARG italic_ζ end_ARG = divide start_ARG 1 end_ARG start_ARG 2 italic_i italic_π end_ARG ∫ start_POSTSUBSCRIPT italic_f ∘ italic_γ end_POSTSUBSCRIPT divide start_ARG italic_d italic_ζ end_ARG start_ARG italic_ζ - italic_f ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) end_ARG = 1

i.e. f𝑓fitalic_f admits exactly one root in B𝐵Bitalic_B. ∎

5.2 How to prove the convergence of Newton refinements

The practical limitation of the classical estimates presented in Section 3.4 is that the radius on which Newton’s method behaves bi-exponentially or exponentially is not, usually, an explicit one. The following result adresses this issue, at least for simple roots. For further results, see [Hen74, Chap. 6].

Theorem 7.

Let us consider a simple root zsubscript𝑧normal-∗z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT of P[z]𝑃delimited-[]𝑧P\in\mathbb{C}[z]italic_P ∈ blackboard_C [ italic_z ] and z0D(z,η)subscript𝑧0normal-Dsubscript𝑧normal-∗𝜂z_{0}\in\operatorname{D}(z_{\ast},\eta)italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ∈ roman_D ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT , italic_η ). For ε>3η𝜀3𝜂\varepsilon>3\etaitalic_ε > 3 italic_η, if there exists a disk Bsuperscript𝐵normal-′B^{\prime}italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT satisfying

P(D(z0,ε))B𝑤𝑖𝑡ℎd(B,0)>2diam(B),formulae-sequencesuperscript𝑃Dsubscript𝑧0𝜀superscript𝐵𝑤𝑖𝑡ℎ𝑑superscript𝐵02diamsuperscript𝐵P^{\prime}(\operatorname{D}(z_{0},\varepsilon))\subset B^{\prime}\qquad\text{% with}\qquad d(B^{\prime},0)>2\operatorname{diam}(B^{\prime}),italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( roman_D ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_ε ) ) ⊂ italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT with italic_d ( italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT , 0 ) > 2 roman_diam ( italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) , (38)

then one has NP(D(z0,ε))D(z0,ε)subscript𝑁𝑃normal-Dsubscript𝑧0𝜀normal-Dsubscript𝑧0𝜀N_{P}(\operatorname{D}(z_{0},\varepsilon))\subsetneq\operatorname{D}(z_{0},\varepsilon)italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ( roman_D ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_ε ) ) ⊊ roman_D ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_ε ) and thus D(z0,ε)normal-Dsubscript𝑧0𝜀\operatorname{D}(z_{0},\varepsilon)roman_D ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_ε ) is contained in the attraction bassin 𝒜(z)={z;limnNPn(z)=z}𝒜subscript𝑧normal-∗formulae-sequence𝑧subscriptnormal-→𝑛superscriptsubscript𝑁𝑃𝑛𝑧subscript𝑧normal-∗\operatorname{\mathcal{A}}(z_{\ast})=\{z\in\mathbb{C}\,;\,\lim\limits_{n\to% \infty}N_{P}^{n}(z)=z_{\ast}\}caligraphic_A ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ) = { italic_z ∈ blackboard_C ; roman_lim start_POSTSUBSCRIPT italic_n → ∞ end_POSTSUBSCRIPT italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ( italic_z ) = italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT }.

Remark 9.

The typical application case of Theorem 7 concerns an approximate root z0subscript𝑧0z_{0}italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT that is known, thanks to Theorem 6, to be in D(z,ε1)normal-Dsubscript𝑧normal-∗subscript𝜀1\operatorname{D}(z_{\ast},\varepsilon_{1})roman_D ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT , italic_ε start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ). To save resources, we want to publish z0superscriptsubscript𝑧0normal-′z_{0}^{\prime}italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT, which is an approximate value of z0subscript𝑧0z_{0}italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT with a reduced precision ε2ε1much-greater-thansubscript𝜀2subscript𝜀1\varepsilon_{2}\gg\varepsilon_{1}italic_ε start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ≫ italic_ε start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT. Theorem 7 gives a condition that garanties that we can do so without losing any important information: an approximation of zsubscript𝑧normal-∗z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT to an arbitrary high precision can be retrieved from the sole knowledge of z0superscriptsubscript𝑧0normal-′z_{0}^{\prime}italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT by applying iterates of NPsubscript𝑁𝑃N_{P}italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT The assumption (38) can be checked using disk arithmetic (see §5.3). Note that, in the proof, the loss of ε3η2𝜀3𝜂2\frac{\varepsilon-3\eta}{2}divide start_ARG italic_ε - 3 italic_η end_ARG start_ARG 2 end_ARG on the radius suggests that the Lipschitz constant of NPsubscript𝑁𝑃N_{P}italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT is approximately Lipschitz of order 13η2ε13𝜂2𝜀1-\frac{3\eta}{2\varepsilon}1 - divide start_ARG 3 italic_η end_ARG start_ARG 2 italic_ε end_ARG, which hints that the next iterations of NPsubscript𝑁𝑃N_{P}italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT will converge at least exponentially.

Proof.

Let us consider B=D(z0,ε)𝐵Dsubscript𝑧0𝜀B=\operatorname{D}(z_{0},\varepsilon)italic_B = roman_D ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_ε ) and P(B)Bsuperscript𝑃𝐵superscript𝐵P^{\prime}(B)\subset B^{\prime}italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_B ) ⊂ italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT where B=D(d,ε)superscript𝐵D𝑑superscript𝜀B^{\prime}=\operatorname{D}(d,\varepsilon^{\prime})italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT = roman_D ( italic_d , italic_ε start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) is a disk such that |d|>5ε𝑑5superscript𝜀|d|>5\varepsilon^{\prime}| italic_d | > 5 italic_ε start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT. In particular Bsuperscript𝐵B^{\prime}italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT does not contain zero. Given z0+hD(z0,ε)subscript𝑧0Dsubscript𝑧0𝜀z_{0}+h\in\operatorname{D}(z_{0},\varepsilon)italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h ∈ roman_D ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_ε ), one has:

NP(z0+h)subscript𝑁𝑃subscript𝑧0\displaystyle N_{P}(z_{0}+h)italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h ) =z0+hP(z0+h)P(z0)+P(z0)P(z)P(z0+h)absentsubscript𝑧0𝑃subscript𝑧0𝑃subscript𝑧0𝑃subscript𝑧0𝑃subscript𝑧superscript𝑃subscript𝑧0\displaystyle=z_{0}+h-\frac{P(z_{0}+h)-P(z_{0})+P(z_{0})-P(z_{\ast})}{P^{% \prime}(z_{0}+h)}= italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h - divide start_ARG italic_P ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h ) - italic_P ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) + italic_P ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) - italic_P ( italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ) end_ARG start_ARG italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h ) end_ARG
=z0+h(011P(z0+th)P(z0+h)dt)+(z0z)01P((1t)z+tz0)P(z0+h)𝑑tabsentsubscript𝑧0superscriptsubscript011superscript𝑃subscript𝑧0𝑡superscript𝑃subscript𝑧0𝑑𝑡subscript𝑧0superscript𝑧superscriptsubscript01superscript𝑃1𝑡subscript𝑧𝑡subscript𝑧0superscript𝑃subscript𝑧0differential-d𝑡\displaystyle=z_{0}+h\left(\int_{0}^{1}1-\frac{P^{\prime}(z_{0}+th)}{P^{\prime% }(z_{0}+h)}dt\right)+(z_{0}-z^{\ast})\int_{0}^{1}\frac{P^{\prime}((1-t)z_{\ast% }+tz_{0})}{P^{\prime}(z_{0}+h)}dt= italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h ( ∫ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT 1 - divide start_ARG italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_t italic_h ) end_ARG start_ARG italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h ) end_ARG italic_d italic_t ) + ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - italic_z start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ) ∫ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT divide start_ARG italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( ( 1 - italic_t ) italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT + italic_t italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) end_ARG start_ARG italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h ) end_ARG italic_d italic_t

The ratio of two values d+ϑ1𝑑subscriptitalic-ϑ1d+\vartheta_{1}italic_d + italic_ϑ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and d+ϑ2𝑑subscriptitalic-ϑ2d+\vartheta_{2}italic_d + italic_ϑ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT in Bsuperscript𝐵B^{\prime}italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT satisfies:

|1d+ϑ1d+ϑ2|=|ϑ2ϑ1||d+ϑ2|2ε|d|ε<12and|d+ϑ1d+ϑ2||d|+ε|d|ε<32.formulae-sequence1𝑑subscriptitalic-ϑ1𝑑subscriptitalic-ϑ2subscriptitalic-ϑ2subscriptitalic-ϑ1𝑑subscriptitalic-ϑ22superscript𝜀𝑑superscript𝜀12and𝑑subscriptitalic-ϑ1𝑑subscriptitalic-ϑ2𝑑superscript𝜀𝑑superscript𝜀32\left|1-\frac{d+\vartheta_{1}}{d+\vartheta_{2}}\right|=\frac{|\vartheta_{2}-% \vartheta_{1}|}{|d+\vartheta_{2}|}\leq\frac{2\varepsilon^{\prime}}{|d|-% \varepsilon^{\prime}}<\frac{1}{2}\quad\text{and}\quad\left|\frac{d+\vartheta_{% 1}}{d+\vartheta_{2}}\right|\leq\frac{|d|+\varepsilon^{\prime}}{|d|-\varepsilon% ^{\prime}}<\frac{3}{2}.| 1 - divide start_ARG italic_d + italic_ϑ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_d + italic_ϑ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG | = divide start_ARG | italic_ϑ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_ϑ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT | end_ARG start_ARG | italic_d + italic_ϑ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT | end_ARG ≤ divide start_ARG 2 italic_ε start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG | italic_d | - italic_ε start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG < divide start_ARG 1 end_ARG start_ARG 2 end_ARG and | divide start_ARG italic_d + italic_ϑ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_d + italic_ϑ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG | ≤ divide start_ARG | italic_d | + italic_ε start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG start_ARG | italic_d | - italic_ε start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_ARG < divide start_ARG 3 end_ARG start_ARG 2 end_ARG .

One thus has |NP(z0+h)z0|<12|h|+32|z0z|subscript𝑁𝑃subscript𝑧0subscript𝑧01232subscript𝑧0subscript𝑧|N_{P}(z_{0}+h)-z_{0}|<\frac{1}{2}|h|+\frac{3}{2}|z_{0}-z_{\ast}|| italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h ) - italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT | < divide start_ARG 1 end_ARG start_ARG 2 end_ARG | italic_h | + divide start_ARG 3 end_ARG start_ARG 2 end_ARG | italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT - italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT | i.e.

NP(z0+h)D(z0,ε2+3η2)=D(z0,εε3η2)D(z0,ε)subscript𝑁𝑃subscript𝑧0Dsubscript𝑧0𝜀23𝜂2Dsubscript𝑧0𝜀𝜀3𝜂2Dsubscript𝑧0𝜀N_{P}(z_{0}+h)\in\operatorname{D}\left(z_{0},\frac{\varepsilon}{2}+\frac{3\eta% }{2}\right)=\operatorname{D}\left(z_{0},\varepsilon-\frac{\varepsilon-3\eta}{2% }\right)\subsetneq\operatorname{D}(z_{0},\varepsilon)italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h ) ∈ roman_D ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , divide start_ARG italic_ε end_ARG start_ARG 2 end_ARG + divide start_ARG 3 italic_η end_ARG start_ARG 2 end_ARG ) = roman_D ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_ε - divide start_ARG italic_ε - 3 italic_η end_ARG start_ARG 2 end_ARG ) ⊊ roman_D ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_ε )

provided ε>3η𝜀3𝜂\varepsilon>3\etaitalic_ε > 3 italic_η. As D(z0,ε)Dsubscript𝑧0𝜀\operatorname{D}(z_{0},\varepsilon)roman_D ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_ε ) is forward invariant under NPsubscript𝑁𝑃N_{P}italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT, this disk is contained in its Fatou set. The iterates of NPsubscript𝑁𝑃N_{P}italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT on D(z0,ε)Dsubscript𝑧0𝜀\operatorname{D}(z_{0},\varepsilon)roman_D ( italic_z start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_ε ) thus converge to zsubscript𝑧z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT. ∎

5.3 Results on how to control numerical errors

Lastly, we need a theoretical background for handling all the errors that occur within the numerical computations that are necessary to prove that the Theorems 6 and 7 can indeed be applied. It is often (wrongly) believed that integer arithmetic is the only one apt for formal verification. We intent to show here that proofs can also be carried in floating point arithmetic.

The certification of a computation is only possible if the implementation choices respect a universal norm, as for example the one defined by the IEEE standards [IEE]. We use the library MPFR [MPFR] because it offers a reliable implementation of arbitrary precision that has been extensively tested. One of its main feature is the guaranty of proper handling of roundings, which is essential for the certification process described below. However, any other compliant implementation could equally be used as a foundation.

Working with complex numbers requires special care because, contrary to the real case, multiplications in \mathbb{C}blackboard_C are not an elementary operation. In what follows, we will restrict our attention to the fields operations: +++, ×\times×.

5.3.1 Finite precision arithmetic

An ideal model of arithmetic with a finite precision N𝑁superscriptN\in\mathbb{N}^{\ast}italic_N ∈ blackboard_N start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT consists in considering the following discrete subset of real numbers

^N={0}e2e𝒵N,subscript^𝑁0subscript𝑒superscript2𝑒subscript𝒵𝑁\hat{\mathcal{R}}_{N}=\{0\}\cup\bigcup\limits_{e\in\mathbb{Z}}2^{e}\mathcal{Z}% _{N},over^ start_ARG caligraphic_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT = { 0 } ∪ ⋃ start_POSTSUBSCRIPT italic_e ∈ blackboard_Z end_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT caligraphic_Z start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT , (39)

where

𝒵N={±(21+j=2Nbj2j) with b2,,bN{0,1}}=±2N2N1,2N1.subscript𝒵𝑁plus-or-minussuperscript21superscriptsubscript𝑗2𝑁subscript𝑏𝑗superscript2𝑗 with subscript𝑏2subscript𝑏𝑁01plus-or-minussuperscript2𝑁superscript2𝑁1superscript2𝑁1\mathcal{Z}_{N}=\left\{\pm\Big{(}2^{-1}+\sum_{j=2}^{N}b_{j}2^{-j}\Big{)}\text{% with }b_{2},\ldots,b_{N}\in\{0,1\}\right\}=\pm 2^{-N}\llbracket 2^{N-1},2^{N}% -1\rrbracket.caligraphic_Z start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT = { ± ( 2 start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT + ∑ start_POSTSUBSCRIPT italic_j = 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT italic_b start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT - italic_j end_POSTSUPERSCRIPT ) with italic_b start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , … , italic_b start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ∈ { 0 , 1 } } = ± 2 start_POSTSUPERSCRIPT - italic_N end_POSTSUPERSCRIPT ⟦ 2 start_POSTSUPERSCRIPT italic_N - 1 end_POSTSUPERSCRIPT , 2 start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT - 1 ⟧ . (40)

When x2e𝒵N𝑥superscript2𝑒subscript𝒵𝑁x\in 2^{e}\mathcal{Z}_{N}italic_x ∈ 2 start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT caligraphic_Z start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT, one defines e=e(x)𝑒𝑒𝑥e=e(x)italic_e = italic_e ( italic_x ) as the exponent of x𝑥xitalic_x. The (bj)1,,Nsubscriptsubscript𝑏𝑗1𝑁(b_{j})_{1,\ldots,N}( italic_b start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT 1 , … , italic_N end_POSTSUBSCRIPT are called the bits of x𝑥xitalic_x, with the convention that b1=1subscript𝑏11b_{1}=1italic_b start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = 1. Let us point out that if NNsuperscript𝑁𝑁N^{\prime}\geq Nitalic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ≥ italic_N is a larger precision, then ^N^Nsubscript^𝑁subscript^superscript𝑁\hat{\mathcal{R}}_{N}\subset\hat{\mathcal{R}}_{N^{\prime}}over^ start_ARG caligraphic_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ⊂ over^ start_ARG caligraphic_R end_ARG start_POSTSUBSCRIPT italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT.

Refer to caption
Figure 8: Representation of 2e𝒵4+superscript2𝑒subscript𝒵4subscript2^{e}\mathcal{Z}_{4}\cap\mathbb{R}_{+}2 start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT caligraphic_Z start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT ∩ blackboard_R start_POSTSUBSCRIPT + end_POSTSUBSCRIPT for five consecutive values of e𝑒eitalic_e. Note how the gap between adjacent vertices varies with the exponent e𝑒eitalic_e, and the special role of zero as an accumulation point of ^Nsubscript^𝑁\hat{\mathcal{R}}_{N}over^ start_ARG caligraphic_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT.

Practical implementations of finite precision arithmetic are restricted by physical contingencies; one then considers instead the finite set:

N={±0}e=eminemax2e𝒵N{±,NaN},subscript𝑁plus-or-minus0superscriptsubscript𝑒subscript𝑒subscript𝑒superscript2𝑒subscript𝒵𝑁plus-or-minusNaN\mathcal{R}_{N}=\{\pm 0\}\cup\bigcup_{e=e_{\min}}^{e_{\max}}2^{e}\mathcal{Z}_{% N}\cup\{\pm\infty,\operatorname{NaN}\},caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT = { ± 0 } ∪ ⋃ start_POSTSUBSCRIPT italic_e = italic_e start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_e start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT end_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_e end_POSTSUPERSCRIPT caligraphic_Z start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ∪ { ± ∞ , roman_NaN } , (41)

where eminsubscript𝑒-e_{\min}- italic_e start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT and emaxsubscript𝑒e_{\max}italic_e start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT are (configurable but fixed) large positive integers. The additional symbols allow one to handle numericals exceptions without producing errors (NaNNaN\operatorname{NaN}roman_NaN stands for not a number). For efficient processing by the hardware, bits are packed in groups of 8 called a byte, and packs of bytes (typically 4 or 8) are called limbs.

The arithmetic operations +Nsubscript𝑁+_{N}+ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT and ×Nsubscript𝑁\times_{N}× start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT are naturally defined on ^Nsubscript^𝑁\hat{\mathcal{R}}_{N}over^ start_ARG caligraphic_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT by

x,y^N,x+Ny=R^N(x+y)andx×Ny=R^N(x×y),formulae-sequencefor-all𝑥𝑦subscript^𝑁formulae-sequencesubscript𝑁𝑥𝑦subscript^R𝑁𝑥𝑦andsubscript𝑁𝑥𝑦subscript^R𝑁𝑥𝑦\forall x,y\in\hat{\mathcal{R}}_{N},\qquad x+_{N}y=\hat{\operatorname{R}}_{N}(% x+y)\quad\text{and}\quad x\times_{N}y=\hat{\operatorname{R}}_{N}(x\times y),∀ italic_x , italic_y ∈ over^ start_ARG caligraphic_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT , italic_x + start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_y = over^ start_ARG roman_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_x + italic_y ) and italic_x × start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_y = over^ start_ARG roman_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_x × italic_y ) ,

where R^N:^N:subscript^R𝑁subscript^𝑁\hat{\operatorname{R}}_{N}:\mathbb{R}\to\hat{\mathcal{R}}_{N}over^ start_ARG roman_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT : blackboard_R → over^ start_ARG caligraphic_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT is the rounding operator that rounds to the nearest lattice point. Let us also define the operators R^N±superscriptsubscript^R𝑁plus-or-minus\hat{\operatorname{R}}_{N}^{\pm}over^ start_ARG roman_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT that round respectively always up and always down, and the practical ones RNsubscriptR𝑁\operatorname{R}_{N}roman_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT, RN±superscriptsubscriptR𝑁plus-or-minus\operatorname{R}_{N}^{\pm}roman_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT, that are valued in Nsubscript𝑁\mathcal{R}_{N}caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT. By a convention, called flush to zero, which is not an IEEE standard but is the choice made in the MPFR library, RN(x)=0subscriptR𝑁𝑥0\operatorname{R}_{N}(x)=0roman_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_x ) = 0 if |x|<2emin𝑥superscript2subscript𝑒|x|<2^{e_{\min}}| italic_x | < 2 start_POSTSUPERSCRIPT italic_e start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT end_POSTSUPERSCRIPT even though 00 is not the nearest lattice point if |x|>2emin1𝑥superscript2subscript𝑒1|x|>2^{e_{\min}-1}| italic_x | > 2 start_POSTSUPERSCRIPT italic_e start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT - 1 end_POSTSUPERSCRIPT. Similarly, |RN(x)|=subscriptR𝑁𝑥|\operatorname{R}_{N}(x)|=\infty| roman_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_x ) | = ∞ if |x|>2emax(12N)𝑥superscript2subscript𝑒1superscript2𝑁|x|>2^{e_{\max}}(1-2^{-N})| italic_x | > 2 start_POSTSUPERSCRIPT italic_e start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ( 1 - 2 start_POSTSUPERSCRIPT - italic_N end_POSTSUPERSCRIPT ).

For a given number x^N\{0}𝑥\subscript^𝑁0x\in\hat{\mathcal{R}}_{N}\backslash\{0\}italic_x ∈ over^ start_ARG caligraphic_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT \ { 0 }, the gap that separates it from its farthest immediate neighbors is

ulp^(x)=2e(x)N.^ulp𝑥superscript2𝑒𝑥𝑁\widehat{\operatorname{ulp}}(x)=2^{e(x)-N}.over^ start_ARG roman_ulp end_ARG ( italic_x ) = 2 start_POSTSUPERSCRIPT italic_e ( italic_x ) - italic_N end_POSTSUPERSCRIPT . (42)

By convention, ulp^(0)=0^ulp00\widehat{\operatorname{ulp}}(0)=0over^ start_ARG roman_ulp end_ARG ( 0 ) = 0. The name of this operator is unit on last position because it reflects the metric effect of a change of one unit on the least significant bit bNsubscript𝑏𝑁b_{N}italic_b start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT. If xN𝑥subscript𝑁x\in\mathcal{R}_{N}italic_x ∈ caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT is a regular number i.e. if emine(x)emaxsubscript𝑒𝑒𝑥subscript𝑒e_{\min}\leavevmode\nobreak\ \leq\leavevmode\nobreak\ e(x)\leavevmode\nobreak% \ \leq\leavevmode\nobreak\ e_{\max}italic_e start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT ≤ italic_e ( italic_x ) ≤ italic_e start_POSTSUBSCRIPT roman_max end_POSTSUBSCRIPT, one sets ulp(x)=ulp^(x)ulp𝑥^ulp𝑥\operatorname{ulp}(x)=\widehat{\operatorname{ulp}}(x)roman_ulp ( italic_x ) = over^ start_ARG roman_ulp end_ARG ( italic_x ). By convention, ulp(±0)=21+eminulpplus-or-minus0superscript21subscript𝑒𝑚𝑖𝑛\operatorname{ulp}(\pm 0)=2^{1+e_{min}}roman_ulp ( ± 0 ) = 2 start_POSTSUPERSCRIPT 1 + italic_e start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT end_POSTSUPERSCRIPT and ulp(±)=ulpplus-or-minus\operatorname{ulp}(\pm\infty)\leavevmode\nobreak\ =\leavevmode\nobreak\ \inftyroman_ulp ( ± ∞ ) = ∞, which ensures the following statement. Note that the usual implementation choice is e(0)=emin1𝑒0subscript𝑒1e(0)=e_{\min}-1italic_e ( 0 ) = italic_e start_POSTSUBSCRIPT roman_min end_POSTSUBSCRIPT - 1.

Proposition 5.1.

For x𝑥x\in\mathbb{R}italic_x ∈ blackboard_R, one has

|R^N(x)x|12ulp^(R^N(x))𝑎𝑛𝑑|RN(x)x|12ulp(RN(x)).formulae-sequencesubscript^R𝑁𝑥𝑥12^ulpsubscript^R𝑁𝑥𝑎𝑛𝑑subscriptR𝑁𝑥𝑥12ulpsubscriptR𝑁𝑥\left|\hat{\operatorname{R}}_{N}(x)-x\right|\leq{\textstyle\frac{1}{2}}% \widehat{\operatorname{ulp}}(\hat{\operatorname{R}}_{N}(x))\qquad\text{and}% \qquad\left|\operatorname{R}_{N}(x)-x\right|\leq{\textstyle\frac{1}{2}}% \operatorname{ulp}(\operatorname{R}_{N}(x)).| over^ start_ARG roman_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_x ) - italic_x | ≤ divide start_ARG 1 end_ARG start_ARG 2 end_ARG over^ start_ARG roman_ulp end_ARG ( over^ start_ARG roman_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_x ) ) and | roman_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_x ) - italic_x | ≤ divide start_ARG 1 end_ARG start_ARG 2 end_ARG roman_ulp ( roman_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_x ) ) .
Remark 10.

IEEE standards require gradual underflow instead of flush to zero. This means that Nsubscript𝑁\mathcal{R}_{N}caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT should be complemented with a set of denormalized numbers {k2eminN;k,|k|<2N1}formulae-sequence𝑘superscript2subscript𝑒𝑚𝑖𝑛𝑁𝑘𝑘superscript2𝑁1\{k2^{e_{min}-N}\,;\,k\in\mathbb{Z},\enspace|k|<2^{N-1}\}{ italic_k 2 start_POSTSUPERSCRIPT italic_e start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT - italic_N end_POSTSUPERSCRIPT ; italic_k ∈ blackboard_Z , | italic_k | < 2 start_POSTSUPERSCRIPT italic_N - 1 end_POSTSUPERSCRIPT }, called subnormals, which ensures that the lattice Nsubscript𝑁\mathcal{R}_{N}caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT is regular near zero. In that case, ulp(x)=2eminNnormal-ulp𝑥superscript2subscript𝑒𝑚𝑖𝑛𝑁\operatorname{ulp}(x)=2^{e_{min}-N}roman_ulp ( italic_x ) = 2 start_POSTSUPERSCRIPT italic_e start_POSTSUBSCRIPT italic_m italic_i italic_n end_POSTSUBSCRIPT - italic_N end_POSTSUPERSCRIPT for all those additional points, including x=0𝑥0x=0italic_x = 0. With this alternate convention, Proposition 5.1 still holds. The MPFR library offers the possibility of emulating the norm, but it is not the default behavior.

5.3.2 Interval arithmetic

Interval arithmetic is a standard topic in numerical analysis [vdH09], [Rok01] whenever dependable results are critical. Reliable and fast libraries exist, like MPFI [RR05] or Arb [ARB].

Given a continuous numeric function f𝑓fitalic_f, the goal of interval arithmetic is to bound, as accurately as possible, the set to which f(x)𝑓𝑥f(x)italic_f ( italic_x ) belongs when the prior knowledge on x𝑥xitalic_x is limited to a set of inequalities, e.g. axb𝑎𝑥𝑏a\leq x\leq bitalic_a ≤ italic_x ≤ italic_b. The main challenge is to take dependency into account: for example, f(x)=x2+x𝑓𝑥superscript𝑥2𝑥f(x)=x^{2}+xitalic_f ( italic_x ) = italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_x maps [1,1]11[-1,1][ - 1 , 1 ] to [14,2]142[-\frac{1}{4},2][ - divide start_ARG 1 end_ARG start_ARG 4 end_ARG , 2 ] while g(x,y)=xy+x𝑔𝑥𝑦𝑥𝑦𝑥g(x,y)=xy+xitalic_g ( italic_x , italic_y ) = italic_x italic_y + italic_x maps [1,1]2superscript112[-1,1]^{2}[ - 1 , 1 ] start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT to [2,2]22[-2,2][ - 2 , 2 ].

The following statement is an immediate but essential consequence of Proposition 5.1.

Proposition 5.2.

For xa,xbNsubscript𝑥𝑎subscript𝑥𝑏subscript𝑁x_{a},x_{b}\in\mathcal{R}_{N}italic_x start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT , italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ∈ caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT and ra,rbMsubscript𝑟𝑎subscript𝑟𝑏subscript𝑀r_{a},r_{b}\in\mathcal{R}_{M}italic_r start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ∈ caligraphic_R start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT, one has:

I(xa,ra)+I(xb,rb)I(xa+Nxb,RM+(ra+rb+12ulp(xa+Nxb))),Isubscript𝑥𝑎subscript𝑟𝑎Isubscript𝑥𝑏subscript𝑟𝑏Isubscript𝑁subscript𝑥𝑎subscript𝑥𝑏superscriptsubscriptR𝑀subscript𝑟𝑎subscript𝑟𝑏12ulpsubscript𝑁subscript𝑥𝑎subscript𝑥𝑏\displaystyle\operatorname{I}(x_{a},r_{a})+\operatorname{I}(x_{b},r_{b})% \subset\operatorname{I}\left(x_{a}+_{N}x_{b}\,,\,\operatorname{R}_{M}^{+}\big{% (}r_{a}+r_{b}+{\textstyle\frac{1}{2}}\operatorname{ulp}(x_{a}+_{N}x_{b})\big{)% }\right),roman_I ( italic_x start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ) + roman_I ( italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) ⊂ roman_I ( italic_x start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT + start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT , roman_R start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ( italic_r start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT + italic_r start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT + divide start_ARG 1 end_ARG start_ARG 2 end_ARG roman_ulp ( italic_x start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT + start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) ) ) ,
I(xa,ra)×I(xb,rb)I(xa×Nxb,RM+(rarb+ra|xb|+rb|xa|+12ulp(xa×Nxb)))Isubscript𝑥𝑎subscript𝑟𝑎Isubscript𝑥𝑏subscript𝑟𝑏Isubscript𝑁subscript𝑥𝑎subscript𝑥𝑏superscriptsubscriptR𝑀subscript𝑟𝑎subscript𝑟𝑏subscript𝑟𝑎subscript𝑥𝑏subscript𝑟𝑏subscript𝑥𝑎12ulpsubscript𝑁subscript𝑥𝑎subscript𝑥𝑏\displaystyle\operatorname{I}(x_{a},r_{a})\times\operatorname{I}(x_{b},r_{b})% \subset\operatorname{I}\left(x_{a}\times_{N}x_{b}\,,\,\operatorname{R}_{M}^{+}% \big{(}r_{a}r_{b}+r_{a}|x_{b}|+r_{b}|x_{a}|+{\textstyle\frac{1}{2}}% \operatorname{ulp}(x_{a}\times_{N}x_{b})\big{)}\right)roman_I ( italic_x start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ) × roman_I ( italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) ⊂ roman_I ( italic_x start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT × start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT , roman_R start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ( italic_r start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT + italic_r start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT | italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT | + italic_r start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT | italic_x start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT | + divide start_ARG 1 end_ARG start_ARG 2 end_ARG roman_ulp ( italic_x start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT × start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) ) )

where I(x,r)=(xr,x+r)normal-I𝑥𝑟𝑥𝑟𝑥𝑟\operatorname{I}(x,r)=(x-r,x+r)roman_I ( italic_x , italic_r ) = ( italic_x - italic_r , italic_x + italic_r ) denotes open intervals along the real line.

In practice, the new radius is computed using the RM+superscriptsubscriptR𝑀\operatorname{R}_{M}^{+}roman_R start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT operator for each intermediary computation to ensure that one gets a certifiable upper bound.

5.3.3 Naive rectangle arithmetic

For our purpose in complex dynamics, a naive use of a tensorized interval arithmetic faces the following shortcoming (see fig. 9): if a𝑎aitalic_a is in z+[r,r]+i[r,+r]𝑧𝑟𝑟𝑖𝑟𝑟z+[-r,r]+i[-r,+r]italic_z + [ - italic_r , italic_r ] + italic_i [ - italic_r , + italic_r ] with |z|=1𝑧1|z|=1| italic_z | = 1, then a2superscript𝑎2a^{2}italic_a start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT belongs to z2+(2r|z|1+r2)[1,1]+i(2r|z|1+2r2)[1,1]superscript𝑧22𝑟subscript𝑧1superscript𝑟211𝑖2𝑟subscript𝑧12superscript𝑟211z^{2}+(2r|z|_{1}+r^{2})\,[-1,1]+i(2r|z|_{1}+2r^{2})\,[-1,1]italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + ( 2 italic_r | italic_z | start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_r start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) [ - 1 , 1 ] + italic_i ( 2 italic_r | italic_z | start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + 2 italic_r start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) [ - 1 , 1 ], with |z|1=|Rez|+|Imz|subscript𝑧1Re𝑧Im𝑧|z|_{1}=|\operatorname{Re}z|+|\operatorname{Im}z|| italic_z | start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = | roman_Re italic_z | + | roman_Im italic_z |, which means that, when Argzπ/4similar-to-or-equalsArg𝑧𝜋4\operatorname{Arg}z\simeq\pi/4roman_Arg italic_z ≃ italic_π / 4, the size of the uncertainty box is roughly multiplied by 22222\sqrt{2}2 square-root start_ARG 2 end_ARG instead of the factor 2 imposed by the derivative. If this happens at many iterations of the square function, the resulting precision loss is catastrophic. The average value of log|eiθ|1subscriptsuperscript𝑒𝑖𝜃1\log|e^{i\theta}|_{1}roman_log | italic_e start_POSTSUPERSCRIPT italic_i italic_θ end_POSTSUPERSCRIPT | start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT on the unit circle is β=0.2365𝛽0.2365\beta=0.2365italic_β = 0.2365. By the Birkhoff ergodic theorem, for a typical starting point a𝑎aitalic_a with |a|=1𝑎1|a|=1| italic_a | = 1, computing n𝑛nitalic_n iterates of the map zz2maps-to𝑧superscript𝑧2z\mapsto z^{2}italic_z ↦ italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT starting at a𝑎aitalic_a induces a cumulative multiplicative loss of precision of about eβnsuperscript𝑒𝛽𝑛e^{\beta n}italic_e start_POSTSUPERSCRIPT italic_β italic_n end_POSTSUPERSCRIPT. For example, for n=200𝑛200n=200italic_n = 200, a loss of precision of order of 1020superscript102010^{20}10 start_POSTSUPERSCRIPT 20 end_POSTSUPERSCRIPT should be expected.

Refer to caption

   Refer to caption

Figure 9: Comparison between the image by f(z)=z2𝑓𝑧superscript𝑧2f(z)=z^{2}italic_f ( italic_z ) = italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT of a square centered at z=e3iπ/16𝑧superscript𝑒3𝑖𝜋16z=e^{3i\pi/16}italic_z = italic_e start_POSTSUPERSCRIPT 3 italic_i italic_π / 16 end_POSTSUPERSCRIPT of side 2r2𝑟2r2 italic_r, and that of a disks of center z𝑧zitalic_z and diameter 2r2𝑟2r2 italic_r for r=0.5𝑟0.5r=0.5italic_r = 0.5 (left) and r=0.1𝑟0.1r=0.1italic_r = 0.1 (right). The images of the square and of the disk are drawn at the same scale, and compared respectively to an enclosing box or disk centered around z2superscript𝑧2z^{2}italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT, which is of optimal size, provided that uniformity with respect to ArgzArg𝑧\operatorname{Arg}zroman_Arg italic_z is required.

5.3.4 Disk arithmetic

The idea of disk arithmetic consists in studying what optimal outcome can be deduced from the prior knowledge that aD(z,r)𝑎D𝑧𝑟a\in\operatorname{D}(z,r)italic_a ∈ roman_D ( italic_z , italic_r ). While the idea is not new [PP98], it has remained, up to now, fairly uncommon.

The practical gain of substituting disks to squares is illustrated on fig. 9. If aD(z,r)𝑎D𝑧𝑟a\in\operatorname{D}(z,r)italic_a ∈ roman_D ( italic_z , italic_r ), then a2superscript𝑎2a^{2}italic_a start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT belongs to D(z2,2r|z|+r2)Dsuperscript𝑧22𝑟𝑧superscript𝑟2\operatorname{D}(z^{2},2r|z|+r^{2})roman_D ( italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , 2 italic_r | italic_z | + italic_r start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ). If r𝑟ritalic_r is small enough to ensure that r22r|z|much-less-thansuperscript𝑟22𝑟𝑧r^{2}\ll 2r|z|italic_r start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ≪ 2 italic_r | italic_z | but without being necessarily tiny, the first observation is that each iteration of the square function multiplies the radius of the uncertainty disk by roughly a factor 2|z|2𝑧2|z|2 | italic_z | instead of 2|z|12subscript𝑧12|z|_{1}2 | italic_z | start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT; one thus gains a casual 22\sqrt{2}square-root start_ARG 2 end_ARG factor over the naive use of interval arithmetic.

The second observation is more profound and pertains to small values of r𝑟ritalic_r: for any conformal map f𝑓fitalic_f, the image of a small disk is almost a disk. Naturally, a nearly circular shape can be enclosed within a disk of a barely larger diameter. In practice, r𝑟ritalic_r is infinitesimally small and the derivative of the map on the disk of radius r𝑟ritalic_r is almost constant. In comparison to the unavoidable action of the differential f(z)dzsuperscript𝑓𝑧𝑑𝑧f^{\prime}(z)dzitalic_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z ) italic_d italic_z at the center point, the additive loss on the bounding radius of f(D(z,r))𝑓D𝑧𝑟f(\operatorname{D}(z,r))italic_f ( roman_D ( italic_z , italic_r ) ) is then of order r2superscript𝑟2r^{2}italic_r start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT and the multiplicative loss is thus about 1+r/|f(z)|1𝑟superscript𝑓𝑧1+r/|f^{\prime}(z)|1 + italic_r / | italic_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z ) |. For example, if we perform k=105𝑘superscript105k=10^{5}italic_k = 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT iterations with bounded derivatives |f(z)|1superscript𝑓𝑧1|f^{\prime}(z)|\geq 1| italic_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z ) | ≥ 1 along the orbit, starting from a radius r=1020𝑟superscript1020r=10^{-20}italic_r = 10 start_POSTSUPERSCRIPT - 20 end_POSTSUPERSCRIPT, then the cumulative multiplicative error of the disk arithmetic method is about (1+r)k1+kr=1+10151similar-to-or-equalssuperscript1𝑟𝑘1𝑘𝑟1superscript1015similar-to-or-equals1(1+r)^{k}\simeq 1+kr=1+10^{-15}\simeq 1( 1 + italic_r ) start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT ≃ 1 + italic_k italic_r = 1 + 10 start_POSTSUPERSCRIPT - 15 end_POSTSUPERSCRIPT ≃ 1.

Using disk arithmetic is the gateway to getting bounds that are both proven and almost optimal, even after a high number of iterates. It is a first essential step towards computational proofs in complex dynamics.

For za=xa+iyasubscript𝑧𝑎subscript𝑥𝑎𝑖subscript𝑦𝑎z_{a}=x_{a}+iy_{a}italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT + italic_i italic_y start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT, zb=xb+iyb^N+i^Nsubscript𝑧𝑏subscript𝑥𝑏𝑖subscript𝑦𝑏subscript^𝑁𝑖subscript^𝑁z_{b}=x_{b}+iy_{b}\in\hat{\mathcal{R}}_{N}+i\hat{\mathcal{R}}_{N}italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT + italic_i italic_y start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ∈ over^ start_ARG caligraphic_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT + italic_i over^ start_ARG caligraphic_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT, the sum za+Nzbsubscript𝑁subscript𝑧𝑎subscript𝑧𝑏z_{a}+_{N}z_{b}italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT + start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT is naturally defined in components

za+Nzb=(xa+Nxb)+i(ya+Nyb).subscript𝑁subscript𝑧𝑎subscript𝑧𝑏subscript𝑁subscript𝑥𝑎subscript𝑥𝑏𝑖subscript𝑁subscript𝑦𝑎subscript𝑦𝑏z_{a}+_{N}z_{b}=(x_{a}+_{N}x_{b})+i(y_{a}+_{N}y_{b}).italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT + start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = ( italic_x start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT + start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) + italic_i ( italic_y start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT + start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_y start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) .

The radical difference between interval and disk arithmetic is that the computation of the product of complex numbers requires four exact multiplications on the real line, followed by two additions. Therefore, the product requires an intermediary precision NNsuperscript𝑁𝑁N^{\prime}\geq Nitalic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ≥ italic_N:

za×N,Nzb=(xa×Nxb)N(ya×Nyb)+i[(xa×Nyb)+N(ya×Nxb)].subscript𝑁superscript𝑁subscript𝑧𝑎subscript𝑧𝑏subscript𝑁subscriptsuperscript𝑁subscript𝑥𝑎subscript𝑥𝑏subscriptsuperscript𝑁subscript𝑦𝑎subscript𝑦𝑏𝑖delimited-[]subscript𝑁subscriptsuperscript𝑁subscript𝑥𝑎subscript𝑦𝑏subscriptsuperscript𝑁subscript𝑦𝑎subscript𝑥𝑏z_{a}\times_{N,N^{\prime}}z_{b}=(x_{a}\times_{N^{\prime}}x_{b})-_{N}(y_{a}% \times_{N^{\prime}}y_{b})+i\left[(x_{a}\times_{N^{\prime}}y_{b})+_{N}(y_{a}% \times_{N^{\prime}}x_{b})\right].italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT × start_POSTSUBSCRIPT italic_N , italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = ( italic_x start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT × start_POSTSUBSCRIPT italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) - start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_y start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT × start_POSTSUBSCRIPT italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_y start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) + italic_i [ ( italic_x start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT × start_POSTSUBSCRIPT italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_y start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) + start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ( italic_y start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT × start_POSTSUBSCRIPT italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) ] .

Intermediary products are guarantied exact only if N2Nsuperscript𝑁2𝑁N^{\prime}\geq 2Nitalic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ≥ 2 italic_N. Let us extended the definition of ulpulp\operatorname{ulp}roman_ulp to complex finite precision numbers by

ulp(x+iy)=ulp(x)2+ulp(y)2.\operatorname{ulp}(x+iy)=\sqrt{\operatorname{ulp}(x)^{2}+\operatorname{ulp}(y)% ^{2}}.roman_ulp ( italic_x + italic_i italic_y ) = square-root start_ARG roman_ulp ( italic_x ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + roman_ulp ( italic_y ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG .

The following statement generalises Proposition 5.2 and is at the heart of the implementation of our library [Mandel].

Theorem 8.

For centers za,zbN+iNsubscript𝑧𝑎subscript𝑧𝑏subscript𝑁𝑖subscript𝑁z_{a},z_{b}\in\mathcal{R}_{N}+i\mathcal{R}_{N}italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT , italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ∈ caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT + italic_i caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT, radii ra,rbMsubscript𝑟𝑎subscript𝑟𝑏subscript𝑀r_{a},r_{b}\in\mathcal{R}_{M}italic_r start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ∈ caligraphic_R start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT, one has:

D(za,ra)+D(zb,rb)D(za+Nzb,RM+(ra+rb+12ulp(za+Nzb))).Dsubscript𝑧𝑎subscript𝑟𝑎Dsubscript𝑧𝑏subscript𝑟𝑏Dsubscript𝑁subscript𝑧𝑎subscript𝑧𝑏superscriptsubscriptR𝑀subscript𝑟𝑎subscript𝑟𝑏12ulpsubscript𝑁subscript𝑧𝑎subscript𝑧𝑏\operatorname{D}(z_{a},r_{a})+\operatorname{D}(z_{b},r_{b})\subset% \operatorname{D}\left(z_{a}+_{N}z_{b}\,,\,\operatorname{R}_{M}^{+}\big{(}r_{a}% +r_{b}+{\textstyle\frac{1}{2}}\operatorname{ulp}(z_{a}+_{N}z_{b})\big{)}\right).roman_D ( italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ) + roman_D ( italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) ⊂ roman_D ( italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT + start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT , roman_R start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ( italic_r start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT + italic_r start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT + divide start_ARG 1 end_ARG start_ARG 2 end_ARG roman_ulp ( italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT + start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) ) ) .

For any intermediary precision NNsuperscript𝑁normal-′𝑁N^{\prime}\geq Nitalic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ≥ italic_N, the product of exact centers satisfies:

zazbD(za×N,Nzb,R),subscript𝑧𝑎subscript𝑧𝑏Dsubscript𝑁superscript𝑁subscript𝑧𝑎subscript𝑧𝑏subscript𝑅z_{a}z_{b}\in\operatorname{D}\left(z_{a}\times_{N,N^{\prime}}z_{b},R_{\ast}% \right),italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ∈ roman_D ( italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT × start_POSTSUBSCRIPT italic_N , italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT , italic_R start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ) ,

where

R=RM+(12ulp(za×N,Nzb)+12u=xa,yav=xb,ypulp(u×Nv)).subscript𝑅superscriptsubscriptR𝑀12ulpsubscript𝑁superscript𝑁subscript𝑧𝑎subscript𝑧𝑏12subscript𝑢subscript𝑥𝑎subscript𝑦𝑎𝑣subscript𝑥𝑏subscript𝑦𝑝ulpsubscriptsuperscript𝑁𝑢𝑣R_{\ast}=\operatorname{R}_{M}^{+}\Big{(}{\textstyle\frac{1}{2}}\operatorname{% ulp}(z_{a}\times_{N,N^{\prime}}z_{b})+{\textstyle\frac{1}{2}}\sum_{\begin{% subarray}{c}u=x_{a},y_{a}\\ v=x_{b},y_{p}\end{subarray}}\operatorname{ulp}(u\times_{N^{\prime}}v)\Big{)}.italic_R start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT = roman_R start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ( divide start_ARG 1 end_ARG start_ARG 2 end_ARG roman_ulp ( italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT × start_POSTSUBSCRIPT italic_N , italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) + divide start_ARG 1 end_ARG start_ARG 2 end_ARG ∑ start_POSTSUBSCRIPT start_ARG start_ROW start_CELL italic_u = italic_x start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_v = italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT end_CELL end_ROW end_ARG end_POSTSUBSCRIPT roman_ulp ( italic_u × start_POSTSUBSCRIPT italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_v ) ) .

The product of disks satisfies:

D(za,ra)×D(zb,rb)D(za×N,Nzb,RM+(rarb+ra|zb|+rb|za|+R)).Dsubscript𝑧𝑎subscript𝑟𝑎Dsubscript𝑧𝑏subscript𝑟𝑏Dsubscript𝑁superscript𝑁subscript𝑧𝑎subscript𝑧𝑏superscriptsubscriptR𝑀subscript𝑟𝑎subscript𝑟𝑏subscript𝑟𝑎subscript𝑧𝑏subscript𝑟𝑏subscript𝑧𝑎subscript𝑅\operatorname{D}(z_{a},r_{a})\times\operatorname{D}(z_{b},r_{b})\subset% \operatorname{D}\left(z_{a}\times_{N,N^{\prime}}z_{b}\,,\,\operatorname{R}_{M}% ^{+}\big{(}r_{a}r_{b}+r_{a}|z_{b}|+r_{b}|z_{a}|+R_{\ast}\big{)}\right).roman_D ( italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ) × roman_D ( italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) ⊂ roman_D ( italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT × start_POSTSUBSCRIPT italic_N , italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT , roman_R start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ( italic_r start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT + italic_r start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT | italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT | + italic_r start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT | italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT | + italic_R start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ) ) .

Finally, if xN𝑥subscript𝑁x\in\mathcal{R}_{N}italic_x ∈ caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT and rM𝑟subscript𝑀r\in\mathcal{R}_{M}italic_r ∈ caligraphic_R start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT, the scaling transform of the disk satisfies:

I(x,r)×D(za,ra)D(x×Nza,RM+((|x|+r)ra+r|za|+12ulp(x×Nza))).I𝑥𝑟Dsubscript𝑧𝑎subscript𝑟𝑎Dsubscript𝑁𝑥subscript𝑧𝑎superscriptsubscriptR𝑀𝑥𝑟subscript𝑟𝑎𝑟subscript𝑧𝑎12ulpsubscript𝑁𝑥subscript𝑧𝑎\operatorname{I}(x,r)\times\operatorname{D}(z_{a},r_{a})\subset\operatorname{D% }\left(x\times_{N}z_{a}\,,\,\operatorname{R}_{M}^{+}\big{(}(|x|+r)r_{a}+r|z_{a% }|+{\textstyle\frac{1}{2}}\operatorname{ulp}(x\times_{N}z_{a})\big{)}\right).roman_I ( italic_x , italic_r ) × roman_D ( italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ) ⊂ roman_D ( italic_x × start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT , roman_R start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ( ( | italic_x | + italic_r ) italic_r start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT + italic_r | italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT | + divide start_ARG 1 end_ARG start_ARG 2 end_ARG roman_ulp ( italic_x × start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ) ) ) .

The proof of the lemma is straightforward and the complex extension of the definition of ulpulp\operatorname{ulp}roman_ulp is illustraded on fig. 10. In our library, the role of Rsubscript𝑅R_{\ast}italic_R start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT is implemented as an on-the-fly modification of ulpulp\operatorname{ulp}roman_ulp.

Remark 11.

In theory, there is a slightly tighter upper bound for the radius Rsubscript𝑅normal-∗R_{\ast}italic_R start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT, namely

R=RM+{12ulp(za×N,Nzb\displaystyle R^{\ast}=\operatorname{R}_{M}^{+}\Big{\{}{\textstyle\frac{1}{2}}% \operatorname{ulp}\Big{(}z_{a}\times_{N,N^{\prime}}z_{b}italic_R start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = roman_R start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT { divide start_ARG 1 end_ARG start_ARG 2 end_ARG roman_ulp ( italic_z start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT × start_POSTSUBSCRIPT italic_N , italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT +ulp(xa×Nxb)+ulp(ya×Nyb)ulpsubscriptsuperscript𝑁subscript𝑥𝑎subscript𝑥𝑏ulpsubscriptsuperscript𝑁subscript𝑦𝑎subscript𝑦𝑏\displaystyle+\operatorname{ulp}(x_{a}\times_{N^{\prime}}x_{b})+\operatorname{% ulp}(y_{a}\times_{N^{\prime}}y_{b})+ roman_ulp ( italic_x start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT × start_POSTSUBSCRIPT italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) + roman_ulp ( italic_y start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT × start_POSTSUBSCRIPT italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_y start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT )
+i[ulp(ya×Nxb)+ulp(xa×Nyb)])}.\displaystyle+i\left[\operatorname{ulp}(y_{a}\times_{N^{\prime}}x_{b})+% \operatorname{ulp}(x_{a}\times_{N^{\prime}}y_{b})\right]\Big{)}\Big{\}}.+ italic_i [ roman_ulp ( italic_y start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT × start_POSTSUBSCRIPT italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) + roman_ulp ( italic_x start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT × start_POSTSUBSCRIPT italic_N start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_y start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) ] ) } .

However, the code complexity and computational cost of using Rsuperscript𝑅normal-∗R^{\ast}italic_R start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT are unreasonably high compared to that of using Rsubscript𝑅normal-∗R_{\ast}italic_R start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT and are not justified for the expected gain.

Refer to caption
Refer to caption
Figure 10: The key points to the proof of Theorem 8 : N×Nsubscript𝑁subscript𝑁\mathcal{R}_{N}\times\mathcal{R}_{N}caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT × caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT grid (left) and the rounding strategy of zsuperscript𝑧z^{\prime}\in\mathbb{C}italic_z start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ blackboard_C to z~N×N~𝑧subscript𝑁subscript𝑁\tilde{z}\in\mathcal{R}_{N}\times\mathcal{R}_{N}over~ start_ARG italic_z end_ARG ∈ caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT × caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT within 12ulpz~12ulp~𝑧\frac{1}{2}\operatorname{ulp}\tilde{z}divide start_ARG 1 end_ARG start_ARG 2 end_ARG roman_ulp over~ start_ARG italic_z end_ARG (right).

To ease the tedious task of checking Theorem 8, let us recall a few ground rules. Having figure 10 in mind may help convey the key points. The center of a disk Dz,rsubscriptD𝑧𝑟\operatorname{D}_{z,r}roman_D start_POSTSUBSCRIPT italic_z , italic_r end_POSTSUBSCRIPT is always considered exact; it belongs to N×Nsubscript𝑁subscript𝑁\mathcal{R}_{N}\times\mathcal{R}_{N}caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT × caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT. The corresponding ulpulp\operatorname{ulp}roman_ulp is thus a rectangle of dimensions ulpx×ulpyulp𝑥ulp𝑦\operatorname{ulp}x\times\operatorname{ulp}yroman_ulp italic_x × roman_ulp italic_y where z=x+iy𝑧𝑥𝑖𝑦z=x+iyitalic_z = italic_x + italic_i italic_y. When computing the result of an operation, the new exact center zsuperscript𝑧z^{\prime}\in\mathbb{C}italic_z start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ blackboard_C does not belong, in general, to the grid N×Nsubscript𝑁subscript𝑁\mathcal{R}_{N}\times\mathcal{R}_{N}caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT × caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT. The real and imaginary parts of zsuperscript𝑧z^{\prime}italic_z start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT are rounded to their closest value, which gives the new center z~N×N~𝑧subscript𝑁subscript𝑁\tilde{z}\in\mathcal{R}_{N}\times\mathcal{R}_{N}over~ start_ARG italic_z end_ARG ∈ caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT × caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT. To compensate, one needs to increase the radius of the disk by, at most, half the diagonal of the ulpulp\operatorname{ulp}roman_ulp rectangle. The claim that the center can be assumed exact is thus restored and one is ready for the next operation.

Remark 12.

The product of complex numbers is a multi-step operation over \mathbb{R}blackboard_R. As such, additional ulpnormal-ulp\operatorname{ulp}roman_ulp have to be added to bound the successive rounding errors in each intermediary step.

6 Implementation and numerical results

In this section, we present the library [Mandel] and the database [Mand.DB], which are a companion to this article and the numerical results that we have obtained with it. The main practical challenge is to preserve the efficiency of computations as the scale of the problem spans 12 orders of magnitude. The algorithm exposed in §4 is specifically designed for this. However, all the logistics regarding process scheduling and data handling have to keep up. At this scale, the certification of all the data becomes crucial, not only though the procedure described in §5 but also, at the lowest level, to ensure that no bit corruption occurs in the production and storage pipeline. In its final state, our database takes 43TB of disk space and we estimate (see Table 2) the overall cost to regenerate it from scratch to 83 years-core (723 000 hours-core) of computation time. The actual time that was actually necessary to build this library from scratch actually exceeds 1 million core-hours.

6.1 Appropriate data structures

Computations are performed with the standard FP80 format (long double) for low precision or with mpfr and mpc numbers (a convenience wrapper for complex numbers) for arbitrary higher precisions. However, the foundation of scalable efficiency is the usage of appropriate data structures that are efficient for storage (both for disk and memory usage777Because of memory alignement, the size of a structure in RAM may not match its size on the disk.), maintenance operations (sort, search, insertion) and that are easily compatible with high-precision arithmetic. In [Mandel], we have developed such structures specifically for this project.


Our core numerical format to store complex numbers in [2,2)+i[0,4)22𝑖04[-2,2)+i[0,4)[ - 2 , 2 ) + italic_i [ 0 , 4 ) is the u128 format. It is composed of two unsigned 128-bits integers representing respectively the real and imaginary part with the two leading bits reserved for the mantissa. A pair (p,q)𝑝𝑞(p,q)( italic_p , italic_q ) in u128 format thus represents the complex number

z=(2+p×2126)+iq×2126.𝑧2𝑝superscript2126𝑖𝑞superscript2126z=(-2+p\times 2^{-126})+iq\times 2^{-126}.italic_z = ( - 2 + italic_p × 2 start_POSTSUPERSCRIPT - 126 end_POSTSUPERSCRIPT ) + italic_i italic_q × 2 start_POSTSUPERSCRIPT - 126 end_POSTSUPERSCRIPT . (43)

Roots of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT are ultimately stored as u128 numbers, which we call the published value in the rest of this text. The minimal absolute resolution of published values is therefore about 1.2×10381.2superscript10381.2\times 10^{-38}1.2 × 10 start_POSTSUPERSCRIPT - 38 end_POSTSUPERSCRIPT. This resolution is sufficient for our needs: for example, the minimal distance between two distinct hyperbolic centers of period 41 is only 2.45×10232.45superscript10232.45\times 10^{-23}2.45 × 10 start_POSTSUPERSCRIPT - 23 end_POSTSUPERSCRIPT so pairs of roots will differ by at least 50 bits.


Refer to caption
Figure 11: Insertion in nset is non commutative (left): inserting A,D,B,C𝐴𝐷𝐵𝐶A,D,B,Citalic_A , italic_D , italic_B , italic_C results in {A,D}𝐴𝐷\{A,D\}{ italic_A , italic_D } while inserting A,B,C,D𝐴𝐵𝐶𝐷A,B,C,Ditalic_A , italic_B , italic_C , italic_D results in {A,B,C}𝐴𝐵𝐶\{A,B,C\}{ italic_A , italic_B , italic_C }. Near the real axis (right), A𝐴Aitalic_A and B𝐵Bitalic_B respect the assumption (44). However, C𝐶Citalic_C does not and could thus not be added to an nset.

The work-horse of our database is the nset structure. This structure implements the mathematical idea of a finite set of points in the rectangle [2,2)+i(4,4)22𝑖44[-2,2)+i(-4,4)[ - 2 , 2 ) + italic_i ( - 4 , 4 ) that is symmetric with respect to the real axis. Only the points in the upper-plane are stored. Each stored point in the set is a u128 complex number. Each set comes with a separation parameter ε>0𝜀0\varepsilon>0italic_ε > 0 and all operations on the nset guaranty the following property: given two distincts points z1subscript𝑧1z_{1}italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, z2subscript𝑧2z_{2}italic_z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT in the set or in its conjugate image:

max{|Re(z1z2)|,|Im(z1z2)|}ε.Resubscript𝑧1subscript𝑧2Imsubscript𝑧1subscript𝑧2𝜀\max\{|\operatorname{Re}(z_{1}-z_{2})|,|\operatorname{Im}(z_{1}-z_{2})|\}\geq\varepsilon.roman_max { | roman_Re ( italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) | , | roman_Im ( italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) | } ≥ italic_ε . (44)

In other words, points are considered as equal if one center belongs to the square “pixel” of side 2ε2𝜀2\varepsilon2 italic_ε centered in the other one. Note that this is not an transitive relation (see Figure 11). Special care must be taken near the real axis to avoid collisions with the conjugate images (z2=z1¯subscript𝑧2¯subscript𝑧1z_{2}=\overline{z_{1}}italic_z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = over¯ start_ARG italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG). In our database, we use a separation εh=3.23×1027subscript𝜀3.23superscript1027\varepsilon_{h}=3.23\times 10^{-27}italic_ε start_POSTSUBSCRIPT italic_h end_POSTSUBSCRIPT = 3.23 × 10 start_POSTSUPERSCRIPT - 27 end_POSTSUPERSCRIPT for hyperbolic centers and εm=8.08×1028subscript𝜀𝑚8.08superscript1028\varepsilon_{m}=8.08\times 10^{-28}italic_ε start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT = 8.08 × 10 start_POSTSUPERSCRIPT - 28 end_POSTSUPERSCRIPT for Misiurewicz points. Note that this parameter serves a different purpose than the certification parameters (see Fig. 12).

The points in an nset structure are totally ordered by the lexicographical order:

z1z2Rez1<Rez2or{Rez1=Rez2,Imz1<Imz2.formulae-sequenceprecedes-or-equalssubscript𝑧1subscript𝑧2Resubscript𝑧1Resubscript𝑧2orcasesResubscript𝑧1Resubscript𝑧2𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒Imsubscript𝑧1Imsubscript𝑧2𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒z_{1}\preceq z_{2}\qquad\Longleftrightarrow\qquad\operatorname{Re}z_{1}<% \operatorname{Re}z_{2}\quad\text{or}\quad\begin{cases}\operatorname{Re}z_{1}=% \operatorname{Re}z_{2},\\ \operatorname{Im}z_{1}<\operatorname{Im}z_{2}.\end{cases}italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ⪯ italic_z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ⟺ roman_Re italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT < roman_Re italic_z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT or { start_ROW start_CELL roman_Re italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = roman_Re italic_z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL roman_Im italic_z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT < roman_Im italic_z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT . end_CELL start_CELL end_CELL end_ROW (45)

To optimize memory management, an nset can exist in two internal states, either locked or unlocked. In its unlocked state, an nset contains a family of sub-sets (called bars) whose sizes form, ideally, a geometric progression. Each bar is ordered with (45). Bars are independent from one another (no ordering). Insertion is performed on the last (smallest) bar unless it is full, in which case the bar is merged with the previous one (recursively if necessary). This means that insertion can be performed in O(1)𝑂1O(1)italic_O ( 1 ) to O(N)𝑂𝑁O(N)italic_O ( italic_N ) operations, where N𝑁Nitalic_N is the size of the nset. However, large numbers of operations are exponentially rare: the kthsuperscript𝑘thk^{\text{th}}italic_k start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT bar is only merged into the bar k+1𝑘1k+1italic_k + 1 when all the previous bars are full, so once in O(2k)𝑂superscript2𝑘O(2^{k})italic_O ( 2 start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT ) insertions. If we denote by B𝐵Bitalic_B is the size of the smallest bar and K=log2(1+NB)𝐾subscript21𝑁𝐵K=\log_{2}\left(1+\frac{N}{B}\right)italic_K = roman_log start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( 1 + divide start_ARG italic_N end_ARG start_ARG italic_B end_ARG ) the total number of bars, then, on average, an insertion costs

k=1KkB2k1k=1KB2k1=1+(K1)2K2K1=O(logN)superscriptsubscript𝑘1𝐾𝑘𝐵superscript2𝑘1superscriptsubscript𝑘1𝐾𝐵superscript2𝑘11𝐾1superscript2𝐾superscript2𝐾1𝑂𝑁\frac{\displaystyle\sum_{k=1}^{K}kB2^{k-1}}{\displaystyle\sum_{k=1}^{K}B2^{k-1% }}=\frac{1+(K-1)2^{K}}{2^{K}-1}=O(\log N)divide start_ARG ∑ start_POSTSUBSCRIPT italic_k = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_K end_POSTSUPERSCRIPT italic_k italic_B 2 start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT end_ARG start_ARG ∑ start_POSTSUBSCRIPT italic_k = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_K end_POSTSUPERSCRIPT italic_B 2 start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT end_ARG = divide start_ARG 1 + ( italic_K - 1 ) 2 start_POSTSUPERSCRIPT italic_K end_POSTSUPERSCRIPT end_ARG start_ARG 2 start_POSTSUPERSCRIPT italic_K end_POSTSUPERSCRIPT - 1 end_ARG = italic_O ( roman_log italic_N )

memory management operations. Conversely, a search on an unlocked nset takes O(log2N)𝑂superscript2𝑁O(\log^{2}N)italic_O ( roman_log start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_N ) operations because each of the K=O(logN)𝐾𝑂𝑁K=O(\log N)italic_K = italic_O ( roman_log italic_N ) bars must be searched independently. Note that in order to ensure (44), an insertion can only be performed after a search for the new point has confirmed that it is indeed appropriate to add it. Points near the real line (like the point C𝐶Citalic_C on the right-hand side of Figure 11) must be treated as exceptions: it is up to the user to decide wether it is appropriate to correct the imaginary part to zero or to refuse to add the point.

In its locked state, all the memory bars of an nset are merged, which means that the set becomes fully ordered. This is a one-time O(N)𝑂𝑁O(N)italic_O ( italic_N ) cost. Insertion within a locked nset is not authorized anymore. Note that unlocking remains possible and, in that case, the previous logarithmic costs can be restored (using dyadically smaller bars before the main data chunk). In a locked nset, the cost of a search drops to O(logN)𝑂𝑁O(\log N)italic_O ( roman_log italic_N ). A locked nset is essentially ready to be written to the disk. Actions on an nset structure require only a O(logN)𝑂𝑁O(\log N)italic_O ( roman_log italic_N ) memory overhead (pointers to the each memory bar), which turns out to be constant in practice888No more than 64 memory bars are ever necessary if one uses unsigned long for array indices.. Not that we haven’t implemented deletion as a guaranty that no point will ever be added unless we know for certain that it should.


We have also implemented pset, i.e. planar sets, which is a structure analogous to the nset but based on FP80 numbers (long double) instead of u128. The pset structure implements the mathematical idea of a finite set of points in the complex plane, with no geometric restrictions. It provides logarithmic search and insertion times with logarithmic memory overhead. The theoretical optimum [FS89], [Lar13] for operations on ordered memory structures is O(logN/loglogN)𝑂𝑁𝑁O(\log N/\log\log N)italic_O ( roman_log italic_N / roman_log roman_log italic_N ). The performances of our structures are therefore quite satisfactory and may be of general interest. In particular, aside from improved RAM usage, our low memory footprint minimizes the cost of the conversions to and from a disk-storage format, which is crucial when handling terabytes of data999A pointer requires typically 8 bytes on a 64-bit architecture; implementing e.g. a balanced tree of FP80 with 2 pointers to the children would therefore induce about 50% of memory overhead..


Our format to handle vectors of high-precision numbers is called mpv. This format is optimized for storage and large scale disk access. In a given vector, all the elements share a common precision. The vector can either be real or complex, with consecutive pairs of real/imaginary parts. Individual operations on elements are possible, though awkward. One important feature of this format is the possibility to concatenate multiple vectors into a single file (what we call mini-files) and to perform parallel read-writes on each mini-file.


Our implementation also contains tools to import, export and compare CSV files (comma separated values) of complex numbers of arbitrary precision (using a,b𝑎𝑏a,bitalic_a , italic_b to represent a+ib𝑎𝑖𝑏a+ibitalic_a + italic_i italic_b). This format is extremely slow because of the binary to decimal conversion and requires about 1.8 times more disk space. It ensures however a human-readable output and a minimal compatibility with other computing or graphical tools.

6.2 Certification results and protection against data corruption

Each published value (see (43) for a definition) for a root of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT or q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT comes with multiple levels certifications. Let us underline that the following theorem contains about 3×10123superscript10123\times 10^{12}3 × 10 start_POSTSUPERSCRIPT 12 end_POSTSUPERSCRIPT individual statements, whose proof are computer assisted.

Theorem 9.

There are constants εRsubscript𝜀𝑅\varepsilon_{R}italic_ε start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT, εNsubscript𝜀𝑁\varepsilon_{N}italic_ε start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT and εSsubscript𝜀𝑆\varepsilon_{S}italic_ε start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT given in Figure 12 for which the following holds. In the nset database for the roots of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT or q,nsubscript𝑞normal-ℓ𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT, each published value zj2126(+i)subscript𝑧𝑗superscript2126𝑖z_{j}\in 2^{-126}(\mathbb{Z}+i\mathbb{N})italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ∈ 2 start_POSTSUPERSCRIPT - 126 end_POSTSUPERSCRIPT ( blackboard_Z + italic_i blackboard_N ) can be paired with a unique actual root zD(zj,εR)subscript𝑧normal-∗normal-Dsubscript𝑧𝑗subscript𝜀𝑅z_{\ast}\in\operatorname{D}(z_{j},\varepsilon_{R})italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ∈ roman_D ( italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT , italic_ε start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT ). This pairing is bijective in the upper half plane Imz0normal-Im𝑧0\operatorname{Im}z\geq 0roman_Im italic_z ≥ 0. Each pair of published values zj,zksubscript𝑧𝑗subscript𝑧𝑘z_{j},z_{k}italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT , italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT satisfies |zjzk|εSsubscript𝑧𝑗subscript𝑧𝑘subscript𝜀𝑆|z_{j}-z_{k}|\geq\varepsilon_{S}| italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT - italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT | ≥ italic_ε start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT and either zjsubscript𝑧𝑗z_{j}\in\mathbb{R}italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ∈ blackboard_R or |zjz¯j|εSsubscript𝑧𝑗subscriptnormal-¯𝑧𝑗subscript𝜀𝑆|z_{j}-\bar{z}_{j}|\geq\varepsilon_{S}| italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT - over¯ start_ARG italic_z end_ARG start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT | ≥ italic_ε start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT. Lastly, the disk D(zj,εN)normal-Dsubscript𝑧𝑗subscript𝜀𝑁\operatorname{D}(z_{j},\varepsilon_{N})roman_D ( italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT , italic_ε start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ) is entirely contained in the attraction bassin of zsubscript𝑧normal-∗z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT for the Newton method of the associated polynomial.

Refer to caption

pn40p41q,nεR10301035εN102410251032εS3.23×10278.08×1028missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionsubscript𝑝𝑛40subscript𝑝41subscript𝑞𝑛missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionsubscript𝜀𝑅superscript1030superscript1035missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionsubscript𝜀𝑁superscript1024superscript1025superscript1032missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionsubscript𝜀𝑆3.23superscript10278.08superscript1028\begin{array}[]{|c|c|c|c|}\cline{2-4}\cr\hfil\hfil\vrule&p_{n\leq 40}&p_{41}&q% _{\ell,n}\\ \hline\cr\varepsilon_{R}&\hfil 10^{-30}\hfil\vrule&10^{-35}\\ \hline\cr\varepsilon_{N}&10^{-24}&10^{-25}&10^{-32}\\ \hline\cr\varepsilon_{S}&\hfil 3.23\times 10^{-27}\hfil\vrule&8.08\times 10^{-% 28}\\ \hline\cr\end{array}start_ARRAY start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL italic_p start_POSTSUBSCRIPT italic_n ≤ 40 end_POSTSUBSCRIPT end_CELL start_CELL italic_p start_POSTSUBSCRIPT 41 end_POSTSUBSCRIPT end_CELL start_CELL italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL italic_ε start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT end_CELL start_CELL 10 start_POSTSUPERSCRIPT - 30 end_POSTSUPERSCRIPT end_CELL start_CELL 10 start_POSTSUPERSCRIPT - 35 end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL italic_ε start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_CELL start_CELL 10 start_POSTSUPERSCRIPT - 24 end_POSTSUPERSCRIPT end_CELL start_CELL 10 start_POSTSUPERSCRIPT - 25 end_POSTSUPERSCRIPT end_CELL start_CELL 10 start_POSTSUPERSCRIPT - 32 end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL italic_ε start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT end_CELL start_CELL 3.23 × 10 start_POSTSUPERSCRIPT - 27 end_POSTSUPERSCRIPT end_CELL start_CELL 8.08 × 10 start_POSTSUPERSCRIPT - 28 end_POSTSUPERSCRIPT end_CELL end_ROW end_ARRAY

Figure 12: For each root zsubscript𝑧z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT with Imz0Imsubscript𝑧0\operatorname{Im}z_{\ast}\geq 0roman_Im italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ≥ 0, the published value zj2126(+i)subscript𝑧𝑗superscript2126𝑖z_{j}\in 2^{-126}(\mathbb{Z}+i\mathbb{N})italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ∈ 2 start_POSTSUPERSCRIPT - 126 end_POSTSUPERSCRIPT ( blackboard_Z + italic_i blackboard_N ) comes with different radii. The radius of separation εSsubscript𝜀𝑆\varepsilon_{S}italic_ε start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT guaranties proper counting, the radius of certification εRsubscript𝜀𝑅\varepsilon_{R}italic_ε start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT is such that zD(zj,εR)subscript𝑧Dsubscript𝑧𝑗subscript𝜀𝑅z_{\ast}\in\operatorname{D}(z_{j},\varepsilon_{R})italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT ∈ roman_D ( italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT , italic_ε start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT ) and the radius of convergence εNsubscript𝜀𝑁\varepsilon_{N}italic_ε start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ensures that the D(zj,εN)Dsubscript𝑧𝑗subscript𝜀𝑁\operatorname{D}(z_{j},\varepsilon_{N})roman_D ( italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT , italic_ε start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ) is contained in the bassin of attraction of zsubscript𝑧z_{\ast}italic_z start_POSTSUBSCRIPT ∗ end_POSTSUBSCRIPT for the Newton method.
Proof.

Using the controlled rounding features of the MPFR library [MPFR], we have implemented disk arithmetic i.e.  Theorem 8. This allows us to provide, for each root candidate zjsubscript𝑧𝑗z_{j}italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT, a numerical proof that the assumptions of Theorem 6 on the localisation of each root can indeed be applied. Thus, we can certify that the published coordinates of each root differ from an actual root by no more than 1030superscript103010^{-30}10 start_POSTSUPERSCRIPT - 30 end_POSTSUPERSCRIPT for pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT or 1035superscript103510^{-35}10 start_POSTSUPERSCRIPT - 35 end_POSTSUPERSCRIPT for q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT. Similarly, using disk arithmetic with εNsubscript𝜀𝑁\varepsilon_{N}italic_ε start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT, we can check the assumptions of Theorem 7 which ensures the claim on the Newton bassin. Next, each pair of two published values or any pair with conjugate values satisfies the separation assumption (44) because it is build into our storage structure (see §6.1). It is slightly stronger than the one claimed here. This separation guaranties that it is possible to count unambiguously all the real roots, and all the non real roots in the upper half-plane. Comparing with the theoretical count given by Theorem 1 and (12) ensures our bijection claim. ∎

Remark 13.

We are confident that each component of the published values is exact up to

±12ulp(Re𝚞𝟷𝟸𝟾)=±21275.9×1039,plus-or-minus12ulpRe𝚞𝟷𝟸𝟾plus-or-minussuperscript2127similar-to-or-equals5.9superscript1039\pm{\textstyle\frac{1}{2}}\operatorname{ulp}(\operatorname{Re}\operatorname{% \tt u128})=\pm 2^{-127}\simeq 5.9\times 10^{-39},± divide start_ARG 1 end_ARG start_ARG 2 end_ARG roman_ulp ( roman_Re typewriter_u128 ) = ± 2 start_POSTSUPERSCRIPT - 127 end_POSTSUPERSCRIPT ≃ 5.9 × 10 start_POSTSUPERSCRIPT - 39 end_POSTSUPERSCRIPT ,

which is better than the εRsubscript𝜀𝑅\varepsilon_{R}italic_ε start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT radius claimed in Theorem 9. Indeed, once we have a zjsubscript𝑧𝑗z_{j}italic_z start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT value that passes the certifications for both disk arithmetic and Newton bassin, we can refine its value using Newton’s method until reaching a fixed point at the desired precision (43), up to a final rounding error.

At the terabyte scale, the possibility of bit corruption becomes a significant issue. Besides the previous statement, practical precautions must therefore be taken to ensure the integrity of the data along the whole production chain, from the initial computation that finds a root to its final storage in a file. This protection must also extends to any subsequent use of the stored values.

Our library [Mandel] incorporates a strict data certification procedure. Our nset file format implements a header that contains the MD5 checksum of the data stored in the rest of the file. When writing a file, a checksum of the original data is first computed in memory, then the file is written onto the disk and the checksum is written in the file header. To detect subsequent data corruption (due to an error in a file transfert or a random bit flip), each time a file is loaded, the checksum of the data stored in the file is computed again and checked against its original value stored in the header. This protocol ensures the data integrity once the original MD5 stamp has been generated.

Lastly, one needs to check that a random memory corruption has not affected the initial creation process, after the value was computed but before the original MD5 checksum was generated. The only sensible way to guard against this problem is to perform a new independent certification (count and proofs) of Theorem 9 of all the data written on the disk, which we did using our applications hypCount, hypProve, misCount and misProve. To encourage independent verifications, the code of those applications has been kept as minimalistic as possible.

The only uncertainty left is a data corruption that could happen after this second certification but would remain undetected by the MD5 checksums. As MD5 is a 128 bit cryptographic hash function101010Granted that our database is not subject to a malicious attack that would actively seek a vulnerability., the probability of such an event is of order 21283×1039similar-to-or-equalssuperscript21283superscript10392^{-128}\simeq 3\times 10^{-39}2 start_POSTSUPERSCRIPT - 128 end_POSTSUPERSCRIPT ≃ 3 × 10 start_POSTSUPERSCRIPT - 39 end_POSTSUPERSCRIPT.

6.3 Quick single-core splitting of polynomials up to degree 109superscript10910^{9}10 start_POSTSUPERSCRIPT 9 end_POSTSUPERSCRIPT

Splitting the polynomials pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT for the first values of n𝑛nitalic_n is a standard computational challenge. Using the standard algorithms of Section 3, splitting p25subscript𝑝25p_{25}italic_p start_POSTSUBSCRIPT 25 end_POSTSUBSCRIPT (degree 1.7 million) is a task that used to lie at the computational frontier and required days of core usage. Using our new algorithm based on level lines (presented in Section 4), the polynomial p25subscript𝑝25p_{25}italic_p start_POSTSUBSCRIPT 25 end_POSTSUBSCRIPT can now be split in only a few minutes on a single core of consumer hardware. As illustrated of Figure 13, we push the day-core limit back to p33subscript𝑝33p_{33}italic_p start_POSTSUBSCRIPT 33 end_POSTSUBSCRIPT (degree 4.3 billion). As explained in §6.3.2 below, this degree is the highest one that can be handled using hardware arithmetic.

Refer to caption
Figure 13: Computation time, in microseconds, per new parameter Hyp(n)Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n ) computed with hypQuick (red dots) or Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n ) with misQuick (gray lozenges). The black square give the average time at a given +n𝑛\ell+nroman_ℓ + italic_n. The slowest subtype corresponds to q,2subscript𝑞2q_{\ell,2}italic_q start_POSTSUBSCRIPT roman_ℓ , 2 end_POSTSUBSCRIPT. Labels indicate the total splitting time of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT or q,2subscript𝑞2q_{\ell,2}italic_q start_POSTSUBSCRIPT roman_ℓ , 2 end_POSTSUBSCRIPT on a single CPU. The magenta triangles represent the average computation time per root of q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT, regardless of wether the root is a hyperbolic divisor or not. The dashed lines correspond to a slope O(n0.8)𝑂superscript𝑛0.8O(n^{0.8})italic_O ( italic_n start_POSTSUPERSCRIPT 0.8 end_POSTSUPERSCRIPT ) or O((+n)0.8)𝑂superscript𝑛0.8O((\ell+n)^{0.8})italic_O ( ( roman_ℓ + italic_n ) start_POSTSUPERSCRIPT 0.8 end_POSTSUPERSCRIPT ), and the overall fit suggests that the algorithm behaves, in practice, as O(d(logd)0.8)𝑂𝑑superscript𝑑0.8O(d(\log d)^{0.8})italic_O ( italic_d ( roman_log italic_d ) start_POSTSUPERSCRIPT 0.8 end_POSTSUPERSCRIPT ).

6.3.1 Implementation of the level line algorithm

In our implementation [Mandel], the application hypQuick splits pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and computes a listing of Hyp(n)Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n ). On Figure 13, the low degree scatter for processes that execute in less than 5 seconds is driven by memory loading and is not significant. The 40% jump in the average processing time per root at p30subscript𝑝30p_{30}italic_p start_POSTSUBSCRIPT 30 end_POSTSUBSCRIPT is due to the fact that we double the number of points on the initial level line when n30𝑛30n\geq 30italic_n ≥ 30. The code of this application is concise and is largely independent of the rest of the library. It relies on the pset structure (see §6.1) to collect and sort the roots and prevent duplicates. The functions that implement the Newton’s method are common to our whole library.

Let us comment on our implementation for the splitting of qnsubscript𝑞𝑛q_{n}italic_q start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT. The endpoints of the level curve |pn(z)|=5subscript𝑝𝑛𝑧5|p_{n}(z)|=5| italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_z ) | = 5 along the real line are found by dichotomy. The discrete level curve 𝕃5,2n1(pn)subscript𝕃5superscript2𝑛1subscript𝑝𝑛\mathbb{L}_{5,2^{n-1}}(p_{n})blackboard_L start_POSTSUBSCRIPT 5 , 2 start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) defined by (31) is computed on the fly using Proposition 4.1 with M=8𝑀8M=8italic_M = 8 points per turn if n29𝑛29n\leq 29italic_n ≤ 29 or M=16𝑀16M=16italic_M = 16 points per turn if n30𝑛30n\geq 30italic_n ≥ 30, i.e. one computes solutions of pn(zk)=5e2ikπ/Msubscript𝑝𝑛subscript𝑧𝑘5superscript𝑒2𝑖𝑘𝜋𝑀p_{n}(z_{k})=5e^{2ik\pi/M}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) = 5 italic_e start_POSTSUPERSCRIPT 2 italic_i italic_k italic_π / italic_M end_POSTSUPERSCRIPT, each zksubscript𝑧𝑘z_{k}italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT acting as the starting point for the Newton iterations towards zk+1subscript𝑧𝑘1z_{k+1}italic_z start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT (see Figure 6). For each zksubscript𝑧𝑘z_{k}italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT such that k0mod2𝑘modulo02k\equiv 0\mod 2italic_k ≡ 0 roman_mod 2 (if n29𝑛29n\leq 29italic_n ≤ 29) or k0mod4𝑘modulo04k\equiv 0\mod 4italic_k ≡ 0 roman_mod 4 (if n30𝑛30n\geq 30italic_n ≥ 30), a Newton descend attempts to find a new root of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT. To prevent divergent trajectories, the number of iterations is capped by O(logd)𝑂𝑑O(\log d)italic_O ( roman_log italic_d ). The new root is then searched in O(logd)𝑂𝑑O(\log d)italic_O ( roman_log italic_d ) within a pset structure that contains all the roots of the known divisors of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT given by Theorem 1. If the root does not belong to a divisor, it is added, in constant time, into a pset structure that collects all new roots. Then the computation of the discrete level curve restarts and the process continues. Overall, the complexity of splitting pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and identifying Hyp(n)Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n ) using this implementation is O(dlogd)𝑂𝑑𝑑O(d\log d)italic_O ( italic_d roman_log italic_d ) with d=2n1𝑑superscript2𝑛1d=2^{n-1}italic_d = 2 start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT, which explains the record times shown on Figure 13. All computations are performed using FP80 hardware arithmetic. The memory requirement is d+O(d)𝑑𝑂𝑑d+O(\sqrt{d})italic_d + italic_O ( square-root start_ARG italic_d end_ARG ) to store both the divisors and the new roots. The application finally outputs the listing of the set Hyp(n)Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n ) in CSV format.

We have also implemented two applications that split q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT for +n30𝑛30\ell+n\leq 30roman_ℓ + italic_n ≤ 30. The application misQuick uses the original polynomials q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT, which have high-multiplicity roots, as described in Theorem 2. Figure 13 synthesizes our benchmarks. The computation time appears to obey a general rule O(d(logd)0.8)𝑂𝑑superscript𝑑0.8O(d(\log d)^{0.8})italic_O ( italic_d ( roman_log italic_d ) start_POSTSUPERSCRIPT 0.8 end_POSTSUPERSCRIPT ) per new parameter, regardless of multiplicity. The constant factor in front of this experimental law depends on the sub-family of polynomials on which the benchmark is run and the parameters (like the ratio of starting points per root). In theory, a O(dlogd)𝑂𝑑𝑑O(d\log d)italic_O ( italic_d roman_log italic_d ) scaling law should have been observed. Let us point out that the renormalized computation time per root (regardless of wether it is a Misiurewicz type or not) is equivalent to that of hyperbolic polynomials of the same degree. This means that high-multiplicities have, at least in that case, a minimal effect on the efficiency of our algorithm. To get rid of multiplicities, the application misSimpleQuick uses the simplified polynomials s,n=p+n1+p1subscript𝑠𝑛subscript𝑝𝑛1subscript𝑝1s_{\ell,n}=p_{\ell+n-1}+p_{\ell-1}italic_s start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT = italic_p start_POSTSUBSCRIPT roman_ℓ + italic_n - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT instead of q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT. This polynomial (9) plays a central role in the proof of Theorem 2 (see equation (59) in Appendix A), it has simple roots that contain Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n ) and is a lot simpler to compute than the fully reduced polynomial m,nsubscript𝑚𝑛m_{\ell,n}italic_m start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT given by (11).

6.3.2 Reaching the limit of hardware arithmetic

The different C standard types of finite precision arithmetic are recalled in Table 1. For example, FP80 arithmetic is the highest precision available on common hardware and offers 64 significand bits; as such, it is suitable to represent the list of all roots of a polynomial only when the minimal root separation exceeds 2645×1020similar-to-or-equalssuperscript2645superscript10202^{-64}\simeq 5\times 10^{-20}2 start_POSTSUPERSCRIPT - 64 end_POSTSUPERSCRIPT ≃ 5 × 10 start_POSTSUPERSCRIPT - 20 end_POSTSUPERSCRIPT. Moreover, a margin of at least a few bits is necessary for the Newton dynamics to be meaningful and converge to those roots.

Norm Standard C Java Sign Exponent Significand RAM Disk
FP32 float float 1 bit 8 bit 1+23 bit 4B 4B
FP64 double double 1 bit 11 bit 1+52 bit 8B 8B
FP80 long double - 1 bit 15 bit 64 bit 12-16B 10B
FP128 - 1 bit 15 bit 1+112 bit 16B 16B
Table 1: Standard types of finite precision arithmetic.

Let us consider the two left-most real roots c1=2+ε1subscript𝑐12subscript𝜀1c_{1}=-2+\varepsilon_{1}italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = - 2 + italic_ε start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and c2=2+ε2subscript𝑐22subscript𝜀2c_{2}=-2+\varepsilon_{2}italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = - 2 + italic_ε start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, with 0<ε1<ε20subscript𝜀1subscript𝜀20<\varepsilon_{1}<\varepsilon_{2}0 < italic_ε start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT < italic_ε start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT. For large n𝑛nitalic_n, the corresponding dynamics (see Fig. 14) linger near 2 for most of the trajectory and separate from one another only at the last step, with

pn1(c1)=2ε12(1ε14)andpn1(c2)=2ε22(1ε24),formulae-sequencesubscript𝑝𝑛1subscript𝑐12subscript𝜀1similar-to-or-equals21subscript𝜀14andsubscript𝑝𝑛1subscript𝑐22subscript𝜀2similar-to-or-equals21subscript𝜀24p_{n-1}(c_{1})=\sqrt{2-\varepsilon_{1}}\simeq\sqrt{2}\left(1-\frac{\varepsilon% _{1}}{4}\right)\quad\text{and}\quad p_{n-1}(c_{2})=-\sqrt{2-\varepsilon_{2}}% \simeq-\sqrt{2}\left(1-\frac{\varepsilon_{2}}{4}\right),italic_p start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT ( italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) = square-root start_ARG 2 - italic_ε start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG ≃ square-root start_ARG 2 end_ARG ( 1 - divide start_ARG italic_ε start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG 4 end_ARG ) and italic_p start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT ( italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) = - square-root start_ARG 2 - italic_ε start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG ≃ - square-root start_ARG 2 end_ARG ( 1 - divide start_ARG italic_ε start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG start_ARG 4 end_ARG ) ,

hence the rough estimate:

22|pn1(c1)pn1(c2)||pn1(2)||c1c2|.similar-to-or-equals22subscript𝑝𝑛1subscript𝑐1subscript𝑝𝑛1subscript𝑐2similar-to-or-equalssuperscriptsubscript𝑝𝑛12subscript𝑐1subscript𝑐22\sqrt{2}\simeq|p_{n-1}(c_{1})-p_{n-1}(c_{2})|\simeq|p_{n-1}^{\prime}(-2)||c_{% 1}-c_{2}|.2 square-root start_ARG 2 end_ARG ≃ | italic_p start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT ( italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) - italic_p start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT ( italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) | ≃ | italic_p start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( - 2 ) | | italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT | . (46)
Refer to caption
Figure 14: Dynamics associated with the left-most real roots of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT (here with n=6)n=6)italic_n = 6 ).
Refer to caption
Figure 15: Minimal distance among hyperbolic centers Hyp(n)Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n ) and among the roots of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT (which differs only for odd n𝑛nitalic_n). The shaded regions highlight the resolution of hardware finite precision arithmetics FP64 and FP80 and the region where a higher precision is required.

The computation of the derivative is classical and is based on the connection between the parameter space and that of dynamics. Indeed, as fc(z)=2zsuperscriptsubscript𝑓𝑐𝑧2𝑧f_{c}^{\prime}(z)=2zitalic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z ) = 2 italic_z and

(fck)(z)==0k1fc(fc(z))=2kzfc(z)fck1(z),superscriptsuperscriptsubscript𝑓𝑐𝑘𝑧superscriptsubscriptproduct0𝑘1superscriptsubscript𝑓𝑐superscriptsubscript𝑓𝑐𝑧superscript2𝑘𝑧subscript𝑓𝑐𝑧superscriptsubscript𝑓𝑐𝑘1𝑧(f_{c}^{k})^{\prime}(z)=\prod_{\ell=0}^{k-1}f_{c}^{\prime}(f_{c}^{\ell}(z))=2^% {k}zf_{c}(z)\ldots f_{c}^{k-1}(z),( italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z ) = ∏ start_POSTSUBSCRIPT roman_ℓ = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT ( italic_z ) ) = 2 start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT italic_z italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_z ) … italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT ( italic_z ) ,

the recursive definition of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT gives

pn(c)=1+=1n1(fc)(pn(c))=1+=1n12pn(c)pn+1(c)pn1(c)superscriptsubscript𝑝𝑛𝑐1superscriptsubscript1𝑛1superscriptsuperscriptsubscript𝑓𝑐subscript𝑝𝑛𝑐1superscriptsubscript1𝑛1superscript2subscript𝑝𝑛𝑐subscript𝑝𝑛1𝑐subscript𝑝𝑛1𝑐p_{n}^{\prime}(c)=1+\sum_{\ell=1}^{n-1}(f_{c}^{\ell})^{\prime}(p_{n-\ell}(c))=% 1+\sum_{\ell=1}^{n-1}2^{\ell}p_{n-\ell}(c)p_{n-\ell+1}(c)\ldots p_{n-1}(c)italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_c ) = 1 + ∑ start_POSTSUBSCRIPT roman_ℓ = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT ( italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_p start_POSTSUBSCRIPT italic_n - roman_ℓ end_POSTSUBSCRIPT ( italic_c ) ) = 1 + ∑ start_POSTSUBSCRIPT roman_ℓ = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT italic_n - roman_ℓ end_POSTSUBSCRIPT ( italic_c ) italic_p start_POSTSUBSCRIPT italic_n - roman_ℓ + 1 end_POSTSUBSCRIPT ( italic_c ) … italic_p start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT ( italic_c )

thus

pn(c)(fcn1)(c)=1+=0n22pn(c)pn+1(c)pn1(c)2n1p1(c)p2(c)pn1(c)=1+k=1n11(fck)(c)superscriptsubscript𝑝𝑛𝑐superscriptsuperscriptsubscript𝑓𝑐𝑛1𝑐1superscriptsubscript0𝑛2superscript2subscript𝑝𝑛𝑐subscript𝑝𝑛1𝑐subscript𝑝𝑛1𝑐superscript2𝑛1subscript𝑝1𝑐subscript𝑝2𝑐subscript𝑝𝑛1𝑐1superscriptsubscript𝑘1𝑛11superscriptsuperscriptsubscript𝑓𝑐𝑘𝑐\frac{p_{n}^{\prime}(c)}{(f_{c}^{n-1})^{\prime}(c)}=1+\sum_{\ell=0}^{n-2}\frac% {2^{\ell}p_{n-\ell}(c)p_{n-\ell+1}(c)\ldots p_{n-1}(c)}{2^{n-1}p_{1}(c)p_{2}(c% )\ldots p_{n-1}(c)}=1+\sum_{k=1}^{n-1}\frac{1}{(f_{c}^{k})^{\prime}(c)}divide start_ARG italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_c ) end_ARG start_ARG ( italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_c ) end_ARG = 1 + ∑ start_POSTSUBSCRIPT roman_ℓ = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n - 2 end_POSTSUPERSCRIPT divide start_ARG 2 start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT italic_n - roman_ℓ end_POSTSUBSCRIPT ( italic_c ) italic_p start_POSTSUBSCRIPT italic_n - roman_ℓ + 1 end_POSTSUBSCRIPT ( italic_c ) … italic_p start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT ( italic_c ) end_ARG start_ARG 2 start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_c ) italic_p start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_c ) … italic_p start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT ( italic_c ) end_ARG = 1 + ∑ start_POSTSUBSCRIPT italic_k = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT divide start_ARG 1 end_ARG start_ARG ( italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_c ) end_ARG (47)

For c=2𝑐2c=-2italic_c = - 2, one has f2k(2)=2subscriptsuperscript𝑓𝑘222f^{k}_{-2}(-2)=2italic_f start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT start_POSTSUBSCRIPT - 2 end_POSTSUBSCRIPT ( - 2 ) = 2 for all k1𝑘1k\geq 1italic_k ≥ 1 and (f2k)(2)=4ksuperscriptsubscriptsuperscript𝑓𝑘22superscript4𝑘(f^{k}_{-2})^{\prime}(-2)=-4^{k}( italic_f start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT start_POSTSUBSCRIPT - 2 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( - 2 ) = - 4 start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT. Substitution in (47) gives pn(2)=4n+26superscriptsubscript𝑝𝑛2superscript4𝑛26p_{n}^{\prime}(-2)=-\frac{4^{n}+2}{6}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( - 2 ) = - divide start_ARG 4 start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT + 2 end_ARG start_ARG 6 end_ARG and thus, within the approximation (46):

|c1c2|4n.proportional-tosubscript𝑐1subscript𝑐2superscript4𝑛|c_{1}-c_{2}|\propto 4^{-n}.| italic_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT | ∝ 4 start_POSTSUPERSCRIPT - italic_n end_POSTSUPERSCRIPT . (48)
Refer to caption
Figure 16: Histogram of the minimal distance among Hyp(n)IkHyp𝑛subscript𝐼𝑘\operatorname{Hyp}(n)\cap I_{k}roman_Hyp ( italic_n ) ∩ italic_I start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT with geometric bins Ik=(2+4k1,2+4k]×subscript𝐼𝑘2superscript4𝑘12superscript4𝑘I_{k}=(-2+4^{-k-1},-2+4^{-k}]\times\mathbb{R}italic_I start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = ( - 2 + 4 start_POSTSUPERSCRIPT - italic_k - 1 end_POSTSUPERSCRIPT , - 2 + 4 start_POSTSUPERSCRIPT - italic_k end_POSTSUPERSCRIPT ] × blackboard_R illustrating that the closest gap happens near c=2𝑐2c=-2italic_c = - 2. The gray data points corresponds to bins where the minimal distance among all roots of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT is strictly smaller (close proximity of a divisor).

The actual root separation computed on our high-resolution dataset is illustrated on Figures 15, 16 and 17. Within Hyp(n)Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n ), one can check numerically that the two left-most real roots are, indeed, the closest points. The experimental scaling law matches the predicted behavior (relative error smaller than 0.1%percent0.10.1\%0.1 % when n9𝑛9n\geq 9italic_n ≥ 9):

minc,cHyp(n)cc|cc|118.44n\min_{\begin{subarray}{c}c,c^{\prime}\in\operatorname{Hyp}(n)\\ c\neq c^{\prime}\end{subarray}}|c-c^{\prime}|\sim\frac{118.4}{4^{n}}\cdotproman_min start_POSTSUBSCRIPT start_ARG start_ROW start_CELL italic_c , italic_c start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ roman_Hyp ( italic_n ) end_CELL end_ROW start_ROW start_CELL italic_c ≠ italic_c start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG end_POSTSUBSCRIPT | italic_c - italic_c start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT | ∼ divide start_ARG 118.4 end_ARG start_ARG 4 start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT end_ARG ⋅ (49)

For odd n𝑛nitalic_n, both roots lie at the center of a primitive component of period n𝑛nitalic_n. For even n𝑛nitalic_n, the minimal distance among roots of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT is slightly smaller than among Hyp(n)Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n ), due to the presence of a closer pair involving a root of a divisor (see Figure 16): one root is the center of a primitive component of period n/2𝑛2n/2italic_n / 2 and the other one is the center of a satellite of period n𝑛nitalic_n.


Refer to caption
Figure 17: Histogram of the minimal distance among Mis(,n)IkMis𝑛subscript𝐼𝑘\operatorname{Mis}(\ell,n)\cap I_{k}roman_Mis ( roman_ℓ , italic_n ) ∩ italic_I start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT for +n=26𝑛26\ell+n=26roman_ℓ + italic_n = 26, which is the first Misiurewicz order that cannot be integrally represented with FP80 arithmetic. The separation within Mis(3,23)Mis323\operatorname{Mis}(3,23)roman_Mis ( 3 , 23 ) and Mis(4,22)Mis422\operatorname{Mis}(4,22)roman_Mis ( 4 , 22 ) drops below the limit of the representation.

For Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n ), the limitation of hardware arithmetic is first hit for the subtypes Mis(3,23)Mis323\operatorname{Mis}(3,23)roman_Mis ( 3 , 23 ) and Mis(4,22)Mis422\operatorname{Mis}(4,22)roman_Mis ( 4 , 22 ), as illustrated on Figure 17. Both sets contain, at the leftmost end of \mathcal{M}caligraphic_M, two distincts real parameters separated by less than 4.86×1020<2644.86superscript1020superscript2644.86\times 10^{-20}<2^{-64}4.86 × 10 start_POSTSUPERSCRIPT - 20 end_POSTSUPERSCRIPT < 2 start_POSTSUPERSCRIPT - 64 end_POSTSUPERSCRIPT. They cannot be separated in FP80 arithmetic. More generally, we have observed that all sets Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n ) with 26+n3226𝑛3226\leq\ell+n\leq 3226 ≤ roman_ℓ + italic_n ≤ 32 and 33(+n25)+133𝑛2513\leq\ell\leq 3(\ell+n-25)+13 ≤ roman_ℓ ≤ 3 ( roman_ℓ + italic_n - 25 ) + 1 contain, near the left tip, parameters that cannot be represented in FP80 arithmetic. Obviously, our app misQuick is subject to those limitations and reports the missing roots, which is normal behavior.

However, to offer a user friendly interface, the apps misQuick and misSimpleQuick provide an option to refine all roots near the real axis and left of 2+4162superscript416-2+4^{-16}- 2 + 4 start_POSTSUPERSCRIPT - 16 end_POSTSUPERSCRIPT using high-precision MPFR numbers. This option does not sacrifice much of the performances and allows us to compute a complete list of all Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n ) parameters of type +n30𝑛30\ell+n\leq 30roman_ℓ + italic_n ≤ 30 in the time-frame illustrated on Figure 13.

When +n=30𝑛30\ell+n=30roman_ℓ + italic_n = 30, a second region (near Rec=1Re𝑐1\operatorname{Re}c=-1roman_Re italic_c = - 1) contains close complex pairs (see Figure 21) that are separated by less than 262superscript2622^{-62}2 start_POSTSUPERSCRIPT - 62 end_POSTSUPERSCRIPT. Computing types of order +n31𝑛31\ell+n\geq 31roman_ℓ + italic_n ≥ 31 would require introducing multiple high-precision exceptions. At that point, one should just switch to our HPC implementation described in Section 6.4.


Those numerical observations establish that, in the family of all hyperbolic centers and Misiurewicz parameters, the roots of p33subscript𝑝33p_{33}italic_p start_POSTSUBSCRIPT 33 end_POSTSUBSCRIPT and m,nsubscript𝑚𝑛m_{\ell,n}italic_m start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT with +n=30𝑛30\ell+n=30roman_ℓ + italic_n = 30 constitute the final frontier of what can be computed using FP80 hardware arithmetic. As illustrated on Figure 13, our new algorithm based on level-lines can reach this frontier in just a bit less than one day-core for the hyperbolic parameters and in about 3 hours for each pre-periodic type (half that for misSimpleQuick).


Remark 14.

The upper exponent limit of FP80 numbers is 22141.18×104932similar-to-or-equalssuperscript2superscript2141.18superscript1049322^{2^{14}}\simeq 1.18\times 10^{4932}2 start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT 14 end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT ≃ 1.18 × 10 start_POSTSUPERSCRIPT 4932 end_POSTSUPERSCRIPT. In hypQuick, we deal with polynomials of degree up to 232superscript2322^{32}2 start_POSTSUPERSCRIPT 32 end_POSTSUPERSCRIPT. Let us underline that

|z|2321.18×104932|z|R𝙵𝙿𝟾𝟶𝑤𝑖𝑡ℎR𝙵𝙿𝟾𝟶1+2.64×106formulae-sequencesuperscript𝑧superscript2321.18superscript104932formulae-sequence𝑧subscript𝑅𝙵𝙿𝟾𝟶𝑤𝑖𝑡ℎsimilar-to-or-equalssubscript𝑅𝙵𝙿𝟾𝟶12.64superscript106|z|^{2^{32}}\leq 1.18\times 10^{4932}\quad\Leftrightarrow\quad|z|\leq R_{% \operatorname{\tt FP80}}\quad\text{with}\quad R_{\operatorname{\tt FP80}}% \simeq 1+2.64\times 10^{-6}| italic_z | start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT 32 end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT ≤ 1.18 × 10 start_POSTSUPERSCRIPT 4932 end_POSTSUPERSCRIPT ⇔ | italic_z | ≤ italic_R start_POSTSUBSCRIPT typewriter_FP80 end_POSTSUBSCRIPT with italic_R start_POSTSUBSCRIPT typewriter_FP80 end_POSTSUBSCRIPT ≃ 1 + 2.64 × 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT

and that D(0,R𝙵𝙿𝟾𝟶)c\mathcal{M}\cap\operatorname{D}(0,R_{\operatorname{\tt FP80}})^{c}\neq\emptysetcaligraphic_M ∩ roman_D ( 0 , italic_R start_POSTSUBSCRIPT typewriter_FP80 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT ≠ ∅. To compute accurately one Newton step pn(z)/pn(z)subscript𝑝𝑛𝑧superscriptsubscript𝑝𝑛normal-′𝑧p_{n}(z)/p_{n}^{\prime}(z)italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_z ) / italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z ) when we detect that both the numerator and denominator are so large that each will exceed the exponent limit (which happens in the first steps), we simplify a common large factor, without loss of precision.

6.3.3 A-posteriori certification of the FP80 results

There is no realistic hope of certifying FP80 computations within their own framework. The operations on long double are extremely hardware dependent and we have no real garanties that a given implementation will perform properly, in any circumstances, up to the last bit. Implementing disk arithmetic is possible and can provide a reasonable amount of confidence and is therefore included in our library. However, using disks based on hardware arithmetic still leaves an unacceptable room for doubt111111A single disk radius mistakenly rounded the wrong way breaks the logic chain of who contains whom. that only MPFR (which implements guarantied rounding directives) can waive.

For all periods 3 to 33, we did compare the listing of Hyp(n)Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n ) obtained in FP80 arithmetic using hypQuick to the certified listing obtained independently with high-precision MPFR and certified disk arithmetic (see §5 and §6.2). The maximum deviation between two corresponding lists does not exceed 5.24×10195.24superscript10195.24\times 10^{-19}5.24 × 10 start_POSTSUPERSCRIPT - 19 end_POSTSUPERSCRIPT (reached, in our case, for p24subscript𝑝24p_{24}italic_p start_POSTSUBSCRIPT 24 end_POSTSUBSCRIPT). In particular, the lists of roots are identical up to a precision of 1018superscript101810^{-18}10 start_POSTSUPERSCRIPT - 18 end_POSTSUPERSCRIPT. This a-posteriori check constitutes the best possible certification of our FP80 results.

Similarly, the a-posteriori certification of Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n ) for +n25𝑛25\ell+n\leq 25roman_ℓ + italic_n ≤ 25 reports a maximum deviation of 3.25×10193.25superscript10193.25\times 10^{-19}3.25 × 10 start_POSTSUPERSCRIPT - 19 end_POSTSUPERSCRIPT between the lists obtained in hardware arithmetic and those obtained with MPFR. Subtypes of higher order also pass the certification, with an obvious exception for the parameters that cannot be represented in hardware arithmetic and are thus out of the reach of misQuick (see Section 6.3.2). Of course, they can be certified only if one activates the high-precision option for parameters left of 2+4162superscript416-2+4^{-16}- 2 + 4 start_POSTSUPERSCRIPT - 16 end_POSTSUPERSCRIPT.

6.4 Our HPC approach for splitting a tera-polynomial

Scaling up our algorithm from the splitting of p33subscript𝑝33p_{33}italic_p start_POSTSUBSCRIPT 33 end_POSTSUBSCRIPT to that of p41subscript𝑝41p_{41}italic_p start_POSTSUBSCRIPT 41 end_POSTSUBSCRIPT requires the resources from a HPC center. The two key ingredients are massively parallel operations and the ability to switch on the fly between hardware arithmetic, and arithmetic in arbitrary precision. The splitting process is decomposed in multiple stages.

6.4.1 Overview of the splitting process

The first stage, called is a massively parallel raw search that involves J=2n27𝐽superscript2𝑛27J=2^{n-27}italic_J = 2 start_POSTSUPERSCRIPT italic_n - 27 end_POSTSUPERSCRIPT tasks (respectively J=2n+27𝐽superscript2𝑛27J=2^{n+\ell-27}italic_J = 2 start_POSTSUPERSCRIPT italic_n + roman_ℓ - 27 end_POSTSUPERSCRIPT for qn,subscript𝑞𝑛q_{n,\ell}italic_q start_POSTSUBSCRIPT italic_n , roman_ℓ end_POSTSUBSCRIPT) that are independent of each other. Each task consists in finding roots in a certain sub-region of the Mandelbrot set. More precisely, the computation of the discrete level line 𝕃5,2n1(pn)subscript𝕃5superscript2𝑛1subscript𝑝𝑛\mathbb{L}_{5,2^{n-1}}(p_{n})blackboard_L start_POSTSUBSCRIPT 5 , 2 start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) is split in J𝐽Jitalic_J pieces of equal cardinality. We choose 2n1/J=227superscript2𝑛1𝐽superscript2272^{n-1}/J=2^{27}2 start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT / italic_J = 2 start_POSTSUPERSCRIPT 27 end_POSTSUPERSCRIPT to ensure that the resulting nset files of roots would take about 1.1GB each on disk. Each task computes a part of the finest level line and finds all the roots that can be reached from it using the Newton map. In the library, the corresponding apps are hypRaw and misRaw. The alternative misSimpleRaw uses the simplified polynomials s,n=p+n1+p1subscript𝑠𝑛subscript𝑝𝑛1subscript𝑝1s_{\ell,n}=p_{\ell+n-1}+p_{\ell-1}italic_s start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT = italic_p start_POSTSUBSCRIPT roman_ℓ + italic_n - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT defined by (9) instead of q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT, which eliminates most hyperbolic divisors and ensures that all roots are simple.

The superiority of our level-line algorithm is illustrated on Figures 7 and 18: sections of equal cardinality of 𝕃λ,Nsubscript𝕃𝜆𝑁\mathbb{L}_{\lambda,N}blackboard_L start_POSTSUBSCRIPT italic_λ , italic_N end_POSTSUBSCRIPT span physical regions of extremely varied size. The level-line is a naturally self-refining mesh in the sense that the mesh is, by construction, denser in regions where argP(z)𝑃𝑧\arg P(z)roman_arg italic_P ( italic_z ) cycles more rapidly, which indicates an intrication of the bassins of attraction for the Newton flow and is thus likely to occur for the Newton map too. As iso-angles (24) and external rays coincide asymptotically at infinity, it can be expected that those regions still corellate with a higher density of external rays, and thus capture faithfully, as the ray land, the harmonic measure of csuperscript𝑐\mathcal{M}^{c}caligraphic_M start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT and thus the roots of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT (see Figure 20 and Section 2.3).

The key to the parallelization is the possibility to compute recursively a point with a given phase on a level line. One uses discrete iso-angle trajectories (25), which are good approximations of the external rays (Figure 19). A point on 𝕃λ,N(pn)subscript𝕃𝜆𝑁subscript𝑝𝑛\mathbb{L}_{\lambda,N}(p_{n})blackboard_L start_POSTSUBSCRIPT italic_λ , italic_N end_POSTSUBSCRIPT ( italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) with a given phase can be obtained from a corresponding point in 𝕃λ,N/2(pn1)subscript𝕃superscript𝜆𝑁2subscript𝑝𝑛1\mathbb{L}_{\lambda^{\prime},N/2}(p_{n-1})blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT , italic_N / 2 end_POSTSUBSCRIPT ( italic_p start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT ) with λ>λsuperscript𝜆𝜆\lambda^{\prime}>\lambdaitalic_λ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT > italic_λ using only a few Newton steps. If λsuperscript𝜆\lambda^{\prime}italic_λ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT is large enough, one can be confident that no skip modulo 2π2𝜋2\pi2 italic_π has occurred so the phase is correct. This process is explained in details in Section 4.2. Use the app levelSets to initiate the low-resolution level sets that will be used by each parallel task.

The second stage consist in merging the roots found by all the parallel tasks. Sorting tera-bytes of data split in thousands of files of about one gigabyte and deleting the roots found multiple times appears, at first, as a substantial computational challenge. However, as explained in Section 6.1, we used an appropriate, custom made, data structure that allows for logarithmic search and insertion times and prohibits duplicates. Overall, the time requirements for the second stage turned out to be negligible (see Table 2). The corresponding apps are hypRawCount and misRawCount. They can also generate maps, which are low-resolution portraits of the Mandelbrot set that count how many roots of a given type end up in a given pixel (see Figure 20).

Refer to caption
Figure 18: Zoom on 18 consecutive raw jobs for p35subscript𝑝35p_{35}italic_p start_POSTSUBSCRIPT 35 end_POSTSUBSCRIPT : the roots found by each parallel task are colored differently from the next one. Note the extreme spatial variability between tasks, even though each one starts from a piece of the discrete level line that contains 227superscript2272^{27}2 start_POSTSUPERSCRIPT 27 end_POSTSUPERSCRIPT points.
Refer to caption
Figure 19: External rays landing at the root of hyperbolic components of periods up to 6.

The third stage is the a-posteriori certification of the data, as explained in Section 6.2. It is split in two sub-stages. First, we read the files in batch and count that we have all roots in a strictly increasing lexicographic order. The corresponding apps are hypCount and misCount. For reliability reasons, this task is performed on a a single CPU and the code is as independent as possible from the rest of the library. Next (and last), the certification involves redoing all the proofs in high-precision disk arithmetic using as many CPUs as possible, which is the role of the apps hypProve and misProve.

In practice, the main difficulty for the certification of cHyp(n)𝑐Hyp𝑛c\in\operatorname{Hyp}(n)italic_c ∈ roman_Hyp ( italic_n ) is a close transit of pk(c)subscript𝑝𝑘𝑐p_{k}(c)italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_c ) near zero for some k|nconditional𝑘𝑛k|nitalic_k | italic_n. This phenomenon can hinder the certification of a root of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and prevents essentially any certification attempt made with interval arithmetic. On the other hand, disk arithmetic (see Section 5.3) is essentially immune to this problem. Once the proper certification radius (see Section 6.2) was identified, the process went on flawlessly.

For Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n ), we encountered difficulties in the raw search that kept missing pairs of particularly close parameters near the tips of some antennas (see Figure 21). However, adjusting the parameters in Theorem 9 solved the issue.

The overall computation times of all stages are given in Table 2. As the certification has an obvious O(d)𝑂𝑑O(d)italic_O ( italic_d ) complexity, it can be used as a reference time. The ratio of 2.4 (for pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT) or 9.4 (for q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT) between the time necessary for the raw search and that necessary for the certification attests that our algorithm behaves in practice as O(d)𝑂𝑑O(d)italic_O ( italic_d ) with a reasonable constant, at least for the pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT families. The higher raw search time for Misiurewicz parameters is mostly driven by the fact that, asymptotically, half the roots of q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT are high-multiplicity hyperbolic divisors that are discarded in the end. Note that we did not used the simplified polynomials m,nsubscript𝑚𝑛m_{\ell,n}italic_m start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT, nor s,n=p+n1+p1subscript𝑠𝑛subscript𝑝𝑛1subscript𝑝1s_{\ell,n}=p_{\ell+n-1}+p_{\ell-1}italic_s start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT = italic_p start_POSTSUBSCRIPT roman_ℓ + italic_n - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT. We can therefore claim that, in practice, the presence of high multiplicities roots slows down the search time with our level-line algorithm by a mere factor 1.95.

Root finding Certification Total Find/certif.
Parallel jobs Merge Counting Proofs ratio
Hyperbolic pn,n41subscript𝑝𝑛𝑛41p_{n,\enspace n\leq 41}italic_p start_POSTSUBSCRIPT italic_n , italic_n ≤ 41 end_POSTSUBSCRIPT 26.2 y 16.1 d 1.7 d 11 y 37.2 y 2.4
229 kh 386 h 41 h 96.4 kh similar-to\sim326 kh
70.3% 0.1% 0.01% 29.6%
Misiurewicz q,n,+n35subscript𝑞𝑛𝑛35q_{\ell,n,\enspace\ell+n\leq 35}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n , roman_ℓ + italic_n ≤ 35 end_POSTSUBSCRIPT 40.9 y 9.1 d 1.1 d 4.4 y 45.3 y 9.4
358 kh 218 h 26 h 38.2 kh similar-to\sim397 kh
89.4% 0.05% 0.006% 10.6%
Table 2: Overal computation time of each main stage. See Footnote 1 p. 1 for a definition of time-core. Note that for Misiurewicz polynomials, we did not use the simplified version based on m,nsubscript𝑚𝑛m_{\ell,n}italic_m start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT in order to measure the effects of high-multiplicities (about 50% of the roots for q2,nsubscript𝑞2𝑛q_{2,n}italic_q start_POSTSUBSCRIPT 2 , italic_n end_POSTSUBSCRIPT) on our level-line algorithm.
Refer to caption
Figure 20: The harmonic measure of csuperscript𝑐\mathcal{M}^{c}caligraphic_M start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT can be visualized by counting how many hyperbolic centers land on each pixel and adjusting the shade accordingly (which is the principle of our map files). Here we represent Hyp(n)Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n ) for n24𝑛24n\leq 24italic_n ≤ 24. Note the difference with Figure 1 as the inner creeks are visited less frequently than antennaes.
Refer to caption
Figure 21: Typical example of a pair of Mis(7,27)Mis727\operatorname{Mis}(7,27)roman_Mis ( 7 , 27 ) parameters that are particularly easy to miss during the raw search.

6.4.2 Number of Newton steps and usage of high precision arithmetic

In this subsection, we present some statistics regarding the practical complexity of our algorithm, when applied to the splitting of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT or q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT when n𝑛nitalic_n (resp. +n𝑛\ell+nroman_ℓ + italic_n) is large. To normalize the statistics, we present them in terms of Newton steps per root or in Newton steps per new parameter. Each computable action boils down, eventually, to a Newton steps or equivalent (evaluate a polynomial expression, its derivative and a quotient). We have sorted the actions in categories defined by what is actually being computed and we normalize the total number of Newton steps for each action by the degree of the polynomial (steps per root) or by the cardinal of the set being computed (steps per new parameter). For Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n ) sets, the steps per parameter is roughly double the number of steps per roots because, asymptotically, only half the roots are kept in the set (see Section 2.4).

Period Level line Convergent descend Discarded descend
n𝑛nitalic_n 𝕃5,8d(pn)subscript𝕃58𝑑subscript𝑝𝑛\mathbb{L}_{5,8d}(p_{n})blackboard_L start_POSTSUBSCRIPT 5 , 8 italic_d end_POSTSUBSCRIPT ( italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) % FP80 FP128 Repeat Overlap Divisor Divergent
28 51.6 N/r 26% 8.8 N/p 2.4 N/p 73% - 0.01% 1%
30 50.7 N/r 25% 8.7 N/p 2.5 N/p 73% 0.07% 0.00% 1%
35 47.9 N/r 25% 8.4 N/p 2.8 N/p 73% 0.23% 0.00% 1%
39 46.9 N/r 25% 8.1 N/p 3.1 N/p 73% 0.38% 0.00% 1%
40 47.2 N/r 25% 7.9 N/p 3.2 N/p 73% 0.39% 0.00% 1%
41 47.7 N/r 25% 7.7 N/p 3.4 N/p 73% 0.34% 0.00% 1%
Table 3: Count of Newton steps per new hyperbolic parameter (N/p), which is equivalent to Newton steps per root (N/r). Intermediary periods have similar statistics.
Type Level line Convergent descend Discarded descend
+n𝑛\ell+nroman_ℓ + italic_n 𝕃100,8d(q,n)subscript𝕃1008𝑑subscript𝑞𝑛\mathbb{L}_{100,8d}(q_{\ell,n})blackboard_L start_POSTSUBSCRIPT 100 , 8 italic_d end_POSTSUBSCRIPT ( italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT ) % FP80 FP128 Repeat Overlap Divisor Divergent
28 110 N/p 56.8 N/r 13% 9 N/p 2.5 N/p 33% 0.02% 48.1% 6%
30 107 N/p 55.4 N/r 13% 8.9 N/p 2.6 N/p 34% 0.01% 48.1% 6%
32 104 N/p 53.9 N/r 12% 8.6 N/p 2.9 N/p 34% 0.00% 48.1% 6%
33 120 N/p 58.8 N/r 13% 10.8 N/p 4.3 N/p 35% 0.01% 49.2% 4%
35 131 N/p 64.4 N/r 13% 10.5 N/p 4.8 N/p 35% 0.02% 49.2% 4%
Table 4: Count of Newton steps per new Misiurewicz parameter (N/p) and Newton steps per root (N/r). The normalization is substantially affected by the deflation due to roots of divisors. In this benchmark, we did not simplify q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT in order to estimate the effect of high-multiplicities on our algorithm.

The bulk of the cost is taken by the Newton steps required to compute the finest level line 𝕃λ0,Mdsubscript𝕃subscript𝜆0𝑀𝑑\mathbb{L}_{\lambda_{0},Md}blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_M italic_d end_POSTSUBSCRIPT with λ0=5subscript𝜆05\lambda_{0}=5italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 5, M=8𝑀8M=8italic_M = 8, d=2n1𝑑superscript2𝑛1d=2^{n-1}italic_d = 2 start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT for pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and λ0=100subscript𝜆0100\lambda_{0}=100italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 100, M=8𝑀8M=8italic_M = 8 and d=2+n1𝑑superscript2𝑛1d=2^{\ell+n-1}italic_d = 2 start_POSTSUPERSCRIPT roman_ℓ + italic_n - 1 end_POSTSUPERSCRIPT for q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT. According to Tables 3 and 4, this step appears to have a constant cost of about 50 Newton steps per root, regardless of the degree of the polynomial. This indicate that the computation of the level line is essentially not affected by the presence of roots with high multiplicities. The only exception occurs for m,nsubscript𝑚𝑛m_{\ell,n}italic_m start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT and +n33𝑛33\ell+n\geq 33roman_ℓ + italic_n ≥ 33 where a significant jump in the number of steps per roots is observed; it suggests that the level λ0=100subscript𝜆0100\lambda_{0}=100italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 100 may be slightly too high for those types.

Next, we perform Newton descends that we initiate on the subset 𝕃λ0,4dsubscript𝕃subscript𝜆04𝑑\mathbb{L}_{\lambda_{0},4d}blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , 4 italic_d end_POSTSUBSCRIPT (i.e. we have 4 starting points per root). Each Newton descend can either end up as convergent towards a new parameter (which is kept in the current raw*.nset file) or it can be discarded for one the following reasons:

  • the descend converges towards a root that was already found in the current job,

  • the descend converges towards a root that overlaps a neighboring job (early detection of duplicates),

  • the descend converges towards a root of a divisor,

  • the descend is considered divergent and is interrupted, either because of a long-distance jump (indicating the likely proximity of a critical point) or because it did not converge in the allotted number of steps (timeout).

Again, we observe consistently that convergent descends take about 10-12 steps, most of which can be performed entirely using hardware arithmetic. If one assumes that the level line pn(z)=105subscript𝑝𝑛𝑧superscript105p_{n}(z)=10^{-5}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_z ) = 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT is totally disconnected (i.e. it has one connected component in each contracting Newton disk), the general considerations of Section 4 thus ensure a practical upper bound of log5×10513similar-to5superscript10513\log 5\times 10^{5}\sim 13roman_log 5 × 10 start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT ∼ 13 Newton steps (up to some universal constant) during the descend from the level line pn(z)=5subscript𝑝𝑛𝑧5p_{n}(z)=5italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_z ) = 5. This prediction is conform with our observations.

We have consistently observed that about 5 to 7 % of the roots of pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT are real ones. For m,nsubscript𝑚𝑛m_{\ell,n}italic_m start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT, the proportion is asymptotically the same for large +n𝑛\ell+nroman_ℓ + italic_n, even though the proportion starts at a higher level (9 to 15% for 10+n2010𝑛2010\leq\ell+n\leq 2010 ≤ roman_ℓ + italic_n ≤ 20).

Tables 3 and 4 indicate that the number of Newton steps for each stage of our algorithm is relatively stable and scales linearly with the degree of the polynomial. However, we have observed an extreme variability in job durations, even though each job is calibrated to deal with the same number of points on the level line. It turns out that the duration is mostly determined by the amount of computations of the level line that need to be performed in high-precision arithmetic, with the MPFR library. For our implementation, a practical rule of thumb is that the duration, in hour, of a large job is about 14×R+1014𝑅1014\times R+1014 × italic_R + 10 where R𝑅Ritalic_R is the ratio of computations that require high-precision. This ratio is illustrated on Figure 22. For period 33, most level lines can be completed using hardware arithmetic. This proportion drops to 12% on average for splitting p41subscript𝑝41p_{41}italic_p start_POSTSUBSCRIPT 41 end_POSTSUBSCRIPT, with some jobs (typically near the left-most tip, see Section 6.3.2) requiring almost exclusively high-precision computations. Note that, on the other hand, the proportion of MPFR computations in the Newton descend is constant.


Refer to caption
Figure 22: Proportion of the computations of the level fine used for splitting pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT that were performed using high-precision arithmetic operations [MPFR]. The black dot represents the average value. The error bars represent the variability between all raw search jobs.

Overall, the benchmarks presented in this section confirm that, even in the presence of roots with high multiplicities, our algorithm based on level lines is really robust and performs well. Its practical complexity remains O(d)𝑂𝑑O(d)italic_O ( italic_d ), even when d𝑑ditalic_d is pushed to the tera-scale. Those observations concern the family of polynomials related to the Mandelbrot set and we do not claim nor suggest that those exceptional performances will remain in full generality.

6.4.3 Memory and hardware requirements

The raw search of roots was split into many independent jobs. Jobs where dimensioned so that they would, on average, correspond to 1.1GB of data with a few exceptions near z=2𝑧2z=-2italic_z = - 2 where the job size can raise up to a little more than 2GB. Two reasons prevailed in favor of that choice.

First, the memory requirement for each job is fairly limited: each job compares the new roots with the previous one (if pressent) so both are loaded in memory and eat up 4GB, plus the internal data structure can take up another 2GB. Overall, we were able to run all our computations while requiring only 7GB of RAM per CPU. This limit happens to roughly coincide with the average of RAM available on our cluster, when the total RAM of each computing node is equally divided among all the cores of the node. The practical consequence was that the scheduler was usually able to accommodate our requests for a high number of parallel cores, which would not have been the case if a few CPU would have eaten up the whole memory of a node.

Second, writing the final data back into a few files of 1TB did not strike us a good idea, because few people have access to resources that allow them to handle such a monster file reliably, while transferts of 2G files are common.


The second stage (counting that we have all roots and write the final files without duplicates) is performed on a single CPU and requires as much memory as possible. For hyperbolic periods 37 and up, we used 175GB of RAM which allowed most sort operations to be performed without reloading the same file twice.

Our implementation can accommodate tight memory limitations, though the time required to sort and merge the entire database may improve significantly if multiple reloads are necessary. For example, for Misiurewicz types of order +n32𝑛32\ell+n\geq 32roman_ℓ + italic_n ≥ 32, we had to reduce the memory per core to accommodate the growing number of subtypes121212For Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n ) with +n=33𝑛33\ell+n=33roman_ℓ + italic_n = 33, we requested only 26GB for each of the 31 cores dedicated to the count, instead of 73GB for the single core used for Hyp(33)Hyp33\operatorname{Hyp}(33)roman_Hyp ( 33 ). Consequently, each file had to be reloaded about 2.5 times.

Note that the loading time (waiting for fopen system calls) can be substantial. In our case, depending on the ambient load on the file system, the loading times ranged from 18% to 98% of the total computation time for the second stage. In some cases, we where able to preload the caches with the upcoming files by running a side process that would monitor the logs and cat file > /dev/null while the previous files where being processed.


The third stage (certification) requires very little memory (no more than twice size of a final nset file) so 5GB per CPU dedicated to a certification task is sufficient.

6.4.4 The jobs market

The raw search stage is embarrassingly parallel. However, the duration of the jobs presents large variability even for a given hyperbolic period or a Misiurewicz sub-type: it can range from half the average compute time up to 8 times the average duration of the jobs that handle the same polynomial. This heterogeneity calls for a vertical parallelism, where each compute node calls for a new task as soon as it becomes available, asynchronously from the other nodes that remain busy.

The human task of submitting new jobs is also non trivial: to generate our database, even without a single failure, 49 427 raw jobs are necessary (about 2/3 of them for Hyp(n)Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n )), followed by 1202 jobs for the later phases (most of them for Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n )). Identifying the raw jobs that have crashed due to node failure, network saturation, disk lag (which happened to be a common plague on our busy HPC center) or job timeout can easily turn into a nightmare.

To optimise our use of HPC resources among heterogeneous jobs and automate the task of submitting raw jobs, we developed our own task scheduler, which is a small Java app, called job market. It records the progress of all computing tasks, distributes new tasks asynchronously to each available computing node, recycles failed jobs and produces useful statistics.

6.4.5 Use a GPU or not?

In order to keep our implementation as simple (and human readable) as possible, we decided against a mixed code GPU/CPU. However, we may revisit this position in the future. Here are a few thoughts about this choice.

For massively parallel computations, GPUs offers impressive performances. We briefly explored this path; however, our algorithm reaches the limits of hardware arithmetic very quickly (see §6.3.2). For now, GPUs are essentially limited to FP64 arithmetic, which gives a first objection against their usage for splitting polynomials of high degree, pending a library that can emulate high-precision arithmetic.

The second objection is that the computational gain is not completely obvious because it is not easy to predict how long the dynamics of the Newton map will take before the algorithm can classify the starting point. It is silly to keep running Newton steps just because other threads are still doing it; and it is equally counterproductive to cut an iteration short just because the others are done. Considering that the main gain of GPUs lies in running identical parallel threads, a naive implementation may therefore tend to impose the worst case as the statistical norm, thus defeating the purpose of running on a GPU.


Appendices

Appendix A Proof of the factorization theorem

Let us give here a direct proof of the factorization theorem (i.e. Theorem 2).

Proof.

As mentioned above, thanks to [HT15], only the multiplicity of the hyperbolic factors has to be established. For {0,1}01\ell\in\{0,1\}roman_ℓ ∈ { 0 , 1 }, the formula (13) boils down to (8) so we will suppose 22\ell\geq 2roman_ℓ ≥ 2 from now on.

The case of Hyp(1)={0}Hyp10\operatorname{Hyp}(1)=\{0\}roman_Hyp ( 1 ) = { 0 } is essentially based on the well known fact (proven by direct induction) that the trailing coefficients of pn(z)subscript𝑝𝑛𝑧p_{n}(z)italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_z ) stabilize as n𝑛nitalic_n grows; more precisely:

k,pn(z)pn+k(z)modzn+1,formulae-sequencefor-all𝑘subscript𝑝𝑛𝑧modulosubscript𝑝𝑛𝑘𝑧superscript𝑧𝑛1\forall k\in\mathbb{N},\qquad p_{n}(z)\equiv p_{n+k}(z)\mod z^{n+1},∀ italic_k ∈ blackboard_N , italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_z ) ≡ italic_p start_POSTSUBSCRIPT italic_n + italic_k end_POSTSUBSCRIPT ( italic_z ) roman_mod italic_z start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT , (50)

thus q,n(z)0modz+1subscript𝑞𝑛𝑧modulo0superscript𝑧1q_{\ell,n}(z)\equiv 0\mod z^{\ell+1}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT ( italic_z ) ≡ 0 roman_mod italic_z start_POSTSUPERSCRIPT roman_ℓ + 1 end_POSTSUPERSCRIPT. On the other hand, one can check that

q,n(z)21z+1modz+2subscript𝑞𝑛𝑧modulosuperscript21superscript𝑧1superscript𝑧2q_{\ell,n}(z)\equiv 2^{\ell-1}z^{\ell+1}\mod z^{\ell+2}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT ( italic_z ) ≡ 2 start_POSTSUPERSCRIPT roman_ℓ - 1 end_POSTSUPERSCRIPT italic_z start_POSTSUPERSCRIPT roman_ℓ + 1 end_POSTSUPERSCRIPT roman_mod italic_z start_POSTSUPERSCRIPT roman_ℓ + 2 end_POSTSUPERSCRIPT (51)

so zero is exactly of multiplicity +1=η(1)1subscript𝜂1\ell+1=\eta_{\ell}(1)roman_ℓ + 1 = italic_η start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ( 1 ).

Next, let us check that the multiplicities in (13) are consistent with degq,ndegreesubscript𝑞𝑛\deg q_{\ell,n}roman_deg italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT, i.e. :

k|n(η(k)|Hyp(k)|+j=2|Mis(j,k)|)=2+n1.subscriptconditional𝑘𝑛subscript𝜂𝑘Hyp𝑘superscriptsubscript𝑗2Mis𝑗𝑘superscript2𝑛1\sum_{k|n}\left(\eta_{\ell}(k)\left|\operatorname{Hyp}(k)\right|+\sum_{j=2}^{% \ell}\left|\operatorname{Mis}(j,k)\right|\right)=2^{\ell+n-1}.∑ start_POSTSUBSCRIPT italic_k | italic_n end_POSTSUBSCRIPT ( italic_η start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ( italic_k ) | roman_Hyp ( italic_k ) | + ∑ start_POSTSUBSCRIPT italic_j = 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT | roman_Mis ( italic_j , italic_k ) | ) = 2 start_POSTSUPERSCRIPT roman_ℓ + italic_n - 1 end_POSTSUPERSCRIPT . (52)

Indeed, using (7) and (12) and a geometric sum, the left-hand side equals

k|nsubscriptconditional𝑘𝑛\displaystyle\sum_{k|n}∑ start_POSTSUBSCRIPT italic_k | italic_n end_POSTSUBSCRIPT |Hyp(k)|(η(k)+j=2Φ(j,k))Hyp𝑘subscript𝜂𝑘superscriptsubscript𝑗2Φ𝑗𝑘\displaystyle\left|\operatorname{Hyp}(k)\right|\left(\eta_{\ell}(k)+\sum_{j=2}% ^{\ell}\Phi(j,k)\right)| roman_Hyp ( italic_k ) | ( italic_η start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ( italic_k ) + ∑ start_POSTSUBSCRIPT italic_j = 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT roman_Φ ( italic_j , italic_k ) )
=k|n(m|kμ(k/m)2m1)(2+1kj=2δk|j1)absentsubscriptconditional𝑘𝑛subscriptconditional𝑚𝑘𝜇𝑘𝑚superscript2𝑚1superscript21𝑘superscriptsubscript𝑗2subscript𝛿conditional𝑘𝑗1\displaystyle=\sum_{k|n}\left(\sum_{m|k}\mu(k/m)2^{m-1}\right)\left(2^{\ell}+% \left\lfloor\frac{\ell-1}{k}\right\rfloor-\sum_{j=2}^{\ell}\delta_{k|j-1}\right)= ∑ start_POSTSUBSCRIPT italic_k | italic_n end_POSTSUBSCRIPT ( ∑ start_POSTSUBSCRIPT italic_m | italic_k end_POSTSUBSCRIPT italic_μ ( italic_k / italic_m ) 2 start_POSTSUPERSCRIPT italic_m - 1 end_POSTSUPERSCRIPT ) ( 2 start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT + ⌊ divide start_ARG roman_ℓ - 1 end_ARG start_ARG italic_k end_ARG ⌋ - ∑ start_POSTSUBSCRIPT italic_j = 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ end_POSTSUPERSCRIPT italic_δ start_POSTSUBSCRIPT italic_k | italic_j - 1 end_POSTSUBSCRIPT )

where δk|j1=1subscript𝛿conditional𝑘𝑗11\delta_{k|j-1}=1italic_δ start_POSTSUBSCRIPT italic_k | italic_j - 1 end_POSTSUBSCRIPT = 1 if k𝑘kitalic_k divides j1𝑗1j-1italic_j - 1 and 00 otherwise. For any integers λ,k𝜆𝑘superscript\lambda,k\in\mathbb{N}^{\ast}italic_λ , italic_k ∈ blackboard_N start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT, let us observe that

λk=|{j1,λ;k|j}|=j=1λδk|j.𝜆𝑘conditional-set𝑗1𝜆𝑘𝑗superscriptsubscript𝑗1𝜆subscript𝛿conditional𝑘𝑗\left\lfloor\frac{\lambda}{k}\right\rfloor=\left|\left\{j\in\llbracket{1},{% \lambda}\rrbracket\,;\,k|j\right\}\right|=\sum_{j=1}^{\lambda}\delta_{k|j}.⌊ divide start_ARG italic_λ end_ARG start_ARG italic_k end_ARG ⌋ = | { italic_j ∈ ⟦ 1 , italic_λ ⟧ ; italic_k | italic_j } | = ∑ start_POSTSUBSCRIPT italic_j = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_λ end_POSTSUPERSCRIPT italic_δ start_POSTSUBSCRIPT italic_k | italic_j end_POSTSUBSCRIPT . (53)

The claim (52) thus follows from Möbius inversion formula [Möb32]-[Rot63]:

k|n(m|kμ(k/m)2m)=2n.subscriptconditional𝑘𝑛subscriptconditional𝑚𝑘𝜇𝑘𝑚superscript2𝑚superscript2𝑛\sum_{k|n}\left(\sum_{m|k}\mu(k/m)2^{m}\right)=2^{n}.∑ start_POSTSUBSCRIPT italic_k | italic_n end_POSTSUBSCRIPT ( ∑ start_POSTSUBSCRIPT italic_m | italic_k end_POSTSUBSCRIPT italic_μ ( italic_k / italic_m ) 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT ) = 2 start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT . (54)

Let us now consider the case of Hyp(k)Hyp𝑘\operatorname{Hyp}(k)roman_Hyp ( italic_k ) for k|nconditional𝑘𝑛k|nitalic_k | italic_n and 1<kn1𝑘𝑛1<k\leq n1 < italic_k ≤ italic_n. Note that if n𝑛nitalic_n is prime, there is only one hyperbolic factor left, namely k=n𝑘𝑛k=nitalic_k = italic_n and the factorization (13) follows from an argument of divisibility and the identity of degrees (52). We can however treat the general case in a unified way, regardless of wether n𝑛nitalic_n is composite or not and prove (13) by recurrence on \ellroman_ℓ. One has

q,n(z)subscript𝑞𝑛𝑧\displaystyle q_{\ell,n}(z)italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT ( italic_z ) =p+n(z)p(z)absentsubscript𝑝𝑛𝑧subscript𝑝𝑧\displaystyle=p_{\ell+n}(z)-p_{\ell}(z)= italic_p start_POSTSUBSCRIPT roman_ℓ + italic_n end_POSTSUBSCRIPT ( italic_z ) - italic_p start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ( italic_z )
=p+n12(z)p12(z)absentsuperscriptsubscript𝑝𝑛12𝑧superscriptsubscript𝑝12𝑧\displaystyle=p_{\ell+n-1}^{2}(z)-p_{\ell-1}^{2}(z)= italic_p start_POSTSUBSCRIPT roman_ℓ + italic_n - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_z ) - italic_p start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_z )
=q1,n(z)(p+n1(z)+p1(z))absentsubscript𝑞1𝑛𝑧subscript𝑝𝑛1𝑧subscript𝑝1𝑧\displaystyle=q_{\ell-1,n}(z)(p_{\ell+n-1}(z)+p_{\ell-1}(z))= italic_q start_POSTSUBSCRIPT roman_ℓ - 1 , italic_n end_POSTSUBSCRIPT ( italic_z ) ( italic_p start_POSTSUBSCRIPT roman_ℓ + italic_n - 1 end_POSTSUBSCRIPT ( italic_z ) + italic_p start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT ( italic_z ) ) (55)
=q1,n(z)(q1,n(z)+2p1(z)).absentsubscript𝑞1𝑛𝑧subscript𝑞1𝑛𝑧2subscript𝑝1𝑧\displaystyle=q_{\ell-1,n}(z)(q_{\ell-1,n}(z)+2p_{\ell-1}(z)).= italic_q start_POSTSUBSCRIPT roman_ℓ - 1 , italic_n end_POSTSUBSCRIPT ( italic_z ) ( italic_q start_POSTSUBSCRIPT roman_ℓ - 1 , italic_n end_POSTSUBSCRIPT ( italic_z ) + 2 italic_p start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT ( italic_z ) ) .

The recurrence assumption reads

q1,n=k|n(hkη1(k)j=21mj,k)subscript𝑞1𝑛subscriptproductconditional𝑘𝑛superscriptsubscript𝑘subscript𝜂1𝑘superscriptsubscriptproduct𝑗21subscript𝑚𝑗𝑘q_{\ell-1,n}=\prod_{k|n}\left(h_{k}^{\eta_{\ell-1}(k)}\prod_{j=2}^{\ell-1}m_{j% ,k}\right)italic_q start_POSTSUBSCRIPT roman_ℓ - 1 , italic_n end_POSTSUBSCRIPT = ∏ start_POSTSUBSCRIPT italic_k | italic_n end_POSTSUBSCRIPT ( italic_h start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_η start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT ( italic_k ) end_POSTSUPERSCRIPT ∏ start_POSTSUBSCRIPT italic_j = 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT roman_ℓ - 1 end_POSTSUPERSCRIPT italic_m start_POSTSUBSCRIPT italic_j , italic_k end_POSTSUBSCRIPT ) (56)

and, from the hyperbolic case, we know that

p1=j|1hj.subscript𝑝1subscriptproductconditional𝑗1subscript𝑗p_{\ell-1}=\prod_{j|\ell-1}h_{j}.italic_p start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT = ∏ start_POSTSUBSCRIPT italic_j | roman_ℓ - 1 end_POSTSUBSCRIPT italic_h start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT .

If k𝑘kitalic_k divides n𝑛nitalic_n but not 11\ell-1roman_ℓ - 1, then hksubscript𝑘h_{k}italic_h start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT divides q1,n(z)subscript𝑞1𝑛𝑧q_{\ell-1,n}(z)italic_q start_POSTSUBSCRIPT roman_ℓ - 1 , italic_n end_POSTSUBSCRIPT ( italic_z ) but not p1subscript𝑝1p_{\ell-1}italic_p start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT so hksubscript𝑘h_{k}italic_h start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT does not divide q1,n+2p1subscript𝑞1𝑛2subscript𝑝1q_{\ell-1,n}+2p_{\ell-1}italic_q start_POSTSUBSCRIPT roman_ℓ - 1 , italic_n end_POSTSUBSCRIPT + 2 italic_p start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT. Alternatively, if k𝑘kitalic_k divides both n𝑛nitalic_n and 11\ell-1roman_ℓ - 1 then hksubscript𝑘h_{k}italic_h start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT divides q1,n+2p1subscript𝑞1𝑛2subscript𝑝1q_{\ell-1,n}+2p_{\ell-1}italic_q start_POSTSUBSCRIPT roman_ℓ - 1 , italic_n end_POSTSUBSCRIPT + 2 italic_p start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT. However hk2superscriptsubscript𝑘2h_{k}^{2}italic_h start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT does not because it is a factor of q1,nsubscript𝑞1𝑛q_{\ell-1,n}italic_q start_POSTSUBSCRIPT roman_ℓ - 1 , italic_n end_POSTSUBSCRIPT (see the Lemma 16 below) but not of p1subscript𝑝1p_{\ell-1}italic_p start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT. Finally, the polynomials m,ksubscript𝑚𝑘m_{\ell,k}italic_m start_POSTSUBSCRIPT roman_ℓ , italic_k end_POSTSUBSCRIPT for k|nconditional𝑘𝑛k|nitalic_k | italic_n are known factors of q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT that do not divide q1,nsubscript𝑞1𝑛q_{\ell-1,n}italic_q start_POSTSUBSCRIPT roman_ℓ - 1 , italic_n end_POSTSUBSCRIPT; as q,n/q1,nsubscript𝑞𝑛subscript𝑞1𝑛q_{\ell,n}/q_{\ell-1,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT / italic_q start_POSTSUBSCRIPT roman_ℓ - 1 , italic_n end_POSTSUBSCRIPT has simple roots, they are simple factors of q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT. There are no other Misiurewicz-type factors. We have thus established that:

q,n=(k|gcd(n,1)hk)(k|nm,k)q1,n.subscript𝑞𝑛subscriptproductconditional𝑘gcd𝑛1subscript𝑘subscriptproductconditional𝑘𝑛subscript𝑚𝑘subscript𝑞1𝑛q_{\ell,n}=\left(\prod_{k|\operatorname{gcd}(n,\ell-1)}h_{k}\right)\left(\prod% _{k|n}m_{\ell,k}\right)q_{\ell-1,n}.italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT = ( ∏ start_POSTSUBSCRIPT italic_k | roman_gcd ( italic_n , roman_ℓ - 1 ) end_POSTSUBSCRIPT italic_h start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) ( ∏ start_POSTSUBSCRIPT italic_k | italic_n end_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT roman_ℓ , italic_k end_POSTSUBSCRIPT ) italic_q start_POSTSUBSCRIPT roman_ℓ - 1 , italic_n end_POSTSUBSCRIPT . (57)

Let us finally observe that, for ,k2𝑘2\ell,k\geq 2roman_ℓ , italic_k ≥ 2:

η1(k)={η(k)1if k|1,η(k)else.subscript𝜂1𝑘casessubscript𝜂𝑘1conditionalif 𝑘1subscript𝜂𝑘else.\eta_{\ell-1}(k)=\begin{cases}\eta_{\ell}(k)-1&\text{if }k|\ell-1,\\ \eta_{\ell}(k)&\text{else.}\end{cases}italic_η start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT ( italic_k ) = { start_ROW start_CELL italic_η start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ( italic_k ) - 1 end_CELL start_CELL if italic_k | roman_ℓ - 1 , end_CELL end_ROW start_ROW start_CELL italic_η start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ( italic_k ) end_CELL start_CELL else. end_CELL end_ROW (58)

Indeed, if k|1conditional𝑘1k|\ell-1italic_k | roman_ℓ - 1 then (58) follows directly from (14); conversely, if k𝑘kitalic_k does not divide 11\ell-1roman_ℓ - 1 then 1k+[1k,1)1𝑘1𝑘1\frac{\ell-1}{k}\in\mathbb{Z}+[\frac{1}{k},1)divide start_ARG roman_ℓ - 1 end_ARG start_ARG italic_k end_ARG ∈ blackboard_Z + [ divide start_ARG 1 end_ARG start_ARG italic_k end_ARG , 1 ) and

η1(k)=1k1k+2=1k+2=η(k).subscript𝜂1𝑘1𝑘1𝑘21𝑘2subscript𝜂𝑘\eta_{\ell-1}(k)=\left\lfloor\frac{\ell-1}{k}-\frac{1}{k}\right\rfloor+2=\left% \lfloor\frac{\ell-1}{k}\right\rfloor+2=\eta_{\ell}(k).italic_η start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT ( italic_k ) = ⌊ divide start_ARG roman_ℓ - 1 end_ARG start_ARG italic_k end_ARG - divide start_ARG 1 end_ARG start_ARG italic_k end_ARG ⌋ + 2 = ⌊ divide start_ARG roman_ℓ - 1 end_ARG start_ARG italic_k end_ARG ⌋ + 2 = italic_η start_POSTSUBSCRIPT roman_ℓ end_POSTSUBSCRIPT ( italic_k ) .

Combining (56), (57) and (58) ensures that (13) holds for the next pre-period. ∎

Remark 15.

The previous proof establishes the following identity (see also (9)):

s,n=q,nq1,n=p+n1+p1=(k|gcd(n,1)hk)(k|nm,k).subscript𝑠𝑛subscript𝑞𝑛subscript𝑞1𝑛subscript𝑝𝑛1subscript𝑝1subscriptproductconditional𝑘gcd𝑛1subscript𝑘subscriptproductconditional𝑘𝑛subscript𝑚𝑘s_{\ell,n}=\frac{q_{\ell,n}}{q_{\ell-1,n}}=p_{\ell+n-1}+p_{\ell-1}=\left(\prod% _{k|\operatorname{gcd}(n,\ell-1)}h_{k}\right)\left(\prod_{k|n}m_{\ell,k}\right).italic_s start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT = divide start_ARG italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT end_ARG start_ARG italic_q start_POSTSUBSCRIPT roman_ℓ - 1 , italic_n end_POSTSUBSCRIPT end_ARG = italic_p start_POSTSUBSCRIPT roman_ℓ + italic_n - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT = ( ∏ start_POSTSUBSCRIPT italic_k | roman_gcd ( italic_n , roman_ℓ - 1 ) end_POSTSUBSCRIPT italic_h start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) ( ∏ start_POSTSUBSCRIPT italic_k | italic_n end_POSTSUBSCRIPT italic_m start_POSTSUBSCRIPT roman_ℓ , italic_k end_POSTSUBSCRIPT ) . (59)

To illustrate our method, the simplest case of a composite period is:

q2,4(z)=p6(z)p2(z)=p52(z)p12(z)=q1,4(z)(p5(z)+p1(z))=p42(z)(p42(z)+2z).subscript𝑞24𝑧subscript𝑝6𝑧subscript𝑝2𝑧superscriptsubscript𝑝52𝑧superscriptsubscript𝑝12𝑧subscript𝑞14𝑧subscript𝑝5𝑧subscript𝑝1𝑧superscriptsubscript𝑝42𝑧superscriptsubscript𝑝42𝑧2𝑧q_{2,4}(z)=p_{6}(z)-p_{2}(z)=p_{5}^{2}(z)-p_{1}^{2}(z)=q_{1,4}(z)(p_{5}(z)+p_{% 1}(z))=p_{4}^{2}(z)(p_{4}^{2}(z)+2z).italic_q start_POSTSUBSCRIPT 2 , 4 end_POSTSUBSCRIPT ( italic_z ) = italic_p start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT ( italic_z ) - italic_p start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_z ) = italic_p start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_z ) - italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_z ) = italic_q start_POSTSUBSCRIPT 1 , 4 end_POSTSUBSCRIPT ( italic_z ) ( italic_p start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT ( italic_z ) + italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_z ) ) = italic_p start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_z ) ( italic_p start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_z ) + 2 italic_z ) .

As p4=h4h2h1subscript𝑝4subscript4subscript2subscript1p_{4}=h_{4}h_{2}h_{1}italic_p start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT = italic_h start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT italic_h start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, the polynomial q2,4subscript𝑞24q_{2,4}italic_q start_POSTSUBSCRIPT 2 , 4 end_POSTSUBSCRIPT is divisible by h42superscriptsubscript42h_{4}^{2}italic_h start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT but not by h43superscriptsubscript43h_{4}^{3}italic_h start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT. The exponent of Hyp(4)Hyp4\operatorname{Hyp}(4)roman_Hyp ( 4 ) is therefore exactly 2 and we are left with a single hyperbolic factor, namely Hyp(2)Hyp2\operatorname{Hyp}(2)roman_Hyp ( 2 ). Using the degree identity (52) thus ensures that

q2,4(z)=h13(z)h22(z)h42(z)m2,1(z)m2,2(z)m2,4(z).subscript𝑞24𝑧superscriptsubscript13𝑧superscriptsubscript22𝑧superscriptsubscript42𝑧subscript𝑚21𝑧subscript𝑚22𝑧subscript𝑚24𝑧q_{2,4}(z)=h_{1}^{3}(z)h_{2}^{2}(z)h_{4}^{2}(z)m_{2,1}(z)m_{2,2}(z)m_{2,4}(z).italic_q start_POSTSUBSCRIPT 2 , 4 end_POSTSUBSCRIPT ( italic_z ) = italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ( italic_z ) italic_h start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_z ) italic_h start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_z ) italic_m start_POSTSUBSCRIPT 2 , 1 end_POSTSUBSCRIPT ( italic_z ) italic_m start_POSTSUBSCRIPT 2 , 2 end_POSTSUBSCRIPT ( italic_z ) italic_m start_POSTSUBSCRIPT 2 , 4 end_POSTSUBSCRIPT ( italic_z ) .

The only check-up left is the following statement.

Lemma 16.

If k1𝑘1k\geq 1italic_k ≥ 1 divides both 1normal-ℓ1\ell\geq 1roman_ℓ ≥ 1 and n1𝑛1n\geq 1italic_n ≥ 1, then hk2superscriptsubscript𝑘2h_{k}^{2}italic_h start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT is a factor of q,nsubscript𝑞normal-ℓ𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT.

Proof.

It is sufficient to establish the lemma for qk,jksubscript𝑞𝑘𝑗𝑘q_{k,jk}italic_q start_POSTSUBSCRIPT italic_k , italic_j italic_k end_POSTSUBSCRIPT with j𝑗j\in\mathbb{N}italic_j ∈ blackboard_N because

r,q,qkr,kq=pk(q+r)pkpkr+pk=qk,k(q+r1)qk,k(r1).formulae-sequencefor-all𝑟𝑞superscriptsubscript𝑞𝑘𝑟𝑘𝑞subscript𝑝𝑘𝑞𝑟subscript𝑝𝑘subscript𝑝𝑘𝑟subscript𝑝𝑘subscript𝑞𝑘𝑘𝑞𝑟1subscript𝑞𝑘𝑘𝑟1\forall r,q\in\mathbb{N}^{\ast},\quad q_{kr,kq}=p_{k(q+r)}-p_{k}-p_{kr}+p_{k}=% q_{k,k(q+r-1)}-q_{k,k(r-1)}.∀ italic_r , italic_q ∈ blackboard_N start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT , italic_q start_POSTSUBSCRIPT italic_k italic_r , italic_k italic_q end_POSTSUBSCRIPT = italic_p start_POSTSUBSCRIPT italic_k ( italic_q + italic_r ) end_POSTSUBSCRIPT - italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - italic_p start_POSTSUBSCRIPT italic_k italic_r end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_q start_POSTSUBSCRIPT italic_k , italic_k ( italic_q + italic_r - 1 ) end_POSTSUBSCRIPT - italic_q start_POSTSUBSCRIPT italic_k , italic_k ( italic_r - 1 ) end_POSTSUBSCRIPT .

As qk,0=0subscript𝑞𝑘00q_{k,0}=0italic_q start_POSTSUBSCRIPT italic_k , 0 end_POSTSUBSCRIPT = 0, let us assume that j1𝑗1j\geq 1italic_j ≥ 1; using (55) repeatedly one has.

qk,jksubscript𝑞𝑘𝑗𝑘\displaystyle q_{k,jk}italic_q start_POSTSUBSCRIPT italic_k , italic_j italic_k end_POSTSUBSCRIPT =qk1,jk×(p(j+1)k1+pk1)absentsubscript𝑞𝑘1𝑗𝑘subscript𝑝𝑗1𝑘1subscript𝑝𝑘1\displaystyle=q_{k-1,jk}\times(p_{(j+1)k-1}+p_{k-1})= italic_q start_POSTSUBSCRIPT italic_k - 1 , italic_j italic_k end_POSTSUBSCRIPT × ( italic_p start_POSTSUBSCRIPT ( italic_j + 1 ) italic_k - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT )
=qk2,jk×(p(j+1)k2+pk2)(p(j+1)k1+pk1)absentsubscript𝑞𝑘2𝑗𝑘subscript𝑝𝑗1𝑘2subscript𝑝𝑘2subscript𝑝𝑗1𝑘1subscript𝑝𝑘1\displaystyle=q_{k-2,jk}\times(p_{(j+1)k-2}+p_{k-2})(p_{(j+1)k-1}+p_{k-1})= italic_q start_POSTSUBSCRIPT italic_k - 2 , italic_j italic_k end_POSTSUBSCRIPT × ( italic_p start_POSTSUBSCRIPT ( italic_j + 1 ) italic_k - 2 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k - 2 end_POSTSUBSCRIPT ) ( italic_p start_POSTSUBSCRIPT ( italic_j + 1 ) italic_k - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT )
=absent\displaystyle=\ldots= …
=q1,jk×(p(j+1)k2+pk2)(p(j+1)k1+pk1)(pjk+1+p1)absentsubscript𝑞1𝑗𝑘subscript𝑝𝑗1𝑘2subscript𝑝𝑘2subscript𝑝𝑗1𝑘1subscript𝑝𝑘1subscript𝑝𝑗𝑘1subscript𝑝1\displaystyle=q_{1,jk}\times(p_{(j+1)k-2}+p_{k-2})(p_{(j+1)k-1}+p_{k-1})\ldots% (p_{jk+1}+p_{1})= italic_q start_POSTSUBSCRIPT 1 , italic_j italic_k end_POSTSUBSCRIPT × ( italic_p start_POSTSUBSCRIPT ( italic_j + 1 ) italic_k - 2 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k - 2 end_POSTSUBSCRIPT ) ( italic_p start_POSTSUBSCRIPT ( italic_j + 1 ) italic_k - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) … ( italic_p start_POSTSUBSCRIPT italic_j italic_k + 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT )

Therefore, pjk2=q1,jksuperscriptsubscript𝑝𝑗𝑘2subscript𝑞1𝑗𝑘p_{jk}^{2}=q_{1,jk}italic_p start_POSTSUBSCRIPT italic_j italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT = italic_q start_POSTSUBSCRIPT 1 , italic_j italic_k end_POSTSUBSCRIPT is a factor of qk,jksubscript𝑞𝑘𝑗𝑘q_{k,jk}italic_q start_POSTSUBSCRIPT italic_k , italic_j italic_k end_POSTSUBSCRIPT. As k|jkconditional𝑘𝑗𝑘k|jkitalic_k | italic_j italic_k, then hksubscript𝑘h_{k}italic_h start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT is itself a factor of pjksubscript𝑝𝑗𝑘p_{jk}italic_p start_POSTSUBSCRIPT italic_j italic_k end_POSTSUBSCRIPT and so hk2superscriptsubscript𝑘2h_{k}^{2}italic_h start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT divides pjk2superscriptsubscript𝑝𝑗𝑘2p_{jk}^{2}italic_p start_POSTSUBSCRIPT italic_j italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT and consequently qk,jksubscript𝑞𝑘𝑗𝑘q_{k,jk}italic_q start_POSTSUBSCRIPT italic_k , italic_j italic_k end_POSTSUBSCRIPT too. ∎

Appendix B Useful mathematical results

We expect our readers to have (like us authors) varied mathematical backgrounds. For the convenience of all, we recall here briefly a few mathematical results that are quite standard to the specialists, but might not be well known to all.

B.1 Localization of the roots of polynomials

To renormalize the roots of P[z]𝑃delimited-[]𝑧P\in\mathbb{C}[z]italic_P ∈ blackboard_C [ italic_z ] within D(0,1)D01\operatorname{D}(0,1)roman_D ( 0 , 1 ) one may consider P(z/ρ)𝑃𝑧𝜌P(z/\rho)italic_P ( italic_z / italic_ρ ) where ρ>r𝜌𝑟\rho>ritalic_ρ > italic_r and r𝑟ritalic_r is given by the following statement.

Theorem 10 ([BE95, Theorem 1.2.4]).

All the zeros of P(z)=k=0nakzk𝑃𝑧superscriptsubscript𝑘0𝑛subscript𝑎𝑘superscript𝑧𝑘P(z)=\sum\limits_{k=0}^{n}a_{k}z^{k}italic_P ( italic_z ) = ∑ start_POSTSUBSCRIPT italic_k = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT italic_a start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT italic_z start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT are located in the disk D(0,r)¯normal-¯normal-D0𝑟\overline{\operatorname{D}(0,r)}over¯ start_ARG roman_D ( 0 , italic_r ) end_ARG where

r=inf1p+1q=1{1+(j=0n1|aj|p|an|p)q/p}1/q𝑟subscriptinfimum1𝑝1𝑞1superscript1superscriptsuperscriptsubscript𝑗0𝑛1superscriptsubscript𝑎𝑗𝑝superscriptsubscript𝑎𝑛𝑝𝑞𝑝1𝑞r=\inf_{\frac{1}{p}+\frac{1}{q}=1}\left\{1+\left(\sum_{j=0}^{n-1}\frac{|a_{j}|% ^{p}}{|a_{n}|^{p}}\right)^{q/p}\right\}^{1/q}italic_r = roman_inf start_POSTSUBSCRIPT divide start_ARG 1 end_ARG start_ARG italic_p end_ARG + divide start_ARG 1 end_ARG start_ARG italic_q end_ARG = 1 end_POSTSUBSCRIPT { 1 + ( ∑ start_POSTSUBSCRIPT italic_j = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n - 1 end_POSTSUPERSCRIPT divide start_ARG | italic_a start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT | start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT end_ARG start_ARG | italic_a start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT | start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT end_ARG ) start_POSTSUPERSCRIPT italic_q / italic_p end_POSTSUPERSCRIPT } start_POSTSUPERSCRIPT 1 / italic_q end_POSTSUPERSCRIPT

and provided an0subscript𝑎𝑛0a_{n}\neq 0italic_a start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ≠ 0 and p,q>1𝑝𝑞1p,q>1italic_p , italic_q > 1.

Remark 17.

For various classical results on this mater, see [Hen74, §6.4].

Small perturbations of analytic functions do not affect much the location of their roots, as stated by Rouché’s theorem, stated here in its strong symmetric form.

Theorem 11 (Rouché-Estermann).

Given two holomorphic functions f𝑓fitalic_f, g𝑔gitalic_g on a domain G𝐺Gitalic_G and a bounded region KG𝐾𝐺K\subset Gitalic_K ⊂ italic_G with continuous boundary K𝐾\partial K∂ italic_K. If the following strict inequality holds:

zK,|f(z)g(z)|<|f(z)|+|g(z)|formulae-sequencefor-all𝑧𝐾𝑓𝑧𝑔𝑧𝑓𝑧𝑔𝑧\forall z\in\partial K,\qquad|f(z)-g(z)|<|f(z)|+|g(z)|∀ italic_z ∈ ∂ italic_K , | italic_f ( italic_z ) - italic_g ( italic_z ) | < | italic_f ( italic_z ) | + | italic_g ( italic_z ) |

then f𝑓fitalic_f and g𝑔gitalic_g have the same number of roots (counted with multiplicity) in K𝐾Kitalic_K.

A common case of application is when |h(z)|<|f(z)|𝑧𝑓𝑧|h(z)|<|f(z)|| italic_h ( italic_z ) | < | italic_f ( italic_z ) | on K𝐾\partial K∂ italic_K. In that case, the theorem can be applied with g=f+h𝑔𝑓g=f+hitalic_g = italic_f + italic_h and ensures that the perturbation hhitalic_h does not change the number of roots of f𝑓fitalic_f.

B.2 Injectivity of analytic functions

The following result quantifies the local injectivity of analytic functions.

Theorem 12 (Koebe’s lemma).

If f:D(0,1)normal-:𝑓normal-→normal-D01f:\operatorname{D}(0,1)\to\mathbb{C}italic_f : roman_D ( 0 , 1 ) → blackboard_C is an injective analytic function, then

f(D(0,1))D(f(0),|f(0)|/4).D𝑓0superscript𝑓04𝑓D01f(\operatorname{D}(0,1))\supset\operatorname{D}(f(0),|f^{\prime}(0)|/4).italic_f ( roman_D ( 0 , 1 ) ) ⊃ roman_D ( italic_f ( 0 ) , | italic_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( 0 ) | / 4 ) .

The universality of the constant 1/4141/41 / 4 constitutes a radical breach between real and complex analysis. The optimality of this constant can be checked on the function

f(z)=z(1z)2𝑓𝑧𝑧superscript1𝑧2f(z)=\frac{z}{(1-z)^{2}}italic_f ( italic_z ) = divide start_ARG italic_z end_ARG start_ARG ( 1 - italic_z ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG

because f(0)=1superscript𝑓01f^{\prime}(0)=1italic_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( 0 ) = 1 but the value f(1)=1/4f(D(0,1))𝑓114𝑓D01f(-1)=-1/4\not\in f(\operatorname{D}(0,1))italic_f ( - 1 ) = - 1 / 4 ∉ italic_f ( roman_D ( 0 , 1 ) ).

One simple criterion that ensures injectivity is 0f(D(0,1))0superscript𝑓D010\notin f^{\prime}(\operatorname{D}(0,1))0 ∉ italic_f start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( roman_D ( 0 , 1 ) ) i.e. the absence of critical point within D(0,1)D01\operatorname{D}(0,1)roman_D ( 0 , 1 ).

Appendix C Index of notations

We provide here a short index of our notations. By default, we use the American standard names, notations and spellings.

About integer, real and complex numbers

k|nconditional𝑘𝑛k|nitalic_k | italic_n : the integer k𝑘kitalic_k is a divisor of the integer n𝑛nitalic_n.

Div(n)Div𝑛\operatorname{Div}(n)roman_Div ( italic_n ) : set of all divisors of n𝑛superscriptn\in\mathbb{N}^{\ast}italic_n ∈ blackboard_N start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT

Div(n)=Div(n)\{n}\operatorname{Div}(n)^{\ast}=\operatorname{Div}(n)\backslash\{n\}roman_Div ( italic_n ) start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = roman_Div ( italic_n ) \ { italic_n } : strict divisors of n𝑛nitalic_n

Floor function: x=k𝑥𝑘\lfloor x\rfloor=k⌊ italic_x ⌋ = italic_k if k𝑘k\in\mathbb{Z}italic_k ∈ blackboard_Z and x[k,k+1)𝑥𝑘𝑘1x\in[k,k+1)italic_x ∈ [ italic_k , italic_k + 1 )

I(x,r)=(xr,x+r)I𝑥𝑟𝑥𝑟𝑥𝑟\operatorname{I}(x,r)=(x-r,x+r)roman_I ( italic_x , italic_r ) = ( italic_x - italic_r , italic_x + italic_r ) : open interval along the real line.

z=a+ib𝑧𝑎𝑖𝑏z=a+ib\in\mathbb{C}italic_z = italic_a + italic_i italic_b ∈ blackboard_C : complex numbers (with a,b𝑎𝑏a,b\in\mathbb{R}italic_a , italic_b ∈ blackboard_R)

|z|=x2+y2 and |z|1=|x|+|y|.formulae-sequence𝑧superscript𝑥2superscript𝑦2 and subscript𝑧1𝑥𝑦|z|=\sqrt{x^{2}+y^{2}}\qquad\text{ and }\qquad|z|_{1}=|x|+|y|.| italic_z | = square-root start_ARG italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_y start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG and | italic_z | start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = | italic_x | + | italic_y | .

D(z,r)={z;|zz|<r}D𝑧𝑟formulae-sequencesuperscript𝑧superscript𝑧𝑧𝑟\operatorname{D}(z,r)=\{z^{\prime}\in\mathbb{C}\,;\,|z^{\prime}-z|<r\}roman_D ( italic_z , italic_r ) = { italic_z start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ∈ blackboard_C ; | italic_z start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT - italic_z | < italic_r } : complex open disk.

¯={}¯\overline{\mathbb{C}}=\mathbb{C}\cup\{\infty\}over¯ start_ARG blackboard_C end_ARG = blackboard_C ∪ { ∞ } : the Riemann sphere.

𝕌N={e2ikπ/N; 0k<N}subscript𝕌𝑁superscript𝑒2𝑖𝑘𝜋𝑁 0𝑘𝑁\mathbb{U}_{N}=\left\{e^{2ik\pi/N}\,;\,0\leq k<N\right\}blackboard_U start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT = { italic_e start_POSTSUPERSCRIPT 2 italic_i italic_k italic_π / italic_N end_POSTSUPERSCRIPT ; 0 ≤ italic_k < italic_N } : the roots of unity of order N𝑁superscriptN\in\mathbb{N}^{\ast}italic_N ∈ blackboard_N start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT.

ΩΩ\overset{\circ}{\Omega}over∘ start_ARG roman_Ω end_ARG, Ω¯¯Ω\overline{\Omega}over¯ start_ARG roman_Ω end_ARG : interior and closure of a subset Ω¯Ω¯\Omega\in\overline{\mathbb{C}}roman_Ω ∈ over¯ start_ARG blackboard_C end_ARG.

About the Mandelbrot set

fc(z)=z2+csubscript𝑓𝑐𝑧superscript𝑧2𝑐f_{c}(z)=z^{2}+citalic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_z ) = italic_z start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_c : the fundamental map (3) for the dynamics associated to \mathcal{M}caligraphic_M.

pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and q,nsubscript𝑞𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT : hyperbolic (1) and Misiurewicz-Thurston (2) polynomials.

={c;n,|pn(c)|2}formulae-sequence𝑐formulae-sequencefor-all𝑛subscript𝑝𝑛𝑐2\mathcal{M}=\left\{c\in\mathbb{C}\,;\,\forall n\in\mathbb{N},\enspace|p_{n}(c)% |\leq 2\right\}caligraphic_M = { italic_c ∈ blackboard_C ; ∀ italic_n ∈ blackboard_N , | italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_c ) | ≤ 2 } : Mandelbrot set (Figure 1).

Hyp(n)Hyp𝑛\operatorname{Hyp}(n)roman_Hyp ( italic_n ) : set of hyperbolic centers of order n𝑛nitalic_n, defined by (4).

Mis(,n)Mis𝑛\operatorname{Mis}(\ell,n)roman_Mis ( roman_ℓ , italic_n ) : set of pre-periodic (Misiurewicz-Thurston) parameters of type (,n)𝑛(\ell,n)( roman_ℓ , italic_n ), defined by (10).

hnsubscript𝑛h_{n}italic_h start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, m,nsubscript𝑚𝑛m_{\ell,n}italic_m start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT and s,nsubscript𝑠𝑛s_{\ell,n}italic_s start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT : reduced polynomials (5), (11) and (9).

About polynomials and splitting algorithms

Crit(P)Crit𝑃\operatorname{Crit}(P)roman_Crit ( italic_P ) : Set of critical points of P𝑃Pitalic_P, i.e. P(z)=0superscript𝑃𝑧0P^{\prime}(z)=0italic_P start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_z ) = 0.

NPsubscript𝑁𝑃N_{P}italic_N start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT : Newton map associated with a polynomial P𝑃Pitalic_P (see Section 3.4).

ζ(t)𝜁𝑡\zeta(t)italic_ζ ( italic_t ) : Newton’s flow defined by the ODE (24).

λ(t)𝜆𝑡\lambda(t)italic_λ ( italic_t ) : Level line defined by the ODE (27).

𝕃λ0,N(P)subscript𝕃subscript𝜆0𝑁𝑃\mathbb{L}_{\lambda_{0},N}(P)blackboard_L start_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_N end_POSTSUBSCRIPT ( italic_P ) : Discrete level line of P𝑃Pitalic_P defined by (31) and central to our splitting algorithm.

εRsubscript𝜀𝑅\varepsilon_{R}italic_ε start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT, εNsubscript𝜀𝑁\varepsilon_{N}italic_ε start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT, εSsubscript𝜀𝑆\varepsilon_{S}italic_ε start_POSTSUBSCRIPT italic_S end_POSTSUBSCRIPT : various radii related to the certification process (see Theorem 9).

𝕄r(d)subscript𝕄𝑟𝑑\mathbb{M}_{r}(d)blackboard_M start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( italic_d ) : Universal mesh of [HSS01] for splitting a polynomial of degree d𝑑ditalic_d (see Section 3.5).

About finite precision arithmetic

𝒵Nsubscript𝒵𝑁\mathcal{Z}_{N}caligraphic_Z start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT : fundamental set (40) of floating points numbers with finite precision

^Nsubscript^𝑁\hat{\mathcal{R}}_{N}over^ start_ARG caligraphic_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT : (theoretical) set of all (39) floating points numbers with a given precision

Nsubscript𝑁\mathcal{R}_{N}caligraphic_R start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT : (realistic) subset (41) of ^Nsubscript^𝑁\hat{\mathcal{R}}_{N}over^ start_ARG caligraphic_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT with limited exponents

e(x)𝑒𝑥e(x)italic_e ( italic_x ) and ulp^(x)=2e(x)N^ulp𝑥superscript2𝑒𝑥𝑁\widehat{\operatorname{ulp}}(x)=2^{e(x)-N}over^ start_ARG roman_ulp end_ARG ( italic_x ) = 2 start_POSTSUPERSCRIPT italic_e ( italic_x ) - italic_N end_POSTSUPERSCRIPT : exponent of x^N\{0}𝑥\subscript^𝑁0x\in\hat{\mathcal{R}}_{N}\backslash\{0\}italic_x ∈ over^ start_ARG caligraphic_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT \ { 0 } and associated unit on last position (42).

R^N:^N:subscript^R𝑁subscript^𝑁\hat{\operatorname{R}}_{N}:\mathbb{R}\to\hat{\mathcal{R}}_{N}over^ start_ARG roman_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT : blackboard_R → over^ start_ARG caligraphic_R end_ARG start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT : rounding operator from the real line onto finite precision numbers.

Appendix D Listing of tasks implemented in [Mandel]

In our implementation [Mandel], the tasks listed in this section are called in the command line with Mandelbrot -task [arguments]. Use -task -help for more detailed informations. The core functions of the interface are listed here. As this software is currently under development, new features will be released regularly.

Tools for the inital setup131313If possible, those three tasks will be merged into one common interface in future versions.
-levelSets

prepares the level sets for roots search

-misSets

prepares the level sets for Misiurewicz points search

-misSimpleSets

prepares the simple level sets for Misiurewicz points search

Tools for splitting pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and q,nsubscript𝑞normal-ℓ𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT using FP80 hardware arithmetic
-hypQuick

computes hyperbolic centers quickly, with low precision

-misQuick

computes pre-periodic points quickly, with low precision

-misSimpleQuick

computes pre-periodic points quickly, with low precision, using simplified polynomials s,n=p+n1+p1subscript𝑠𝑛subscript𝑝𝑛1subscript𝑝1s_{\ell,n}=p_{\ell+n-1}+p_{\ell-1}italic_s start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT = italic_p start_POSTSUBSCRIPT roman_ℓ + italic_n - 1 end_POSTSUBSCRIPT + italic_p start_POSTSUBSCRIPT roman_ℓ - 1 end_POSTSUBSCRIPT

Tools for splitting pnsubscript𝑝𝑛p_{n}italic_p start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT using certifiable FP128 arithmetic
-hypRaw

computes the hyperbolic centers, saves results in similar-to\sim1GB binary files

-hypRawCount

counts the results of hypRaw

-hypCount

counts and checks the unicity of hyperbolic centers

-hypProve

re-proves the hyperbolic centers and the convergence of the Newton map

Tools for splitting q,nsubscript𝑞normal-ℓ𝑛q_{\ell,n}italic_q start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT using certifiable FP128 arithmetic
-misRaw

computes the pre-periodic points, saves results in similar-to\sim1GB binary files

-misSimpleRaw

computes pre-periodic points using simplified polynomials s,nsubscript𝑠𝑛s_{\ell,n}italic_s start_POSTSUBSCRIPT roman_ℓ , italic_n end_POSTSUBSCRIPT

-misRawCount

counts the results of misRaw

-misCount

counts and checks the unicity of Misiurewicz parameters

-misProve

re-proves the Misiurewicz points and the convergence of the Newton map

Statistical and graphical tools for analyzing the database
-hypMinDist

computes minimum distance between hyperbolic centers

-misMinDist

computes minimum distance between pre-periodic points

-hypTree

computes the maps of the hyperbolic centers with different resolutions

-misTree

computes the maps of the Misiurewicz points with different resolutions

-bitmap

renders the bitmaps described in the input file

Tools for handling csv files and our custom formats nset and mpv
-header

explains the header of a nset file and check for basic file integrity

-nset2csv

exports data from binary nset files to csv files

-csvCompare

compare csv files with numerical values

-csv2mpv

packs numbers from csv files to binary mpv files

-mpv2mpv

exports and converts data from binary mpv files to mpv files

-mpvCompare

compare the values stored in two binary mpv files

References {}^{\ast}start_FLOATSUPERSCRIPT ∗ end_FLOATSUPERSCRIPT{}^{\ast}start_FLOATSUPERSCRIPT ∗ end_FLOATSUPERSCRIPT Numerical libraries are typeset [lib] and are listed at the end of the bibliography.

  • [Abe73] O. Aberth. Iteration methods for finding all zeros of a polynomial simultaneously,. Math. Comput., 27(122):339–344, 1973.
  • [ACE09] J.T. Albrecht, C.P. Chan, and A. Edelman. Sturm sequences and random eigenvalue distributions. Foundations of Computational Mathematics, 9:461–483, 2009.
  • [AMV22] R. Anton, N. Mihalache, and F. Vigneron. Fast evaluation of complex polynomials. arXiv:2211.06320, 2022.
  • [AMV23] R. Anton, N. Mihalache, and F. Vigneron. A short ODE proof of the fundamental theorem of algebra. The Mathematical Intelligencer, 2023.
  • [BAS16] T. Bilarev, M. Aspenberg, and D. Schleicher. On the speed of convergence of Newton’s method for complex polynomials. Math. Comput., 85(298):693–705, 2016.
  • [BDG04] D. A. Bini, F. Daddi, and L. Gemignani. On the shifted QR iteration applied to companion matrices. Electronic Transactions on Num. Analysis, 18:137–152, 2004.
  • [BE95] P. Borwein and T. Erdélyi. Polynomials and Polynomial Inequalities. Springer, 1995.
  • [Ber93] W. Bergweiler. Iteration of meromorphic functions. Bull. AMS, 29(2):151–188, 1993.
  • [BH03] X. Buff and C. Henriksen. On König’s root finding algorithms. Nonlinearity, 16(3):989, 2003.
  • [Bin96] D. A. Bini. Numerical computation of polynomial zeros by means of aberth’s method. Numerical Algorithms, 13:179–200, 1996.
  • [BM92] C. Bernardi and Y. Maday. Approximations spectrales de problème aux limite elliptiques. Springer, 1992.
  • [BMF12] I. Bogaert, B. Michiels, and J. Fostier. O(1) computation of legendre polynomials and gauss–legendre nodes and weights for parallel computing. SIAM J. Sci. Comput., 34:C83–C101, 2012.
  • [Bre17] J. Bremer. On the numerical calculation of the roots of special functions satisfying second order ordinary differential equations. SIAM Journal on Scientific Computing, 39(1):A55–A82, 2017.
  • [BS05] D. Beliaev and S. Smirnov. Harmonic measure on fractal sets. In European Mathematical Society, editor, 4ECM Stockholm 2004, pages 41–59, 2005.
  • [Buf18] X. Buff. On postcritically finite unicritical polynomials. New York Journal of Mathematics, 24:1111–1122, 2018.
  • [Cam19] T.R. Cameron. An effective implementation of a modified laguerre method for the roots of a polynomial. Numerical Algorithms, 82:1065–1084, 2019.
  • [CG93] L. Carleson and T.W. Gamelin. Complex dynamics. Springer, 1993.
  • [CGXZ07] S. Chandrasekaran, M. Gu, J. Xia, and J. Zhu. A fast QR algorithm for companion matrices. Recent Advances in Matrix and Operator Theory, 179:111–143, 2007.
  • [Che10] A. Cheritat. L’ensemble de mandelbrot. Images des Mathématiques, https://images.math.cnrs.fr/L-ensemble-de-Mandelbrot.html, 2010.
  • [DH82] A. Douady and J.H. Hubbard. Itération des polynômes quadratiques complexes. C.R. Acad. Sci. Paris, Sér. I Math., 294(3):123–126, 1982.
  • [DH85] A. Douady and J.H. Hubbard. Etude dynamique des polynômes complexes. Prépublications mathématiques d’Orsay, 1984-1985.
  • [DT93] E.R. Davidson and W.J. Thompson. Monster matrices: their eigenvalues and eigenvectors. Computers in Physics, 7(5):519–522, 1993.
  • [Fat19] P. Fatou. Sur les équations fonctionnelles. Bull. SMF, 47:161–271, 1919.
  • [FG15] C. Favre and T. Gauthier. Distribution of postrictically finite polynomials. Israel Journal of Mathematics, 2015.
  • [Fra89] P. Fraigniaud. Analytic and asynchronous root finding methods on a distributed memory multi- computer. Research Report LIP-IMAG, 1989.
  • [FS89] M.L. Fredmann and M.E. Saks. The cell probe complexity of dynamic data structures. In Proceedings of the Twenty-First Annual ACM Symposium on Theory of Computing, STOC’ 89, pages 345–354. Association for Computing Machinery, 1989.
  • [GMSB16] A. Gholami, D. Malhotra, H. Sundar, and G. Biros. Fft, fmm, or multigrid? a comparative study of state-of-the-art poisson solvers for uniform and nonuniform grids in the unit cube. SIAM J. Sci. Comput., 38(3), 2016.
  • [GSCG17] K. Ghidouche, A. Sider, R. Couturier, and C. Guyeux. Efficient high degree polynomial root finding using gpu. Journal of Computational Science, 18:46–56, 2017.
  • [GSKC16] K. Ghidouche, A. Sider, L.Z. Khodja, and R. Couturier. Two parallel implementations of Ehrlich-Aberth algorithm for root-finding of polynomials on multiple GPUs with OpenMP and MPI. In Intl Conference on Computational Science and Engineering, 2016.
  • [Guc] Karol Guciek. https://guciek.github.io/web_mandelbrot.html.
  • [Gug86] H. Guggenheimer. Initial approximations in durand-kerner’s root finding method. BIT Numerical Mathematics volume, 26:537–539, 1986.
  • [GV17] T. Gauthier and G. Vigny. Distribution of postrictically finite polynomials II: speed of convergence. American Institute of Mathematical Science, 11:57–98, 2017.
  • [GV19] T. Gauthier and G. Vigny. Distribution of postrictically finite polynomials III: combinatorial continuity. Fundamenta Math, 244(1):17–48, 2019.
  • [Hen74] P. Henrici. Applied and computational complex analysis, Volume 1: Power series, integration, conformal mapping, location of zeros. Wiley, 1974.
  • [HSS01] J.H. Hubbard, D. Schleicher, and S. Sutherland. How to find all roots of complex polynomials by Newton’s method. Invent. math., 146:1–33, 2001.
  • [HT13] N. Hale and A. Townsend. Fast and accurate computation of gauss-legendre and gauss-jacobi quadrature nodes and weights. SIAM J. Sci. Comput., 35:A652–A674, 2013.
  • [HT15] Benjamin Hutz and Adam Towsley. Misiurewicz points for polynomial maps and transversality. New York Journal of Mathematics, 21:297–319, 2015.
  • [IEE] IEEE 754. https://en.wikipedia.org/wiki/IEEE_754.
  • [IYM11] T. Imamura, S. Yamada, and M. Machida. Development of a high-performance eigensolver on a peta-scale next-generation supercomputer system. Progress in Nuclear Science and Technology, 2:643–650, 2011.
  • [Jun85] I. Jungreis. The uniformisation of the complement of the Mandelbrot set. Duke Math. J., 52(4):935–938, 1985.
  • [KI04] N. Kyurkchiev and A. Iliev. Failure of convergence of the newton-weierstrass iterative method for simultaneous rootfinding of generalized polynomials. Computer and Mathematics with Applications, 47:441–446, 2004.
  • [KS94] M.-H Kim and S. Sutherland. Polynomial root-finding algorithms and branched covers. SIAM Journal on Computing, 23(2):415–436, 1994.
  • [KS16] A. Kobel and M. Sagraloff. Fast approximate polynomial multipoint evaluation and applications. arXiv:1304.8069, 2016.
  • [Lar13] K.G. Larsen. Models and Techniques for Proving Data Structure Lower Bounds Models and Techniques for Proving Data Structure Lower Bounds Models and Techniques for Proving Data Structure Lower Bounds. PhD thesis, Aarhus University, Denmark, 2013.
  • [Lev90] G.M. Levin. On the theory of iterations of polynomial families in the complex plane. J. Soviet Math., 52(6):3512–3522, 1990.
  • [Mak85] N.G. Makarov. On the distortion of boundary sets under conformal mappings. Proceedings of the London Mathematical Society, 51(2):369–384, 1985.
  • [Mil90] J. Milnor. Dynamics in one complex variable. Number 160 in Annals of Mathematics Studies. Princeton Univ. Press, 1990.
  • [Möb32] A.F. Möbius. Über eine besondere art von umkehrung der reihen. Journal für die reine und angewandte Mathematik, 9:105–123, 1832.
  • [Mor13] G. Moroz. Fast polynomial evaluation and composition. Technical Report 453, Inria Nancy - Grand Est, LORIA - ALGO - Department of Algorithms, Computation, Image and Geometry, 2013.
  • [MPRW22] D. Martí-Pete, L. Rempe, and J. Waterman. Bounded Fatou and Julia components of meromorphic functions. arXiv:2204.11781, 2022.
  • [OEIS] Online Encyclopedia of Integer Sequence. Sequence A000740. https://oeis.org/A000740, 1991.
  • [Pan02] V.Y. Pan. Univariate polynomials: Nearly optimal algorithms for numerical factorization and root-finding. J. Symbolic Computation, 33:701–733, 2002.
  • [PP98] M.S. Petković and L.D. Petković. Complex interval arithmetic and its applications, volume 105. Wiley-VCH, 1998.
  • [RAY19] K. Ravikumar, D. Appelhans, and P.K. Yeung. Gpu acceleration of extreme scale pseudo-spectral simulations of turbulence using asynchronism. Technical report, The International Conference for High Performance Computing, Networking, Storage and Analysis, DOI: 10.1145/3295500.3356209, 2019.
  • [Rok01] J.G. Rokne. Interval Arithmetic and Interval Analysis: An Introduction. in book Granular Computing: An Emerging Paradigm, 2001.
  • [Rot63] G.-C. Rota. On the foundations of combinatorial theory, I: Theory of Möbius functions. Z. Wahrscheinlichkeitstheorie u. verw. Gebiete, 2:340–368, 1963.
  • [RR05] N. Revol and F. Rouillier. Motivations for an arbitrary precision interval arithmetic and the MPFI library. Reliable Computing, 11:275–290, 2005.
  • [RSS17] M. Randig, D. Schleicher, and R. Stoll. Newton’s method in practice II: The iterated refinement Newton method and near-optimal complexity for finding all roots of some polynomials of very large degrees. arXiv:1703.05847, 2017.
  • [RSS20] B. Reinke, D. Schleicher, and M. Stoll. The weierstrass root finder is not generally convergent. ArXiv:2004.04777, 2020.
  • [Sch23] D. Schleicher. On the efficient global dynamics of newton’s method for complex polynomials. Nonlinearity, 36:1349–1377, 2023.
  • [SCR+{}^{+}start_FLOATSUPERSCRIPT + end_FLOATSUPERSCRIPT20] S. Shemyakov, R. Chernov, D. Rumiantsau, D. Schleicher, S. Schmitt, and A. Shemyakov. Finding polynomial roots by dynamical systems – a case study. Discrete and Continuous Dyn. Systems, 40(12):6945–6965, 2020.
  • [Sib84] N. Sibony. Exposés à Orsay non publiés & Cours UCLA. 1981-1984.
  • [SK19] Angelika Schwarz and Lars Karlsson. Scalable eigenvector computation for the non-symmetric eigenvalue problem. Parallel Computing, 85:131–140, 2019.
  • [SS17] D. Schleicher and R. Stoll. Newton’s method in practice: finding all roots of polynomials of degree one million efficiently. Theor. Comput. Sci., 681:146–166, 2017.
  • [Sut89] S. Sutherland. Finding root of complex polynomials with Newton’s method. PhD thesis, Boston University, 1989.
  • [SZI+{}^{+}start_FLOATSUPERSCRIPT + end_FLOATSUPERSCRIPT17] T. Sakurai, S.-L. Zhang, T. Imamura, Y. Yamamoto, Y. Kuramashi, and T. Hoshi, editors. Eigenvalue Problems: Algorithms, Software and Applications in Petascale Computing, volume 117 of Lecture Notes in Comp. Science and Engineering. Springer, 2017.
  • [TAB+{}^{+}start_FLOATSUPERSCRIPT + end_FLOATSUPERSCRIPT19] P.-H. Tournier, I. Aliferis, M. Bonazzoli, M. de Buhan, M. Darbas, V. Dolean, F. Hecht, P. Jolivet, I. El Kanfoud, C. Migliaccio, F. Nataf, Ch. Pichot, and S. Semenov. Microwave tomographic imaging of cerebrovascular accidents by using high-performance computing. Parallel Computing, pages 88–97, 2019.
  • [TTO16] A. Townsend, T. Trogdon, and S. Olver. Fast computation of gauss quadrature nodes and weights on the whole real line. IMA J. Numer. Anal., 36:337–358, 2016.
  • [vdH09] Joris van der Hoeven. Ball arithmetic. Technical report: HAL-00432152., 2009.
  • [Wil84] J. H. Wilkinson. The perfidious polynomial, pages 1–28. Studies in Numerical Analysis. G. H. Golub, 1984.
  • [ARB] F. Johansson. Arb library. https://github.com/fredrik-johansson/arb, 2012.
  • [FLINT] W. Hart and F. Johansson and S. Pancratz. FLINT: Fast Library for Number Theory. http://flintlib.org, 2013.
  • [FPE] N. Mihalache and F. Vigneron. FPE library: a Fast Polynomial Evaluator.
    https://github.com/fvigneron/FastPolyEval, 2022.
  • [Mandel] N. Mihalache and F. Vigneron. Mandel library: a Numerical Microscope onto the Mandelbrot set. https://github.com/fvigneron/Mandelbrot, 2024.
  • [Mand.DB] N. Mihalache and F. Vigneron. Complete list of hyperbolic centers of period 41absent41\leq 41≤ 41 and of all Misiurewicz-Thurston points whose pre-period and period sum is 35absent35\leq 35≤ 35.
  • [MPFR] L. Fousse, G. Hanrot, V. Lefèvre, P. Pélissier and P. Zimmermann. MPFR: a Multiple-Precision binary Floating-point library with correct Rounding. ACM Trans. Math. Software, 33(2):13–28. https://www.mpfr.org, 2007.

11{}^{\small 1}start_FLOATSUPERSCRIPT 1 end_FLOATSUPERSCRIPT Nicolae Mihalache. Univ Paris-Est Creteil, CNRS UMR 8050, LAMA, F-94010 Creteil, France and Univ Gustave Eiffel, LAMA, F-77447 Marne-la-Vallée, France
x nicolae.mihalache@u-pec.fr
22{}^{\small 2}start_FLOATSUPERSCRIPT 2 end_FLOATSUPERSCRIPT François Vigneron. Université de Reims Champagne-Ardenne, Laboratoire de Mathématiques de Reims, UMR 9008 CNRS, Moulin de la Housse, BP 1039, F-51687 Reims
x francois.vigneron@univ-reims.fr