# Minimum Distance Optimization with Chord Edge Growth for High Girth Non-Binary LDPC Codes
## 4 Complexity Analysis and Design Examples
### Complexity Analysis  
This paper aims to design a method for configuring non-zero entries that are based on the FRC of a cycle, thus optimizing the global minimum distance of the NB-LDPC codes. For finite length codes, optimizing the allocation of non-zero entries in the parity-check matrix is a complicated permutation and combination problem. In addition, the number of cycles in the graph associated with the code is large, even for the ultra-sparse code, which increases the time complexity of the optimization process. In this subsection, the Hamiltonian graph shown in Figure 2 is first taken as an example to analyze the complexity of the proposed method in detail. The number of check nodes and number of chord edges are both 26, and the maximum cycle length considered is 16. Furthermore, when considering the design complexity of high code rate NB-LDPC codes, a more general discussion is provided to evaluate the complexity for designing NB-LDPC codes with any code rate. First, with the proposed method, the number of candidate non-zero entries for each chord edge is limited. The proposed method traverses the optional non-zero entries of each chord edge in a spanning tree manner and deletes nodes that do not satisfy the conditions. As the chord edge increases, a large number of branches that do not meet the criteria are deleted, thus avoiding the exponential growth of the number of branches. The number of branches is further reduced by applying the idea of grouping truncation. That is, after completing the configuration of non-zero entries for a certain chord edge, one of the candidate configurations of non-zero entries is randomly reserved. Figure 5 shows the number of candidate configurations for each chord edge in the Hamiltonian graph mentioned above. In the figure, the abscissa indicates the index of the newly added chord edge in the progressive chord edge growth, and the ordinate indicates the number of all candidate configurations of non-zero entries for the newly added chord edge. The Hamiltonian graph used has 26 chord edges and 26 vertices, and the truncation is performed after completing the configuration of non-zero entries for the sixth chord edge, sue to the large number of candidate configurations. For comparison, Figure 5 also shows the number of candidate configurations for each row while using the iterative and row-wise optimization method that was proposed by [PERSON] et al. [15]. Because the degree of the check node is four, a set of non-zero entries derives 24 different permutations. In the case of using three different sets of non-zero entries, there are 72 different permutation options for each row. Obviously, the number of considered configurations in the proposed method is much smaller than that by [PERSON] et al. [15]. Second, the proposed method for allocating non-zero entries in the progressive chord edge growth manner can effectively reduce the number of cycles that need FRC check compared with similar optimization methods. Figure 6 shows the number of associated cycles for processing each chord edge. The number of cycles that require FRC check gradually increases to about 140 as the chord edge grows while using the proposed method, while the number of considered cycles for each row using the scheme designed by [PERSON] et al. [15] is about 240. Applying the progressive chord edge growth strategy, the FRC check is only performed on the cycles that contain the newly added chord edge in the current sub-graph instead of the cycles containing the selected chord edge in the entire graph. Therefore, the number of associated cycles increases as the chord edge grows. Using the iterative and row-wise method, the cycles containing the selected check node in the entire graph are FRC checked, which results in the uniform distribution of the number of considered cycles for optimizing each row. For the last chord edge, the FRC check is performed on the cycles, including the chord edge in the entire graph, and the number of the cycles is still smaller than the number of cycles that are related to a row.