Patch frequencies in rhombic Penrose tilings

An algorithm is presented for an exact calculation of patch frequencies for a family of tilings which can be obtained via dualization.


Introduction
The idea of a non-periodic tiling of a plane with five-fold symmetry goes back to Kepler's famous Figure Aa in [12]. The (rhombic) tiling introduced by Roger Penrose in [18] is an aperiodic five-fold symmetric tiling of a plane with two prototiles -a thick and a thin rhombus. There are many ways to generate this tiling. One can define local matching rules, or one can think of it as an inflation tiling and define inflation rules. A more algebraic approach is due to de Bruijn [9]. It relies on the dualisation of a pentagrid, i.e., the union of five rotated lattices. An overview of the methods can be found, for example, in [3]. We are interested in another algebraic, yet different, way. It profits from the geometry of the root lattice A 4 and the fact that this lattice is a "minimal" one with five-fold symmetry. Again, this approach uses dualisation; in this scenario, the duality relation between Voronoi and Delone cells (and their complexes).
Recently, the Penrose tiling was considered as an infinite graph and has been studied using tools from graph theory. One can consider its graph-theoretic properties like Hamiltonicity, Eulericity, or (perfect) matchings [11,15], but one can also assign an operator acting on this graph and study its spectral properties. In [8] Damanik et al. study the properties of a Laplacian on various tilings, among them the rhombic Penrose one. They studied a tile model for the Laplacian, and they were able to show some examples of locally-supported eigenfunctions, which are also known from other papers [10]. Recently, Oktel published several papers dealing with a similar problem for the vertex model for different tilings [16,17,1]. For all these models, one can further study the integrated density of states (IDS), which is a function that counts the number of states (different eigenfunctions) up to a given energy. It was shown that this function is discontinuous. More precisely, if one can find a locally supported eigenfunction with energy E of the Laplacian, the IDS has a discontinuity jump at the point E. The size of this gap is at least as big as the frequency of the eigenfunction's support, i.e., the frequency of the corresponding patch. [8] Thus, knowing the frequency, one gets a lower bound on the size of the gap. Damanik et al. used a direct approach to calculate the frequencies. Namely, they count the number of occurrences of the support of a given eigenfunction in growing approximants of the entire tiling. The same method was employed earlier by Fujiwara et al. [10]. There is an obvious disadvantage of this method. Indeed, one has to deal with the boundary of the approximants, which may include parts of the studied patch. Another problem constitutes the way of choosing the approximants. Lastly, the resulting frequency is always given as a numerical approximation. Therefore, we aim to fill this gap by showing an algebraic way to obtain the frequencies of arbitrary finite patches in (not only) Penrose rhombic tiling exactly, without any need for the inflation method. For Penrose rhombic tilings, there already exists a method by Zobetz and Preislinger [21] using de Bruijn's approach, which enables a calculation of frequencies of vertex configurations in generalized Penrose tilings. Still, our approach provides a more general framework as it allows us to effectively calculate an exact frequency of arbitrary large patches for a wider class of tilings. As far as we are aware, there does not exist any algorithm that would actually enable the calculation of exact frequencies for arbitrary finite patches. This paper is structured as follows. In Section 2, we recall the geometry of the A 4 lattice and its Voronoi complex and of their dual objects. Further, in Section 3, we recall a representation of a cyclic group of order 5 (which acts naturally on the lattice A 4 ), which exhibits five-fold symmetry in a plane. Section 4 evokes the dualisation method and its benefits. These sections are almost fully based on [6]. We recall them as they are necessary for the algorithm. The crucial point is that it describes tilings rather than point sets by a variant of the projection method known as dualisation. In particular, the standard model set approach via the intersection of translated windows [3,Cor. 7.3] is practically unable to give the frequencies of large patches. The algorithm for determining the frequencies is presented in Section 5. In Appendix 1, we apply it to several patches coming from [8]. The second appendix is devoted to a brief summary of the patch frequencies in Ammann-Beenker tilings.

The root lattice A 4 , its dual, and their properties
The lattice A 4 can be understood in different ways. Perhaps the most natural one (explaining its name) is that A 4 is the root lattice of the semisimple Lie algebra sl 5 (C). On the other hand, its explicit description as an intersection of the primitive 5-dimensional cubic lattice with a 4-dimensional hyperplane allows us to simplify some calculations. Thus, let e 1 , . . . , e 5 be the standard basis vectors of R 5 and set s = e 1 + · · · + e 5 . Let further S = {x ∈ R 5 : s · x = 0} ≃ R 4 , be a 4-dimensional hyperplane in R 5 . Then, one has The resulting lattice is generated by four vectors, namely   Figure 1. The Dynkin diagram A 4 . Every node represents a basis vector, and their geometry is encoded via the lines. If two vertices are connected, their scalar product is -1. Otherwise, they are orthogonal.
Alternatively, we can depict the root lattice A 4 as a Dynkin diagram; see Figure 1.
Note that the generating vectors e i − e i+1 are fundamental (or simple) roots of the root system of sl 5 (C). This system consists of 20 root vectors, namely e i − e j with 1 ⩽ i, j ⩽ 5 and i ̸ = j. For our further analysis, we need to describe the maximal point symmetry group H A 4 at the origin of the lattice A 4 . It is isomorphic with the automorphism group of the generating root system. The root system is, by definition, invariant under the action of the Weyl group W (A 4 ), which is the permutation group S 5 in this case. Moreover, central inversion is an additional symmetry generating the group Z 2 . Thus the group H A 4 is isomorphic to The 20 root vectors also determine the Voronoi cell V A 4 (0) around the origin, i.e., all vectors in the underlying hyperplane S which are not further apart (with respect to the Euclidean distance) from the origin than to any other lattice point, so The Voronoi cell can also be understood as an intersection of closed half-spaces H + v corresponding to v ∈ A 4 defined as H + v := {x ∈ S : ||x − v|| ⩾ ||v||}. Here, the Voronoi cell V A 4 (0) is fully determined by the 20 root vectors, i.e., one has To obtain a more explicit description of the Voronoi cell V A 4 (0), we have to employ the dual lattice A * 4 and its fundamental domain. The dual lattice can be obtained in many ways. Following Conway's approach via glue vectors [7], one has with the glue vectors This description allows one to immediately recognise A 4 as a proper sublattice in its dual lattice A * 4 . Moreover, the quotient group A * 4/A 4 ≃ C 5 is of order 5, and the representatives can be chosen as the glue vectors. On the other hand, for upcoming calculations, it is convenient to write down the generators of the lattice. Here, A * 4 is spanned by the vectors a i = e i − 1 5 s with 1 ⩽ i ⩽ 5 and s as above. Note that the generating vectors are not linearly independent since 5 i=1 a i = 0. Finally, one can use them to describe the Voronoi cell This object is a regular 4-dimensional convex polytope, sometimes considered as a dual polytope to the runcinated 5-cell. It has the full symmetry W (A 4 ) × Z 2 . The polytope possesses 30 vertices, 70 bounding edges, 60 bounding polygons (i.e., polytopes of dimension 2) and 20 bounding polytopes of dimension 3. Henceforth, we refer to them as k-boundaries, with 0 ⩽ k ⩽ 3. Baake et al. [6] provide a careful analysis of all k-boundaries and their explicit description together with one of their corresponding duals in the sense of [14]. Important to us here are the 2-boundaries, the vertices, and the corresponding dual objects as follows. The 2-boundary polygons are given by together with all polygons obtained via vertex permutations and sign flips. There is an explicit action of the group H A 4 on the set of 2-boundaries. This action can be encoded on the level of the signature (+ + − ⃝ ⃝) as well. In particular, a permutation just permutes the indices, and a sign flip affects the signs and ⃝ remains unchanged. From the geometric point of view, P (+ + − ⃝ ⃝) is a rhombus; therefore, it will play a crucial role in constructing the Penrose rhombus tiling. The 2-boundary dual to P (++−⃝⃝) is the triangle P * (++−⃝⃝) defined as The correspondence between P and P * is one-to-one, and the boundaries intersect with their duals at precisely one point.
The 30 vertex points of the Voronoi cell V A 4 (0) are exactly those points of S with the largest distance to the lattice A 4 . In terms of the theory of root lattices, they are called holes [7]. Points with the maximal possible distance to A 4 are called deep holes, and the remaining ones are shallow holes. In our case, the vertex P (+ + + + −) = 1 2 a 1 + a 2 + a 3 + a 4 − a 5 = a 1 + a 2 + a 3 + a 4 and all its images under W (A 4 ) × Z 2 are the shallow holes, whereas the 20 points of type are the deep holes.
The dual objects to deep and shallow holes are four-dimensional cells. Namely, one gets a 4-dimensional simplex and a 4-dimensional Archimedian polytope and all their images under the symmetry operations H A 4 .
Since A 4 is a lattice, one has the same vertex configuration around any of its points up to translation. Thus, the Voronoi cell can collect all k-boundaries and think of them in terms of complexes. In particular, one can define the Voronoi complex The properties of the duality leads to the dual Voronoi complex and its dual k-skeleton as Taking any vertex v * of the Voronoi cell V A 4 (v) for some v ∈ A 4 , i.e., v * ∈ V (0) , the associated dual object, which is a full 4D polytope, will be denoted by V * (v * ) as it plays a similar role as the Voronoi cell.
As mentioned above, different points appear within the point sets studied. We have to deal with points of the lattice A 4 and with the vertices of its Voronoi cells. The latter split into two categories, deep and shallow holes. In order to distinguish them, one can introduce a modulo function r defined for any point It is clear that r : one has immediately A 4 = ker(r).
Further, one obtains the characterisation of shallow and deep holes in terms of r(v * ). In particular, Remark 2.1. The function r corresponds to the index function in de Bruijn's construction [9]. This is not surprising because de Bruijn's construction implicitly uses root lattice as a Minkowski embedding of fifth roots of unity as explained in [3, Sec. 7.5.2]. ♢

Representation with five-fold symmetry
We have already mentioned that W (A 4 ) acts on the generators of A 4 via permutations of the basis vectors e i . This action has two invariant subspaces, namely Cs and S. The linear representation of S 5 ≃ W (A 4 ) is irreducible on S, and to find a real irreducible representation capturing the fivefold symmetry in plane, one has to restrict oneself to a suitable subgroup. Therefore, consider the cyclic group C 5 , a subgroup of W (A 4 ). Its generating element g = (12345) acts on the basis (e 1 , . . . , e 5 ) via the matrix To find the possible representations means to find the real Jordan form of D(g) via an orthogonal matrix J. The real Jordan form reads and provides three irreducible real representations D ∥ (g), D ⊥ (g), D 0 (g). The matrix J read columnwise provides a new basis as one can directly read from In particular, one has Since the trivial representation D (0) (g) is carried by the subspace Cs, it follows that D ∥ (g) and D ⊥ (g) are contained in S. Thus, one has to decompose S as a direct sum of two subspaces, S ∥ and S ⊥ . The representation of g in S ∥ and S ⊥ is a rotation about 2π 5 , and 4π 5 , respectively. Denote by π ∥ and π ⊥ the projections from S onto S ∥ and S ⊥ , respectively. The projection of basis vectors π ∥ (e i ) are given by the first and second row of i-th column of J, and π ⊥ (e i ) are given by the third and fourth row of the same column. Figure 2 depicts the projections of the basis vectors e i , which exhibit the desired five-fold symmetry.
Projecting the 2-boundary P and its dual 2-boundary P * in both spaces results in a set of triangles and rhombuses, which we use later for the construction of the Penrose tiling. Figure  3 shows the projections of P (− + ⃝ ⃝ +) and P * (− + ⃝ ⃝ +). Note that the rhombus vertices always consist of one projection of a shallow hole and three projections of deep holes. The position of the shallow hole will later be needed to distinguish different patterns.

Dualisation method
One can obtain a space tiling via the so-called dualisation method. This method was described in detail in [14], and [3] provides an illustrative overview. To employ this method, one needs a Voronoi complex V , its dual (Delone) complex V * , and a suitable cutting plane, which carries the desired tiling. To get a non-periodic tiling, one has to choose the cutting plane so that it contains at most one lattice point.
The construction works in general as follows. Whenever the cutting plane intersects a kboundary of the Voronoi complex, the dual (4−k)-boundary is projected to the cutting plane. In our case, we wish to get the rhombic Penrose tiling. Therefore, we restrict ourselves to the skeletons V (2) and V * (2) . Figure 4 shows the projections of the different (modulo translation) 2-boundaries into the S ∥ , which are the thick Penrose rhombuses.
We choose as the cutting plane a translate of S ∥ by a vector c ⊥ ∈ S ⊥ . To ensure aperiodicity, we have to choose c ⊥ such that it is not contained in any π ⊥ -projection of any 1-boundary of P * ∈ V * (2) . See [6] for further details. The vector c ⊥ restricts the elements of V * (2) which one projects on S ∥ , since the cutting plane c ⊥ + S ∥ intersects 2-boundary P if and only if π ⊥ (P * ) contains c ⊥ . The resulting tiling (which depends on the choice of c ⊥ ) can be described as Vertices of T Pen (c ⊥ ) are projections of vertex points of certain Voronoi domains V (v) for some v ∈ A 4 . As already discussed above, these vertices are elements of A * 4 \A 4 and are of four translation types, as characterised by the function r. The vertex points v * split into four orbits with respect to the translation action of A 4 . For each orbit, one can choose a representative v * i , for example From the construction of T Pen (c ⊥ ), we see that a point v * ∈ A * 4 \A 4 is a preimage of a vertex point in T Pen (c ⊥ ) if and only if v * ∈ P with c ⊥ ∈ π ⊥ (P * ) for some P ∈ V (2) . Note that if a point is an element of a k-boundary, the dual (4−k)-boundary lies in the dual cell of that point and vice versa. So, v * ∈ P iff P * ⊂ V * (v * ) with V * (v * ) being a translate of a dual 4D-cell of the form (2.1), or (2.2). Thus, can only differ by a lattice vector. The choice of representatives (4.2) allows us to relate any point v * with one of them. Define ) . This allows us to rewrite the set of vertex points of T Pen (c ⊥ ) as corresponding to the windows. The blue pentagons carry the π ⊥ -projections of shallow holes, whereas the black ones comprise the projections of deep holes. Note that for every window, there exists its own lattice. Thus even though there is a non-trivial intersection of windows, the resulting points must differ, as one expects. The gray points are the 20 th roots of unity scaled by the factor 2 5 .
This description shows that the set of vertices can be understood as 4 cut-and-project sets with lattices v * i + A 4 ⊂ S and windows π ⊥ V * (v * i ) ⊂ S ⊥ , 1 ⩽ i ⩽ 4. Figure 5 shows all four windows π ⊥ V * (v * i ) in S ⊥ , for more detail see Example 7.11. and Remark 7.8. in [3]. Once we have established the description of all vertices of T Pen (c ⊥ ), we can further determine a vertex configuration of each vertex, i.e. all tiles in T Pen (c ⊥ ) surrounding the vertex π ∥ (v * ). The description (4.1) provides us a characterization of the tiles surrounding π ∥ (v * ). Indeed, a tile π ∥ (P ) belongs to a vertex configuration of π ∥ (v * ) if and only if P ∈ V (2) , v * ∈ P and c ⊥ ∈ π ⊥ (P * ). The problem of finding a vertex configuration around an arbitrary vertex point can be reduced using translation symmetry. We can restrict ourselves to finding all vertex configurations around a representative of each translation class, i.e., around the points v * i . Then, we can rewrite the conditions above as P * − q(v * ) ⊂ V * (v * r(v * ) ) and c ⊥ − π ⊥ (q(v * )) ∈ π ⊥ (P * ) − π ⊥ (q(v * )). So, P belongs to a vertex configuration of a point v * if and only if it translate of its dual P * by q(v * ) is a 2-boundary of the dual cell V * (v * r(v * ) ). This gives an algorithm for obtaining the complete vertex configuration around the vertex π ∥ (v * ) as follows.
We chose c ⊥ so that c ⊥ − π ⊥ (q(w * )) lies in the interior of π ⊥ (P * ). This is a crucial observation. It forces all tiles π ∥ (w * ) + π ∥ (P ) belonging to a particular vertex configuration to have, at the level of π ⊥ (P * ), an overlap in the π ⊥ (V * (v * r(v * ) ). We can use this property to determine and characterise all possible vertex configurations with respect to translations in S ⊥ as follows: A set W ⊂ V (2) of 2-boundaries is a valid vertex configuration of a vertex of type i if and only if W is maximal with respect to the property that P ∈W π ⊥ (P * ) is nonempty. The projection of 2-boundaries of the dual cells V * (v * i ) divides the π ⊥ (V * (v * i )) into convex polygons, so-called elementary polygons [6]. They have pairwise distinct interiors, each representing a distinct vertex configuration (and vice versa). Figure 6 shows the elementary polygons for π ⊥ (V * (v * 1 )) and π ⊥ (V * (v * 3 )). The corresponding vertex configurations are shown in Figure 7.
The choice of the cutting plane ensures that the projections of the vertices of a valid infinite Penrose tiling into S ⊥ are dense and uniformly distributed. Thus, we can use them to determine the frequencies of the vertex configurations via the areas of elementary polygons. Denote by E an elementary polygon. Then, the relative frequency ν C (E) of vertex configuration C (E) corresponding to the elementary polygon E is given by i.e., exactly by the fraction of the total area of windows it occupies. We list the frequencies of all vertex configurations. We include the frequency of given patch as well as the cumulative frequency of all patches of the same type, i.e., all patches that lie in the same orbit under the rotation and space inversion.  Table 1. Frequencies of vertex configurations in Penrose tilings, all belonging to Q(τ ) with τ being the golden ratio. The second column shows frequencies of particular patches, those in Figure 7. The last column gives the total frequencies of a patch of a given type, i.e., a patch and all its images under the allowed rotations and space inversion.
The sum of all total frequencies equals one; thus, we get a consistency check. Since Penrose tiling defines a strictly ergodic dynamical system (in the usual way) [19], we conclude that there are no other vertex configurations. If there were any others, they would come with a strictly positive measure, which is the patch frequency.
Recall that the frequency module of a tiling space X (in our case, the tiling space generated by rhombic Penrose tilings) is the minimal Z-module M X that contains all frequencies of finite patches of the tiling. Here, we get the following specific result.  Proof. Consider any patch of the Penrose tiling. We can always find an n ∈ N such that this given patch is contained in a level-n supertile of some vertex configuration C . Since the Penrose tiling is an inflation/deflation tiling, its level-n supertiles around given vertex configuration are equivalent to the original vertex configuration scaled by factor τ n . Therefore, the supertile itself has a frequency given by 1 τ 2n ·ν C . The factor 1 τ 2n comes from the observation that the frequency is inversely proportional to the area. Since τ is a unit in Z[τ ], so is τ 2n . Thus, to determine the frequency module, it suffices to consider the Z-module generated by

General patch frequencies and their calculation
The idea behind the above construction can be extended to any patch in Penrose rhombic tilings. Choose a vertex of a tile and relate all tiles of the patch to this vertex. One has to be careful and consistently distinguish between deep and shallow holes. Then, one obtains a list of all tiles and their relative positions with respect to the chosen central tile. By transitioning into S ⊥ , one gets a list of all dual triangles and their relative distance. Their intersection determines the frequency of the patch in the same way as in the case of vertex configuration. This intersection is always a convex polygon (since one intersects a finite number of triangles), and its area can be computed easily. Note that some minimal subset of the triangles entirely determines this intersection, and working only with them can increase the computational speed considerably.
Let us list, in Figure 8, all possible tiles together with the shallow holes attached to each of them. We place them so that the shallow hole indicates the 'origin' relative to the given tile. More precisely, we depict them in coordinates which are translated by the shallow vertex of a given tile. We also include the dual tile and its projection in S ⊥ . The projection is also centred on the relative origin. There is an extra advantage of such a choice, namely, the vertices of dual triangles in S ⊥ are placed at the 20 th roots of unity scaled by the factor 2 5 .
Since the frequency is given by a ratio of two areas, the scaling factor does not play a role.
This allows a precise calculation, simply by employing a suitable subfield of Q(e πi 10 ). In fact, one can work with integer coefficients.
We can now describe the algorithm that allows us to determine the frequency of a given patch. We start with an arbitrary finite patch of the Penrose tiling.
(1) Detect all shallow holes in the patch. This can be done via the allowed vertex configurations. (2) Identify the type of each tile in the patch as R i , S i or their space inversions (RI i , SI i ) from list 8. (3) Choose any shallow hole, the "origin", from the vertices of the patch and fix it. (4) Make a list of all positions of all tiles (their shallow holes) relative to the "origin".
Since the edges of the rhombuses are projections π ∥ (a i ), the resulting position vector can always be written as i∈I ϵ i π ∥ (a i ) where I parametrises the path on the edges from the "origin" to the desired point ϵ i ∈ {±1} denotes the orientation of the vectors π ∥ (a i ) in the path. (5) Apply the dual correspondence, i.e., to each translated tile T + i∈I ϵ i π ∥ (a i ) assign the dual T * + i∈I ϵ i π ⊥ (a i ), with T ∈ {R i , S i , RI i , SI i }. (6) Find an intersection of all T * + i∈I ϵ i π ⊥ (a i ) from the list. This can be done via any clipping algorithm, for example the Sutherland-Hodgman algorithm [20]. (7) Calculate the area of the intersection.
(8) Divide the area of the intersection by the total area of the windows, i.e., with 5 5 + 2 √ 5 . This yields the relative frequency.
Note that one can choose any clipping algorithm since one has to deal with triangles only (for different lattices one obtains general convex polygons). Under this condition, most clipping algorithms are sufficiently robust. Moreover, at least the Sutherland-Hodgman algorithm ensures that the resulting coordinates of vertices of the intersection are contained in the same field as the coordinates of the polygons since each step of the algorithm relies on solving systems of two linear equations with coefficients being the coordinates of the vertices of the polygons.
Finally, computing the area of a polygon determined by its vertices can be done via the shoelace formula (or Gauss's area formula) [13, p. 125], which is also within the field.
Let us demonstrate the procedure on the following patch (this patch, called diamond ring, supports an eigenfunction of a discrete Laplacian on the Penrose tiling, see [8] for further details), see Figure 9a. This figure shows the initial data of the algorithm. Figure 9b shows the result of step 2 (determining the shallow holes) and of step 3 (labelling the tiles). Table 2 summarises the paths from the 'origin' (red point A) to (black) shallow holes (labelled with letters B, . . . , J), i.e., the relative translation vectors, i.e., the result of step 4. Finally, Figure  10 shows the result of the correspondence described in step 5, i.e., it depicts the corresponding dual triangles in the S ∥ and their intersection (step 6), which is, in this particular case, a triangle. Its area (step 7) is . Thus, the frequency of the diamond ring patch Figure 8. List of all possible tiles (with respect to their orientations and placement of a shallow hole) in rhombic Penrose tilings and their duals in S ⊥ . Tiles are depicted relative to the shallow hole. The exact correspondence between a tile in the list and a projection of a 2-boundary is, for example, the following. If a tile of type R 1 corresponds to π ∥ (P (− + ⃝ ⃝ +)), the dual triangle R * 1 is equal to π ⊥ (P * (− + ⃝ ⃝ +)) + π ⊥ (a 1 ), i.e., we capture its actual position in ⊥-space. Fixing the positions of the duals allows us to work in coordinates relative to a given point, the "origin". Then, everything is shifted by a suitable vector representing the relative distances of objects to the "origin".
(b) Patch after the identification Figure 9. The original diamond ring patch on the left and the same patch with indicated shallow holes (dots) and with a chosen "origin" (red dot). The tiles are labelled with respect to the shallow hole they contain. The picture on the right shows the situation after step 3 of the algorithm.

Shallow hole
Translation vector Table 2. The positions of shallow holes of the diamond ring patch relative to the "origin" A. In particular, this is the result of step 4. For better readability, we abbreviate π ⊥ (a i ) to a ⊥ i .
reads ν diam = 1 10 (34 − 21τ ) = 1 10 τ −8 ∈ M T Pen . The total frequency of this patch (i.e., of all its possible rotates and space inversions) is ν tot diam = 34 − 21τ . We include other patches mentioned in [8] in the Appendix. The algorithm for obtaining patch frequencies can also be used for an entire class of tilings, namely, for those tilings obtained via the dualisation method. Usually, there is no need for distinguishing between deep and shallow holes, which makes the procedure slightly easier. On the other hand, another restriction may occur, but the idea and the basic scheme remain the same. By interchanging the roles of triangles and rhombuses, one can obtain the Tübingen Triangle Tiling (TTT) [6]. Using a different root lattice, one can also get patch frequencies for a plethora of quasiperiodic tilings with eight-and twelve-fold symmetry, including the Ammann-Beenker tiling [4,5].

Appendix 1 -Exact results for patches in Penrose tiling
In Figures 11, 12, 13, 14, and 16, we depict other patches that appear in [8], and the corresponding dual triangles in ⊥-space. We also give the frequencies of these patches.

Appendix 2 -Ammann-Beenker tiling
Here, we briefly describe the setting for the Ammann-Bennker octagonal tiling. This tiling can be obtain via the dualisation of the 4-dimensional cubic lattice Z 4 = ⟨e 1 , e 2 , e 3 , e 4 ⟩ Z which is self-dual. Recall that the Voronoi cell around the origin is the 4-cube given as The dual cells of the corresponding Voronoi complex are of the form The symmetry group of the Voronoi cell is the hyperoctahedral group Ω(4) [2]. Taking the first two entries of each column of J, one gains the projections of the basis vectors into the ∥-space, whereas taking the third and fourth one gives their ⊥-projection. The projections are shown in Figure 18, and they already reveal the two shapes of tiles, namely a square, and a rhombus with the acute angle π 4 . The projections of the basis exhibit the desired octagonal symmetry. As above, we can project the 2-boundaries and get the Ammann-Beenker tiling as (5.1) T AB (c ⊥ ) = π ∥ (Q * ) : Q * is a 2-boundary, c ⊥ ∈ π ⊥ (Q) .
We choose the vector c ⊥ so that it does not belong to any 1-boundary of any Voronoi cell, similarly to the Penrose case. In contrast to the Penrose tiling, we project the dual boundaries into the ∥-space, but this does not cause any difficulties. The ⊥-projection of the Vorornoi cell with projections of two particular 2-boundaries is shown in Figure 20. The area of the projection (which is an octagon) is 1 + √ 2. Up to a translation, we have twelve different tiles -four rhombuses and eight squares (!). This, perhaps surprising, fact follows from the decorations of the Ammann-Beenker tiles, see [3] for further details. Figure 19 shows the tiles and their decorations. Figure 19. The decorated tiles for the Ammann-Beenker tiling. There are four different translation equivalent rhombus tiles and eight different square tiles. They differ by a rotation by an integer multiple of π 4 . In the case of the rhombus tiles, one has to decide for suitable representatives since the decorated tile possesses a rotation symmetry by π. We decided to pick up as the representatives the rhombus on the picture, and its rotates by π 4 , π 2 , and 3π 4 .
As in the case of the Penrose tiling, we can determine all elementary polygons and obtain all possible vertex configurations as shown in Figure 21.
0 Figure 20. Projection of the Voronoi cell V Z 4 (0) into the ⊥-space with two 2boundaries indicated. The yellow rhombus corresponds to π ⊥ (Q(− + ⃝⃝)) and the red square is π ⊥ (Q(+ ⃝ +⃝)). In contrast with the Penrose tiling, the centre of the window is placed in the origin.
Since there are no holes in this setting (as Z 4 is self-dual as a lattice), the algorithm for determining the patch frequencies has to be modified as follows. One has to replace 'the distinguishing between deep and shallow holes' in step 1 by 'decorating the tiles', and in step 3, one has to replace 'any shallow hole' with 'any vertex point', since there is only a single translation class. And, of course, in the last step, one has to divide by the accurate area of the window, in this case by 1 + √ 2. No other changes are needed. The patch frequencies are contained in the frequency module M T AB which reads M T AB = 1 2 Z[λ] with λ = 1 + √ 2, the silver mean [3, Ex. 7.9].
We enclose several patches of the Ammann-Beenker tiling which appear in [8] with their frequencies.