Quasiperiodic patterns of the complex dimensions of nonlattice self-similar strings, via the LLL algorithm

The Lattice String Approximation algorithm (or LSA algorithm) of M. L. Lapidus and M. van Frankenhuijsen is a procedure that approximates the complex dimensions of a nonlattice self-similar fractal string by the complex dimensions of a lattice self-similar fractal string. The implication of this procedure is that the set of complex dimensions of a nonlattice string has a quasiperiodic pattern. Using the LSA algorithm, together with the multiprecision polynomial solver MPSolve which is due to D. A. Bini, G. Fiorentino and L. Robol, we give a new and significantly more powerful presentation of the quasiperiodic patterns of the sets of complex dimensions of nonlattice self-similar fractal strings. The implementation of this algorithm requires a practical method for generating simultaneous Diophantine approximations, which in some cases we can accomplish by the continued fraction process. Otherwise, as was suggested by Lapidus and van Frankenhuijsen, we use the LLL algorithm of A. K. Lenstra, H. W. Lenstra, and L. Lov\'asz.


Introduction
From 1991 to 1993, Lapidus (in the more general and higher-dimensional case of fractal drums), as well as Lapidus and Pomerance established connections between complex dimensions and the theory of the Riemann zeta function by studying the connection between fractal strings and their spectra; see [13], [14] and [18].Then, in [17], Lapidus and Maier used the intuition coming from the notion of complex dimensions in order to rigorously reformulate the Riemann hypothesis as an inverse spectral problem for fractal strings.The notion of complex dimensions was precisely defined and the corresponding rigorous theory of complex dimensions was fully developed by Lapidus and van Frankenhuijsen, for example in [20][21][22][23], in the one-dimensional case of fractal strings.Recently, the higher-dimensional theory of complex dimensions was fully developed by Lapidus, Radunović and Žubrinić in the book [19] and a series of accompanying papers; see also the first author's recent survey article [16].
The present paper focuses, in particular, on self-similar strings (and their natural generalizations), the boundary of which is a self-similar set (in R), satisfying a mild non-overlapping condition, as introduced and studied in [20][21][22][23].
Given a closed, bounded and nonempty interval I of length L, and M ≥ 2 contraction similitudes of R, Φ 1 , . . ., Φ M : I → I, a self-similar fractal string (or self-similar string, in short) is constructed through a procedure reminiscent of the construction of the Cantor set.In the first step, one subdivides the interval I into the images (1.1) Φ 1 (I), . . ., Φ M (I).
If one imposes a mild separation condition on the contraction similitudes, the images (1.1) now lie in the interval I, and they do not overlap, except possibly at the endpoints.Moreover, the complement in I of their union consists of one or more disjoint open intervals, called the first lengths.This process is then repeated with each of the images in (1.1), resulting in another finite collection of disjoint open intervals.The final result will be a countably infinite collection of pairwise disjoint and bounded open intervals, all contained in the original interval I.The union of these open intervals is the self-similar fractal string.
From the perspective of the current paper, there is an important dichotomy in the set of all self-similar fractal strings, according to which any self-similar fractal string is either lattice or nonlattice, depending on the scaling ratios with which a selfsimilar fractal string is constructed. 1More specifically, the lattice (resp., nonlattice) case is when all (resp., two or more) of the logarithms of the N distinct scaling ratios are rationally dependent (resp., independent), with necessarily 1 ≤ N ≤ M .In other words, the multiplicative group G ⊆ (0, +∞) generated by the N distinct scaling ratios is of rank 1 in the lattice case (that is, G = r Z , for some r ∈ (0, 1), called the multiplicative generator) and is of rank ≥ 2, in the nonlattice case.By definition, the generic nonlattice case is when N ≥ 2 and the rank of G is equal to N .
In the lattice case, the complex dimensions2 can be numerically obtained via the roots of certain polynomials that are typically sparse with large degrees, and lie periodically on finitely many vertical lines counted according to multiplicity.Furthermore, on each vertical line, they are separated by a positive real number p, called the oscillatory period of the string.(See [20,Chapter 2], [21,Theorem 2.5], and [23,Theorems 2.16 and 3.6].) For nonlattice self-similar fractal strings, which are the main focus of the present paper, the complex dimensions cannot be numerically obtained in the same way as in the lattice case.Indeed, they correspond to the roots of a transcendental (rather than polynomial) equation.They can, however, be approximated by the complex dimensions of a sequence of lattice strings with larger and larger oscillatory periods.The Lattice String Approximation algorithm of Lapidus and van Frankenhuijsen, referred to in this paper as the LSA algorithm, allows one to replace the study of nonlattice self-similar fractal strings by the study of suitable approximating sequences of lattice self-similar fractal strings.Using this algorithm, M. L.
Lapidus and M. van Frankenhuijsen have shown that the sets of complex dimensions of nonlattice self-similar fractal strings are quasiperiodically distributed, in a precise sense (see, e.g., [21,Theorem 3.6,Remark 3.7] and [22,23,Section 3.4.2]),and they have illustrated their results by means of a number of examples (see, e.g., the examples from Section 7 in [21] and their counterparts in Chapters 2 and 3 of [23]).Following the suggestion by those same authors in the introduction of [21], and in [22,23,Remark 3.38], the current paper presents an implementation of the LSA algorithm incorporating the application of a powerful lattice basis reduction algorithm, which is due to A. K. Lenstra, H. W. Lenstra and L. Lovász and is known as the LLL algorithm, in order to generate simultaneous Diophantine approximations; see [25,Proposition 1.39] and [6,Proposition 9.4].It also uses the open source software MPSolve, due to D. A. Bini, G. Fiorentino and L. Robol in [3], [4], in order to approximate the roots of large degree sparse polynomials.Indeed, the LLL algorithm along with MPSolve allow for a deeper numerical and visual exploration of the quasiperiodic patterns of the complex dimensions of self-similar strings via the LSA algorithm than what has already been done in [20][21][22][23].
In the latter part of [23,Chapter 3], a number of mathematical results were obtained concerning either the nonlattice case with two distinct scaling ratios (amenable to the use of continued fractions) as well as the nonlattice case with three or more distinct scaling ratios (therefore, typically requiring more complicated simultaneous Diophantine approximation algorithms).In the present paper, it has become possible, in particular, to explore more deeply and accurately additional nonlattice strings with rank greater than or equal to three, i.e., those that cannot be solved using continued fractions The rest of this paper is organized as follows.Section 2 consists of some background on complex dimensions and self-similar fractal strings, leading up to the restatement of [23,Theorem 3.18] (see also [21,Theorem 3.6]), which provides the LSA algorithm.Then, in Section 3, a brief overview of lattice basis reduction is given, along with a restatement and proof of [6,Proposition 9.4] to illustrate how the LLL algorithm is applied to simultaneous Diophantine approximations.In the latter part of Section 3 (see Section 3.2.1),we describe our implementation of the LLL algorithm for simultaneous Diophantine approximations which uses continued fractions.In Section 4, using our implementation of the LLL algorithm, together with MPSolve, a number of examples aimed at illustrating the quasiperiodic patterns of the complex dimensions of nonlattice self-similar fractal strings, and in the more general setting, of the roots (i.e., the zeros) of nonlattice Dirichlet polynomials, are shown and commented upon.These include examples previously studied in [20][21][22][23], which can now be viewed in a new light by using our refined numerical approach, and new handpicked examples which are computationally easier to explore and for which interesting new phenomena arise.The mathematical experiments performed in the current paper, along with earlier work in [15] and [21][22][23], have led to new questions and open problems which are briefly discussed in the concluding comments section, namely, Section 5.

Preliminary materials
An (ordinary) fractal string L consists of a bounded open subset Ω ⊂ R; such a set Ω is a disjoint union of countably many disjoint open intervals.The lengths of the open intervals are called the lengths of L, and since Ω is a bounded set, it is assumed without loss of generality that and that j → 0 as j → ∞. 3Let σ L denote the abscissa of convergence,4 of L. Since there are infinitely many lengths, ζ L (s) diverges at s = 0. Also, since Ω has finite Lebesgue measure, ζ L (s) converges at s = 1.Hence, it follows from standard results about general Dirichlet series (see, e.g., [29]) that the second equality in the above definition of σ L holds, and, therefore, that 0 ≤ σ L ≤ 1.
Definition 2.1.The dimension of a fractal string L with associated bounded open set Ω, denoted by D L , is defined as the (inner ) Minkowski dimension of Ω: where V (ε) denotes the volume (i.e., total length) of the inner tubular neighborhood of ∂Ω with radius ε given by According to [23,Theorem 1.10] (see also [14]), the abscissa of convergence σ L of a fractal string L coincides with the dimension D L of L: σ L = D L .Definition 2.2.Suppose ζ L (s) has a meromorphic continuation to the entire complex plane.Then the poles of ζ L (s) are called the complex dimensions of L.
Remark 2.3.While the theory of complex dimensions is developed in [20][21][22][23] and [19] for geometric zeta functions not necessarily having a meromorphic continuation to all of C, the present paper only requires the simpler case considered in Definition 2.2 (which is the case, in particular, of all self-similar fractal strings).See also [16] for a recent survey of the theory of complex fractal dimensions.
The geometric importance of the set of complex dimensions of a fractal string L with boundary Ω, which always includes its inner Minkowski dimension D L , is justified because, for example, the complex dimensions appear in an essential way in the explicit formula for the volume V (ε) of the inner tubular neighborhood of the boundary ∂Ω; see the corresponding "fractal tube formulas" obtained in Chapter 8 of [23].Accordingly, the complex dimensions give very detailed information about the intrinsic oscillations that are inherent to fractal geometries; see also Remark 2.4 below.The current paper, however, deals with the complex dimensions viewed only as a discrete subset of the complex plane, and the focus is on the special type of fractal strings that are constructed through an iterative process involving scaling, as is discussed in Section 2.1.
Remark 2.4.In [20][21][22][23] (when ν = 1) and in [16,19] (when the integer ν ≥ 1 is arbitrary), a geometric object is said to be fractal if it has at least one nonreal complex dimension. 5This definition applies to fractal strings (including all selfsimilar strings, which are shown to be fractal in this sense) 6 , that correspond to the ν = 1 case, and to bounded subsets of R ν (for any integer ν ≥ 1) as well as, more generally, to relative fractal drums, which are natural higher-dimensional counterparts of fractal strings.
Assume that after having applied to I each of the maps Φ j in (2.1), for j = 1, . . ., M , the resulting images (2.2) Φ 1 (I), . . ., Φ M (I) do not overlap, except possibly at the endpoints, and that M j=1 r j < 1.These assumptions imply that the complement of the union, M j=1 Φ j (I), in I consists of K pairwise disjoint open intervals with lengths called the first intervals.Note that the quantities g 1 , . . ., g K , called the gaps, along with the scaling ratios r 1 , . . ., r M , satisfy the equation The process which was just described above is then repeated for each of the M images Φ j (I), for j = 1, . . ., M , in (2.2) in order to produce KM additional pairwise disjoint open intervals in I. Repeating this process ad infinitum yields countably many open intervals, which defines a fractal string L with bounded open set Ω given by the (necessarily disjoint) union of these open intervals.Any fractal string obtained in this manner is called a self-similar fractal string (or a self-similar string, in short).
Lapidus and van Frankenhuijsen have shown that the geometric zeta functions of self-similar fractal strings have meromorphic continuations to all of C; see Theorem 2.3 in Chapter 2 of [23].Specifically, the geometric zeta function ζ L (s) of any selfsimilar fractal string with scaling ratios {r j } M j=1 , gaps {g k } K k=1 , and total length L is given by Both the numerator and the denominator of the right-hand side of (2.3) are special kinds of exponential polynomials, known as Dirichlet polynomials.Hence, as was done in [21] and [23,Chapter 3], the more general situation of the sets of complex roots of Dirichlet polynomials is considered, as is next explained.Therefore, the set of complex dimensions of any self-similar fractal string is a subset of the set of complex roots of an associated Dirichlet polynomial f (s), as given in (2.4).While, in general, some of the zeros of the denominator of the right-hand side of (2.3) could be cancelled by the roots of its numerator (see [23,Section 2.3.3]), in the important special case of a single gap length (i.e., when g 1 = • • • = g K ), the complex dimensions precisely coincide with the complex roots of f (s).This can be seen directly (in light of (2.3)) or else by choosing the length L of the interval to be the reciprocal of the single gap length, which simplifies the geometric zeta function in such a way that the numerator, on the right-hand side of (2.3), is equal to 1; note that this rescaling has no effect on the complex dimensions.Hence, in that case, there are no cancellations, and all of the roots of f (s) are complex dimensions.
The result in (2.3) establishes a deep connection between the study of complex dimensions of self-similar fractal strings and that of the roots of Dirichlet polynomials which was gaining interest as early as the start of the nineteenth century; see, e.g., [21][22][23] and [8,26], along with the relevant references therein.
In light of the discussion surrounding Equation (2.3), it suffices to study more generally the sets of complex roots of Dirichlet polynomials, which will be the focus for the remainder of this paper.For the purpose of investigating the sets of complex roots of Dirichlet polynomials, it is assumed without any loss of generality that m 0 := −1 and r 0 := 1 in (2.4).That is, in the remainder of this paper, we will only consider Dirichlet polynomials of the form while the r j 's, with j = 1, . . ., N , correspond to the distinct scaling ratios, among the scaling ratios {r j } M j=1 of L. Hence, in particular, 1 ≤ N ≤ M in this case, and, modulo a suitable abuse of notation, for each distinct scaling ratio r j , for j = 1, . . ., M , m j := #{1 ≤ k ≤ M : r k = r j } is indeed the multiplicity of r j .
with {r j } N j=1 and {m j } N j=1 as in Definition 2.5.
Definition 2.6.A Dirichlet polynomial f is called lattice if w j /w 1 is rational for 1 ≤ j ≤ N , and it is called nonlattice otherwise. 8t is straightforward to check that a Dirichlet polynomial f is lattice if and only if there exists a (necessarily unique) real number r in (0, 1), called the multiplicative generator of f , and positive integers k 1 , . . ., k N , without common divisors, such that r j = r kj for j = 1, . . ., N .Put another way, the lattice case is when the rank of the additive group Zw j equals 1, and the nonlattice case is when this rank is ≥ 2.
Definition 2.7.The rank of a Dirichlet polynomial is defined to be the rank of the group G defined above.Then, f (s) is called generic nonlattice if the number N of distinct scaling ratios satisfies N ≥ 2 and is equal to the rank of f (s); furthermore, still of N ≥ 2, f (s) it is said to be nongeneric nonlattice, otherwise.In other words, f (s) is generic nonlattice if and only if N ≥ 2 and w 1 , . . ., w N are rationally independent.
Moreover, a self-similar fractal string is called (generic) nonlattice if its associated Dirichlet polynomial is (generic) nonlattice.A thorough description of the structure of the sets of complex roots of Dirichlet polynomials is provided by [23,Theorem 3.6].Some of the most relevant features to the current paper are as follows: The set of complex roots of any Dirichlet polynomial is a subset of the horizontally bounded vertical strip where D and D are the unique real numbers satisfying the equations 9(2.6) respectively.These numbers satisfy the inequality −∞ < D ≤ D. If the multiplicities are positive integers, then the complex roots are symmetric about the real axis, the number D defined above is positive, and it is the only real root of f ; furthermore, it is a simple root.
Remark 2.8.In the case of a self-similar string L, the nonnegative number D does not exceed 1 and coincides with D L , the inner Minkowski dimension of L: 0, is lattice, then according to Definition 2.6, the associated real numbers which are explicitly determined by the weights are all rational.Therefore, there exist positive integers According to [23,Theorem 3.6], the complex roots of a lattice Dirichlet polynomial f (s) lie periodically on finitely many vertical lines, and on each line they are separated by the positive number p = 2π log r −1 , called the oscillatory period of f (s).
More precisely, following the discussion surrounding [23, Equation (2.48), p. 58], the roots are computed by first rewriting f (s) as a polynomial g(z) of degree k N in the complex variable z := r s , where r = r 1/q 1 is the multiplicative generator of f (s): There are k N roots of g(z), counted with multiplicity.Each one is of the form where −π < θ ≤ π, and it corresponds to a unique root of f (s), namely, Therefore, given a lattice Dirichlet polynomial f with oscillatory period p, there exist complex numbers ω 1 , . . ., ω u such that the set D f of complex roots of f is given by where for 1 ≤ j ≤ u, H j := {ω j + inp : n ∈ Z}.Now, let f be a nonlattice Dirichlet polynomial given by and with weights w 1 , . . ., w N .Then, N ≥ 2 and at least one of the associated real numbers (2.9) m j (r s 1 ) wj /w1 , and noting that not all of the associated real numbers in (2.7) are rational, one sees that f (s) cannot be expressed as a polynomial, which means that the approach which was just described above to compute the roots of a lattice Dirichlet polynomial is not applicable in the nonlattice case.Instead, the roots are approximated by a procedure developed by the two authors of [20][21][22][23].The practicality of their procedure rests upon a long standing-problem in the theory of Diophantine approximations: namely, to efficiently generate infinitely many good rational approximations, with a common denominator, to a vector of real numbers with at least one irrational coordinate; see, e.g., [10].Using this approximation procedure, referred to in the current paper as the Lattice String Approximation algorithm (LSA algorithm for short), the authors of [20][21][22][23] showed that the set of complex roots of nonlattice Dirichlet polynomial equations exhibit continuously evolving periodic patterns; they say that the complex roots of nonlattice Dirichlet polynomials have a quasiperiodic pattern; see, e.g., Remark 3.7 in [21] and Section 3.4 in [23].

Lattice String Approximation.
The LSA algorithm is based on the theory of Diophantine approximations, which deals with the approximation of real numbers by rational numbers.The main step of the algorithm replaces the real numbers w 2 /w 1 , . . ., w N /w 1 in (2.7) with rational approximations having a common denominator.The resulting Dirichlet polynomial is lattice, and the roots of this resulting Dirichlet polynomial approximate the roots of (2.10) in a very special way.Therefore, before stating Theorem 2.10 below, which provides the algorithm, the following lemma on simultaneous Diophantine approximation is stated; see, e.g., [27,Theorem 1A,p. 27].This well-known result is a generalization to several real numbers of Dirichlet's approximation theorem, itself a consequence of the pigeonhole principle.Lemma 2.9.Let f (s) be a nonlattice Dirichlet polynomial with associated weights w 1 , . . ., w N , where N ≥ 2.Then, for every real number Q > 1, there exist infinitely many vectors for all integers j such that 2 ≤ j ≤ N and integers q such that 1 Let f be a nonlattice Dirichlet polynomial with associated real numbers as in (2.7).If a real number Q > 1 and positive integers q, k 2 , . . ., k N are computed such that Q and the vector (q, k 2 , . . ., k N ) satisfy inequality (2.11), for each integer j ∈ {2, . . ., N }, then the pair is called a simultaneous Diophantine approximation to the associated real numbers in (2.7). 10 We are now ready to state the following key result ([23, Theorem 3.18, p. 34]).
Theorem 2.10 (M.L. Lapidus and M. van Frankenhuijsen; [20][21][22][23]).Let f (s) be a nonlattice Dirichlet polynomial of the form (2.5) with scaling ratios 1 > r 1 > • • • > r N > 0 and multiplicities m 1 , . . ., m N , where N ≥ 2. 11 Let Q > 1, and let q and k j be as in Lemma 2.9 (except possibly without the condition q < Q N −1 ).Then, the Dirichlet polynomial and oscillatory period Moreover, for every approximation error ε > 0, if s belongs to the ε-region of stability (of radius εCQp) is the LSA constant of f (s). 12emark 2.11.For a fixed order of accuracy ε > 0, we call a root of a lattice string approximation f q (s) lying inside its ε-region of stability a stable root, and we say that f q2 (s) is more stable than f q1 (s) if the ε-region of stability of f q2 (s) contains that of f q1 (s).
In summary, Theorem 2.10 says that a simultaneous Diophantine approximation Q, (q, k 2 , . . ., k N ) to the real numbers in (2.7) determines a lattice string approximation , with the property that its values are close to the values of f (s), with prescribed approximation error ε > 0, within a region of stability with radius that is proportional to ε; the smaller the approximation error, the smaller the region of stability.The implication of Theorem 2.10 is that the roots of f (s) are almost periodically distributed.That is, given a lattice string approximation f q (s) to a nonlattice Dirichlet polynomial f (s), the roots of f (s) are near the periodically distributed roots of f q (s), for a certain number of periods.Then, the roots of f (s) start to deviate from this periodic pattern, and a new periodic pattern, associated with a more stable lattice string approximation, gradually emerges; see ibid.Before illustrating this discussion by means of several examples in Section 4, we present our implementation of the LLL algorithm for simultaneous Diophantine approximations in the following section, which we will use in order to explore the roots of the more complicated Dirichlet polynomials with rank three or more.

Simultaneous Diophantine Approximations
In general, approximating the sets of complex roots of a nonlattice Dirichlet polynomial via the LSA algorithm requires a practical method for generating simultaneous Diophantine approximations.In 1982, A. K. Lenstra, H. W. Lenstra, and L. Lovász (or LLL, for brevity) presented in their paper [25] the first polynomial-time algorithm to factor a nonzero polynomial Specifically, the number of arithmetic operations needed is bounded by a constant multiple of n 4 , where n is the size of the input; see [25,Proposition 1.26].The authors of that paper showed that their algorithm, which is now commonly referred to as the LLL algorithm, can generate simultaneous Diophantine approximations; see Theorem 3.6 below.As suggested by Lapidus and van Frankenhuijsen in [22, p. 99], and then later in [23, Remark 3.38, p. 101], the current paper utilizes the LLL algorithm in order to generate lattice string approximations.
The present section gives an overview of the LLL algorithm, and explains how it can be used to generate simultaneous Diophantine approximations.For more detail on the LLL algorithm and the corresponding method of lattice basis reduction, the interested reader can consult the original paper, [25], together with Bremner's book, [6], providing an introductory exposition of the algorithm.
3.1.Lattice Basis Reduction.Definition 3.1.Let n be a positive integer.A subset L of the n-dimensional real vector space R n is called a (full-rank) lattice if there exists a basis β = {x 1 , . . ., The subset β is called a basis of L, and n is called the rank of L.Moreover, for each 1 ≤ j ≤ n, let where for each 1 , where X is the n × n matrix given by (X) jk = x j,k ; the matrix X is called the basis matrix of L for β.
It readily follows from the following proposition that the positive number d(L) does not depend on the choice of basis, as is stated in Corollary 3.3 below.Proof.Since β 1 , β 2 ⊂ L, for each j = 1, . . ., n, there exist integers a j,1 , . . ., a j,n , b j,1 , . . ., b j,n , such that This means that there exist n × n matrices A and B with integer entries given by Therefore, the determinant of L, det(L) = |det(X)|, is independent of the choice of the basis of L used to evaluate it.
Suppose that we are given a lattice L ⊂ R n .In a shortest vector problem, one finds the shortest nonzero vector in L. That is, one tries to compute In the γ-approximation version of such a problem, one finds a nonzero lattice vector of length at most γ • λ(L), for a given real number γ ≥ 1.These types of problems have many applications in number theory and cryptography; see, e.g., [6,Chapters 7 and 9].No efficient algorithm is known to find the shortest vector in a lattice, or even just the length of the shortest vector.The LLL algorithm is the first polynomial-time algorithm to compute what is called an α-reduced basis for a given lattice; see [25,Proposition 1.26].Simply put, an α-reduced basis for a lattice L is one with short vectors that are nearly orthogonal.
3.1.1.The α-Reduced Basis for a Lattice.Let β = {x 1 , . . ., x n } be a basis of R n , and let x * 1 = x 1 .For 1 < j ≤ n, define where, for 1 ≤ k < j ≤ n, The vectors x * 1 , . . ., x * n , called the Gram-Schmidt orthogonalization of β, form an orthogonal basis of R n , and the numbers µ j,k are called the Gram-Schmidt coefficients of the orthogonalization.Definition 3.4.Let β = {x 1 , . . ., x n } be a basis for a lattice L ⊂ R n , and let x * 1 , . . ., x * n be its Gram-Schmidt orthogonalization with Gram-Schmidt coefficients µ j,k , for 1 ≤ k < j ≤ n.Furthermore, let α be such that 1/4 < α < 1.The basis β is said to be α-reduced if the following two conditions are satisfied:

Simultaneous Diophantine Approximations via LLL.
In this section, we discuss the key steps needed in order to generate lattice string approximations by using the LLL algorithm.Our implementation uses continued fractions, as opposed to using rational numbers with denominator equal to a power of 2, which was the approach used in [5, Remark 4.1, p. 177].
After having recalled a technical result from [25] (Proposition 3.5 below), we state and prove the main result of [25], from our present perspective, namely, Theorem 3.6.This result establishes the LLL algorithm as a useful tool for computing simultaneous Diophantine approximations to two or more real numbers.δ −n for j = 1, . . ., n.
Proof.Let L be the lattice of rank n + 1 with basis matrix Using the LLL Algorithm, generate a reduced basis β = {y 1 , . . ., y n } for L, with reduction parameter α = 3/4.Then, if Y denotes the basis matrix of L for β, Proposition 3.2 says that there exists an (n + 1) × (n + 1) matrix C with integer entries such that Y = CX.That is, there exist c j,k ∈ Z for 0 ≤ j, k ≤ n such that In particular, Put b = c 0,0 , and for j = 1, . . ., n, put a j = c 0,j .Then, It follows from the third inequality (i.e., from part (iii) in Proposition 3.5) that (3.2) but that contradicts (3.2).Upon replacing y 1 by −y 1 , it can be assumed without loss of generality that b ≥ 1.Therefore, since the length of y 1 is greater than or equal to any of the components of y 1 , 2 and hence, This completes the main part of the proof of the theorem.Moreover, since the number of arithmetic operations needed by LLL is O(n 4 log B), where B is a constant that is explicitly determined from the rows of X (see [25,  ) and prescribed quality; see, e.g., [9], [11], and [5].The current implementation is focused on computing sequences of increasingly good, simultaneous Diophantine approximations.Any practical implementation of the LLL algorithm uses rational numbers.For example, in an iterative version of the LLL algorithm from [5], which finds higherdimensional simultaneous Diophantine approximations (see [27, Chapter 2, Theorem 1E]), all of the irrational numbers in their implementation are approximated by rational numbers with denominator 2 M , for some M ∈ Z (i.e., by dyadic numbers).Our implementation follows the one in [6, Section 9.2] and uses the continued fraction process (see, e.g., [27, Chapter 1]), which generates, for any real number α, an infinite sequence of "reduced fractions" that approximate α.Each rational number a j /b j is called the j th convergent to α, and it is a well-known fact that every convergent a j /b j to α satisfies the inequality see, e.g., [27,Chapter 1].Therefore, since b j → ∞ (see the proof of [27, Chapter 1, Lemma 4D]), for any real number Q > 1, there exists j ≥ 1 such that the ordered pair Q, (b j , a j ) satisfies inequality (2.11) from Lemma 2.9, and thus forms a simultaneous Diophantine approximation to α; see the paragraph preceding the statement of Theorem 2.10.
Denote the n th j convergent to the real number x j by a j,nj b j,nj , for j = 1, . . ., N.
We start by initializing 0 < δ < 1 (close to 1) and a positive integer n steps , which together determine the step-size ∆δ = δ/n steps , and then proceed to generate the first convergents Table 1.A table showing how the convergents are updated for a fixed δ to generate two simultaneous Diophantine approximations to the real numbers log 2 (3), log 2 (5), log 2 (7), using the procedure outlined in Section 3.2.1.
For each 1 ≤ j ≤ N , define the errors We distinguish two cases.
Case 1.If (3.5) E 2 (j) ≥ 2E 1 (j), for j = 1, . . ., N, then the simultaneous Diophantine approximation , (b, a 1 , . . ., a N ) to the real numbers in (3.3) is obtained, and the entire process is repeated after replacing δ with δ − ∆δ.Note that since δ < 1 and b ≥ 1, we have that x j − a j b < 1, for j = 1, . . ., N ; so that Q > 1.In this case, we say that none of the rational approximations a j /b can distinguish between the convergent a j,nj /b j,nj , and the real number x j .Case 2. For each 1 ≤ j ≤ N with E 2 (j) < 2E 1 (j), the convergent a j,nj /b j,nj is updated to the next convergent a j,nj +1 /b j,nj +1 , which is closer to x j .With the current value of δ and the updated convergents, a new set of integers b, a 1 , . . ., a n satisfying the inequalities in (3.1) is achieved, and we check whether we are still in Case 2. Since δ is fixed, this process of updating convergents and checking will eventually terminate because the denominators of the continued fractions tend to infinity, putting us back in Case 1, and therefore yielding another simultaneous Diophantine approximation; see Table 1.
Remark 3.7.We choose to use the continued fraction process in our implementation because it is very efficient.Specifically, each convergent is best possible, 13 and in principle, the continued fraction process is identical to the Euclidean algorithm.We also note that our implementation extends the one from [6] because it finds a sequence of meaningful simultaneous Diophantine approximations, in the sense described in Case 1 and Case 2 above.While it is true that the rational implementation in [5] also finds meaningful approximations, it does not use the continued fraction process.

The Quasiperiodic Patterns in the Nonlattice Case
Using the LSA algorithm, together with our implementation of the LLL algorithm for simultaneous Diophantine approximation (see Section 3.2.1),and the multiprecision polynomial solver MPSolve, which is due to D. A. Bini, G. Fiorentino and L. Robol [3,4], we study examples of nonlattice Dirichlet polynomials previously studied in, e.g., [21,23], as well as several new examples, all aimed at illustrating the discussion in the first paragraph, following the statement of Theorem 2.10, which describes how the quasiperiodic patterns from the complex roots of nonlattice Dirichlet polynomials begin to emerge.
The visual exploration of the quasiperiodic patterns in this section extend those from the previous works by the two authors of [20][21][22][23]; see, especially, [23, Figure 3.6, p.87], [21, Figure 9, p.62], and also [23,Figure 3.2,p.71 ], along with the associated examples, which show the roots of several lattice string approximations to nonlattice Dirichlet polynomials in sequence, and illustrate the emergence of a quasiperiodic pattern.Our approach starts by taking the best lattice string approximation f q (s) that we can compute to a nonlattice Dirichlet polynomial f (s), where, by "best", we mean having the largest ε-region of stability.We then compute the roots of f (s), using the complex version of Newton's method with the stable roots of f q (s) as initial guesses, up to a region large enough to include several periods of stable roots from a few increasingly good lattice string approximations. 14 By plotting the roots of these lattice string approximations against the roots of f (s), we show how the roots of f (s) are near the roots of each approximation for a certain number of periods of that approximation (sometimes, only for a fraction of a period), and how they eventually start to move away from those roots.We also show plots of the best lattice string approximations that we computed, giving an impression of the quasiperiodic pattern on a larger scale; compare with [23,Figure 3.7,p. 88].We also present an especially crafted nonlattice Dirichlet polynomial whose roots exhibit a global structure which has not been observed before.
If the rank of the additive group G corresponding to a nonlattice Dirichlet polynomial f (s) is equal to two, we can use the continued fraction process alone in order to generate lattice string approximations to f (s).Otherwise, the rank is more than two, and we turn to our implementation of the LLL algorithm for simultaneous Diophantine approximation.In any case, we plot the roots of a lattice string approximation f q (s) corresponding to the simultaneous Diophantine approximation given by the pair Q, (q, k 2 , . . ., k N ) by computing the roots of an associated polynomial in C[x] with degree k N , and which is typically sparse; see the discussion surrounding the equation in (2.8) from Section 2.2.1.In Section 4.2, we show both generic and nongeneric nonlattice examples with rank two, and in Section 4.3, we show generic and nongeneric nonlattice examples with rank three or more.In practice, lattice string approximations with at least one period of stable roots correspond to polynomials with very large degree.Consequently, it takes a significant amount of computing power to implement the approach described above.In [23,Section 3.8], the first two authors of the present paper state: "The maximal degree 5000 is the limit of computation: It took several hours with our software on a Sun workstation to compute the golden diagram, which involved solving a polynomial equation of degree 4181.However, finding the roots of the polynomial is the most time-consuming part of the computation.Since these polynomials contain only a few monomials, there may exist ways to speed up this part of the computation."In the current paper, using MPSolve and the high performance computer ELSA at the third author's institution, the maximal degree 300000k is now our limit.
In the present paper, we are careful about the combination of scaling ratios and multiplicities from a nonlattice Dirichlet polynomial f (s).Indeed, if they are not balanced properly, even the best lattice string approximations that we would be able to compute will have very few stable roots.Specifically, there is still the issue of the size of the LSA constant C in the radius εCQp q of the ε-region of stability, and which in some cases can be smaller than the reciprocal of Q.Therefore, we pay special attention to the LSA constant C and show how to reverse engineer examples with C being not too small.Hence, not only do we provide a new implementation of the LLL algorithm that enables us to deal with more complicated examples, but 14 All of the applications of the LSA algorithm to the examples given in Section 4 use ε = 1/10.While this approximation error is small enough to separate the roots of f (s) vertically, it does not separate them horizontally.Therefore, it is possible that we miss some roots when applying Newton's method.In any case, the roots which we obtain suffice to show the emergence of a quasiperiodic pattern, which is the central aim of this section.
we also give a "starter-kit" for the interested reader to explore the quasiperiodic patterns of nonlattice Dirichlet polynomials.
explicitly determined from the scaling ratios of f (s).Setting α 1 = 1 and α j = w j /w 1 , for all 2 ≤ j ≤ N , we write Recall that each simultaneous Diophantine approximation given by the ordered pair Q, (q, k 2 , . . ., k N ) to the real numbers α 2 , . . ., α N , such that k j /q approximates α j , for all integers j such that 2 ≤ j ≤ N , determines the lattice string approximation m j r kj /q j s to f (s), and that for any approximation error ε > 0, the radius of the ε-region of stability B ε (q, Q) of f q (s) is εCQp q , where is the LSA constant of f (s) from Theorem 2.10, and p q is the oscillatory period of f q (s).
Consider the class of nonlattice Dirichlet polynomials of the form and that since f (s) is nonlattice, α j is irrational, for some integer j such that 2 ≤ j ≤ N .All of the examples of nonlattice Dirichlet polynomials shown in [20][21][22][23] are of the form (4.2), except for both the scaled and unscaled versions of the example in [23,Example 3.55,p. 113].The following new theorem provides infinitely many nonlattice Dirichlet polynomials of the form (4.2), with LSA constant arbitrarily close to (32π) −1 .
Proof.The formula for C is found by a direct substitution; see Equation (2.13) in Theorem 2.10 above.By requiring that α N − α N −1 > 1, we have Since we can always manufacture a nonlattice Dirichlet polynomial of the form (4.2), with ξ(N ) arbitrarily close to zero and α N arbitrarily close to 2 from the right, the theorem follows.

Rank Two Examples.
Recall from Definition 2.7 that the rank of a nonlattice Dirichlet polynomial is equal to the number of rationally independent numbers in the set If the rank is equal to two, then exactly one of the associated real numbers in (4.1) is irrational, and we can use the continued fraction process to generate lattice string approximations to f (s): Suppose that only α = w 2 /w 1 is irrational.We start by computing a convergent a/b to α, and then we modify the remaining real numbers (which are all rational) so that they have denominator b.Then, we obtain the simultaneous Diophantine approximation given by the pair Q, (q, k 2 , k 3 , . . .k N ) to the real numbers in (4.1),where q = b, k 2 = a, k j q = w j w 1 , for j = 3, . . ., N, and Finally, we obtain the lattice sting approximation and oscillatory period Otherwise, the rank is greater than two (since f (s) is nonlattice), and in that case we use the LLL algorithm in order to generate lattice string approximations; examples with rank greater than two are discussed in Section 4.3.
For any lattice string approximation f q (s) to a nonlattice Dirichlet polynomial f (s), we define a = min{Re(s) : f q (s) = 0} and b = max{Re(s) : f q (s) = 0}.This notation will be used in Section 4.2.1 just below.Table 2 shows data for several lattice string approximations to the 2-3 polynomial.For example, the lattice string approximation has about three periods of stable roots, and it is determined from the simultaneous Diophantine approximation given by the pair Q = 38096.3,(15601, 24727) to the real number log 2 (3).Note that the best lattice string approximation to the 2-3 polynomial obtained in [21,23] comes from the convergent 485/306, and does not even have one full period of stable roots.Figure 1 shows how the roots of the 2-3 polynomial (marked with dots) are near the roots of f 306 (s) (marked with circles), and how they eventually start to move away from them.Notice that the point at which the roots of the 2-3 polynomial start to move away from the roots of the lattice string approximation agrees with the theoretical prediction from [23]; see Theorem 2.10.
We also observe that the roots seem to stay close to the roots of f 306 for much longer near the extreme vertical lines Re(z) = a and Re(z) = b.We do not have an explanation for this phenomenon, which occurs in all of the examples discussed in the current paper.In fact, Example 4.4 below shows the roots of a lattice string approximation staying close to a third line.Figure 2 displays stable roots of the lattice string approximation f 111202 (s), giving an impression of the quasiperiodic pattern on a larger scale.We note that large scale plots like the ones in Figure 2 were provided for only three out of the ten rank two examples from [21,23].In the sequel, we will exhibit additional plots of this kind, and arising from far better   2 for the corresponding data.
lattice string approximations.Furthermore, these plots suggest that the patterns from the roots of very good lattice string approximations lie in a wide spectrum, all the way from highly disordered to regular; compare, especially, Figure 2 with Figure 9.It is also of the form (4.2), with N = 2 and α 2 = φ; see also the golden+ polynomial in, e.g., [23,Section 3.2.2,.We compute lattice string approximations to the golden polynomial by generating convergents to the golden   Table 3. Simultaneous Diophantine approximations to the golden ratio φ associated to the golden polynomial, and specifications for the corresponding lattice string approximations.
ratio.One way to do this, aside from using the continued fraction process, is to take the Fibonacci numbers 1, 1, 2, 3, 5, 8, 13, 34, 55, . . .and divide each one, starting with the second, by the preceding number.Table 3 shows data for several lattice string approximations to the golden polynomial.Notice that we obtain fewer lattice string approximations to the golden polynomial with at least one period of stable roots than we did for the 2-3 polynomial in Example 4.2.On the other hand, our best lattice string approximation to the golden polynomial has roots that are stable for about twenty seven periods, whereas for the 2-3 polynomial studied in Example 4.2, our best one has roots that are stable for about sixteen periods.Figure 4 shows how the roots of the golden polynomial (marked with dots) are near the roots of the lattice string approximations f 610 (s) (marked with circles) and f 987 (s) (marked with diamonds), and how they eventually start to move away from them.We see again that the point at which the roots of the golden polynomial start to move away from the roots of f 610 (s) and f 987 (s) is consistent with the theoretical prediction.Figure 3 shows stable roots of the lattice string approximation f 121393 (s), giving an impression of the quasiperiodic pattern on a larger scale.Observe how the roots constitute a slightly less regular pattern than the one in Figure 2. Also, we note that the best lattice string approximation to the golden polynomial in [21,23] was determined from the convergent 4181/2584 to the golden ratio φ.
This example was inspired by the 2-3-4-6 polynomial   4 for the corresponding data.By scaling the multiplicities m 1 , m 2 , m 3 by a factor of 10 −1 , we obtain the nongeneric nonlattice Dirichlet polynomial f (s), with LSA constant C = 0.0001, calculated by using the formula (4.3) in Theorem 4.1.As a result, we obtain a more . We note, however, that they are not as good as the ones from Table 2 because the LSA constant is smaller.Figure 6 displays the roots of f (s) moving away from the roots of f 306 (s).We again observe that the roots remain close to the roots of f 306 (s) near the two extreme vertical lines Re(z) = a and Re(z) = b, as shown in parts (a) and (c) of Figure 6, respectively.However, we see in part (b) of Figure 6 some of the roots staying close to a third line, Re(z) = −0.0543.Figure 5 shows one period of stable roots of the lattice string approximation f 111202 , giving an impression of two distinct quasiperiodic patterns on each side of the vertical line Re(z) = −0.0543.Note that while the part to the left is smaller than the part on the right, both parts consist of roughly the same number of roots, which may be inferred by observing that the roots in the left part seem to be more densely distributed than the ones in the right part.

Rank Three or More Examples.
In this section, we discuss examples with rank greater than two, which make use of our implementation of the LLL algorithm.While the authors of [21,23]  Recall that generating lattice string approximations to nonlattice Dirichlet polynomials with rank greater than two means generating simultaneous Diophantine approximations to two or more real numbers.The naive approach is to build off the process described in the second to last paragraph before Section 4.2.1, and simply generate a convergent to each irrational number and then find a common denominator.However, this process is extremely inefficient.5 shows the data for the lattice string approximations we computed, and we note that with such a small LSA constant, and because the LLL algorithm is not as efficient as the continued fraction process, we cannot even get a single lattice string approximation with roots that are stable for at least one period.Figure 7 and Figure 8 show the roots of each lattice string approximation from Table 5.  6 for the data on the lattice string approximations we computed.Figure 9 displays the roots of the lattice string approximation f 85248 (s).Observe how irregular the roots are, when compared to the other examples shown in the rest of Section 4. Also, note the dense pocket of roots near the imaginary axis.
p q εCQp 1111.Table 6.This table shows simultaneous Diophantine approximations Q, (q, k 2 , k 3 ) to the real numbers log 3 (4), log 3 (13) associated to the nonlattice Dirichlet polynomial in Example 4.6, along with some specifications for their corresponding lattice string approximations.7 for data on the lattice string approximations we computed.Figure 10 shows plots of the roots of two lattice string approximations, giving a totally new large scale impression of the quasiperiodic pattern.Figure 11 shows the roots of lattice string approximations moving away from the roots of f (s).6 for the corresponding data.along with some specifications for their corresponding lattice string approximations.

Concluding Remarks
We close this paper by a few comments concerning future research directions motivated, in part, by the present work and by earlier work in [23,Chapter 3] (about the quasiperiodic patterns of the complex dimensions of nonlattice selfsimilar fractal strings), as well as by [15].We limit ourselves here to a few questions concerning those matters.
While this is not a topic discussed in the present paper, it is worthwhile to mention that the LSA algorithm from [20][21][22][23] also establishes a deep connection to the theory of mathematical quasicrystals; for such quasicrystals, see, e.g., [1], [2], [12], [15], [28], and the relevant references therein.See also, especially, the open problem formulated in [23] (cf.[23,Problem 3.22], restated in Problem 1 below) asking to view the quasiperiodic set of complex dimensions of a nonlattice self-similar string (or, more generally, the set of zeros of a nonlattice Dirichlet polynomial) as a generalized mathematical quasicrystal; this problem was recently addressed by the third author in his Ph.D. thesis (see Chapter 4 of [30]), and it will be the topic of a future joint paper, [24].Problem 1. ([22,p. 86], [23,Problem 3.22,p. 89]).Is there a natural way in which the quasiperiodic pattern of the sets of complex roots of nonlattice Dirichlet polynomials can be understood in terms of a notion of a suitable (generalized ) quasicrystal or of an associated quasiperiodic tiling?
Generalized quasicrystals of complex dimensions also play an important role in a related, but significantly more general context, in the book by the first author, [15].
Aspects of Theorem 2.10 ([23, Theorem 3.18, p. 84]) need to be refined.While this theorem is very helpful, in particular, for explaining when the roots of f (s) start to move away from the roots of a lattice string approximation, it does not explain why they stay close near certain lines for much longer.This would suggest, among other things, that the density results and plots concerning the roots of nonlattice Dirichlet polynomials obtained in [23,Section 3.6] can be improved, at least in certain cases.

Proposition 3 . 2 .
Let β 1 = {x 1 , . . ., x n } and β 2 = {y 1 , . . ., y n } be two bases of a lattice L of R n .Let X and Y be the basis matrices of L corresponding to the bases β 1 and β 2 , respectively.Then, Y = BX, for some n × n matrix B with integer entries and determinant ±1; hence, either B or (if n is odd ) −B belongs to SL(n, Z).

(
A) jk = a jk and (B) jk = b jk , respectively, such that X = AY and Y = BX.By substitution, Y = (BA)Y .Since Y is invertible, it follows that BA = I, and so det(A) det(B) = 1.Since A and B have integer entries, it follows that det(B) = ±1, as desired.Corollary 3.3.Under the hypotheses and with the notation of Proposition 3.2,

4. 1 .
A Special Class of Nonlattice Dirichlet Polynomials.Let f (s) = 1 − N j=1 m j r s j be a nonlattice Dirichlet polynomial, which is associated to the real numbers (4.1)

Figure 2 .
Figure 2. Stable roots from the lattice string approximation f 111202 (s) to the 2-3 polynomial from Example 4.2.See Table2for the corresponding data.

Figure 3 .
Figure 3. Stable roots from the lattice string approximation f 121393 (s) to the golden polynomial from Example 4.3.See Table 3 for the corresponding data.

Figure 4 .
Figure 4. Roots of the golden polynomial from Example 4.3 near the vertical line (a) Re(z) = a, (b) Re(z) = b (marked with dots), moving away from the roots of f 610 (s), f 987 (s) (marked with circles and diamonds, respectively).

Figure 5 .
Figure 5. Stable roots from the lattice string approximations f 111202 (s) to the nongeneric nonlattice Dirichlet polynomial from Example 4.4.See Table4for the corresponding data.
did show two examples with rank greater than two, specifically, the 2-3-5 polynomial of rank three from, e.g., [23, Section 3.6, pp.108-109] and the 2-3-5-7 polynomial of rank four from [23, Section 3.7.1,pp.113-114], the visual presentation of the roots was severely limited, due to the absence of tools like the LLL algorithm and MPSolve.Here, we plot the roots of the 2-3-5-7 polynomial, and also the roots of two new examples, all of which are of the form (4.2).

Figure 11 .
Figure 11.Roots of f (s) from Example 4.7 (marked with dots) moving away from the roots of (a) f 318 (s), (b) f 1583 (s) (marked with circles).The dotted line indicates the theoretical region of stability.

Table 2 .
Simultaneous Diophantine approximations to the real number log 2 (3) associated to the 2-3 polynomial, and specifications for the corresponding lattice string approximations.4.2.1.The 2-3 and the Golden Polynomials.

Table 4 .
This table shows simultaneous Diophantine approximations to the real number log 2 (3) associated to the nonlattice Dirichlet polynomial from Example 4.4, along with some specifications for the corresponding lattice string approximations.

Table 5 .
This table shows simultaneous Diophantine approximations Q, (q, k 2 , k 3 ) to the real numbers log 2 (3), log 2 (5) associated to the nonlattice Dirichlet polynomial in Example 4.5, along with some specifications for their corresponding lattice string approximations.tractableversion of the 2-3-4-6 polynomial.Table4shows data for several lattice string approximations to f (s), and just like for the 2-3 polynomial in Example 4.2, we generate lattice string approximations by approximating log 2