## 4 Optimizing the Node Structure  
In this section we devise an optimized structure of the information-bottleneck nodes. First, the general internal processing of the variable nodes and check nodes described in [10] is reviewed. We show that with this design approach the number of required look-up tables and look-up operations depends linearly on the node degree. Especially for LDPC codes with a high code rate, where check nodes with very high degree exist, this linear relation affects the latency tremendously. Our proposed novel tree-like look-up strategy enables a more efficient decoding in terms of space complexity and latency. Figure 1 depicts message passing decoding in a Tanner graph. Depending on the node type, the \(M\) incoming discrete messages \(\mathbf{y}=[y_{1},\ldots,y_{M}]^{\text{T}}\) are processed in different ways to generate an outgoing message \(t\). In general, it is possible to plug the joint distribution \(p(x,\mathbf{y})\) as input distribution in the information bottleneck algorithm. However, the vector \(\mathbf{y}\) with \(M\) entries, all taken from the discrete alphabet \(\mathcal{Y}\), can take up to \(|\mathcal{Y}|^{M}\) distinct combinations. In turn, a huge look-up table \(p(t|\mathbf{y})\) with \(|\mathcal{Y}|^{M}\) entries needs to stored. Even for small node degrees, this exponential growth of entries prohibits a  
direct practical implementation. This problem is tackled by partitioning the equality constraint at the variable nodes and the (mod 2)-sum at the check nodes into a serial concatenation of simple partial operations with only two inputs. Such a so-called _opened_ node is illustrated in Figure 7a. Due to the sequential concatenation of look-up tables, \(M-1\) different tables are required in each iteration and for each node degree. Since only two incoming discrete messages are used at a time, the size of the look-up table is \(|\mathcal{Y}|^{2}\). Thus, instead of one large table with \(|\mathcal{Y}|^{M}\) entries, in total \((M-1)\cdot|\mathcal{Y}|^{2}\) entries need to be stored for a decoder designed as in [10]. While decoding using the sequential design, \(M-1\) look-up operations have to be performed. The code rate of regular LDPC codes is \(R=1-\frac{d_{p}}{d_{c}}\), where \(d_{p}\) is the variable node degree and \(d_{c}\) denotes the check node degree. Consequently, to achieve a high code rate, very large check node degrees are required. In optical communications, often \(d_{c}>20\). Hence, the sequential design is very inefficient in terms of memory demand and latency due to the large number of required look-up tables. Instead, we propose a more efficient look-up strategy that requires fewer tables. The proposed design is sketched in Figure 7b. We denote the stage of the look-up tree with \(s\). We note that when using a tree-like pattern, the depth of the information bottleneck graph is reduced from \(\mathcal{O}(M-1)\) to \(\mathcal{O}(2\cdot\lfloor\log_{2}(M)\rfloor)\). The proposed tree-like structure makes use of the following observation: Since the look-up table depends only on the joint distribution which is the same if the \"type\" of incoming message is the same, it can be reused for the entire stage. That is, in the first stage (i.e., \(s=1\)), always to incoming messages \(y_{2i},\ y_{2i+1}\) are combined which have the same probability distribution and thus yield the same joint distribution no matter which particular incoming messages \(y_{i}\) are considered. In the next stage (i.e., \(s=2\)), the inputs to the look-up table are the result of the compression and respectively the look-up from the previous stage (i.e., \(t_{1,i}\)). Thus, these messages again have the same distribution and thus have the same joint distribution. This procedure continues until the final stage \(s=\log_{2}(M)\) is reached. In case \(M\) is not a power of two, at most \(2\cdot\lfloor\log_{2}(M)\rfloor\) look-up stages are needed. See Appendix A for a detailed derivation.