content_image/367277.jpg
To conserve computer memory and running time, the transfer matrix is converted into a product of sparse matrices as described below (see [16] for further details). This technique has proved to be very efficient in the transfer matrix study of the Potts model, the O( n ) loop and other lattice models [17–23]. 

The transfer matrix can be regarded as adding a new layer to the system. This process converts the transfer matrix T into a product of L +1 sparse matrices for kagome-type lattices of Fig. 1(b). The first sparse matrix T$_{1}$ adds one down-triangle with two ‘new’ corner sites on top of an ‘old’ site followed by a shift of labeling of sites. This gives rise to a new layer with L + 1 sites as shown in Figs. 8(a) and 8(b). The matrix T$_{1}$ is a $^{d$_{L}$$_{+1}$}$× d$_{L}$ rectangular matrix. The second sparse matrix T$_{2}$ adds one up- and one down-triangle simultaneously. By shifting the labels of the sites of the top (new) layer cyclically, T$_{2}$ brings in two new corner sites L and L + 1 on top of the current layer, and covers two old corner sites L + 1 and 1 , as shown in Figs. 8(b) and 8(c). T$_{2}$ is a $^{d$_{L}$$_{+1}$}$×d$_{L}$$_{+1}$ square matrix. After $^{L}$− 1 such steps, the graph is transformed to the one shown in Fig. 8(d). By adding an up-triangle on the two old sites L + 1 and 1 under cylindrical boundary condition, the last sparse matrix T$_{3}$ adds the last new corner site L to the system as shown from Figs. 8(d) and 8(e). Labels of the top sites are shifted and T$_{3}$ is a $^{d$_{L}$}$× d$_{L}$$_{+1}$ rectangular matrix. 

The transfer matrix T now assumes the form of a product of sparse matrices, 

<img src='content_image/367277.jpg'>

In the actual calculation, we need to store only the positions and values of the nonzero elements of each sparse matrix in a few one-dimensional arrays. 

In constructing these sparse matrices, one needs to enumerate all possible graphs inside the added (one or two) hatched triangles for a given connectedness of the partitions of the new and old layers. For example, in the construction of T$_{1}$ , we need to add a subnet shown $^{in Fig. 2 (flipped vertically). In the case of 1}$× 1 subnet, it is straightforward to enumerate all graphs manually. However, in the case of 2 × 2 and higher order subnets, it is tedious and sometimes impossible to count all possible graphs by hand. Therefore, we make use of a computer algorithm similar to the one used in obtaining expressions of A,B,C to count Δ n$_{b}$ and Δ n$_{c}$ . 

