From ce9674883c2f61068d3a1c916f76a65d567b6f8e Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Sat, 15 Dec 2018 10:26:28 +0100 Subject: [PATCH] flattened first parity handling --- ldpc_decoder.hh | 40 +++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/ldpc_decoder.hh b/ldpc_decoder.hh index f68674c..17427c1 100644 --- a/ldpc_decoder.hh +++ b/ldpc_decoder.hh @@ -85,15 +85,13 @@ class LDPCDecoder if (i) { for (int n = 0; n < num; ++n) par[0].v[n] = parity[M*(i-1)+j+n]; + } else if (j) { + for (int n = 0; n < num; ++n) + par[0].v[n] = parity[M*(q-1)-1+j+n]; } else { - if (j) { - for (int n = 0; n < num; ++n) - par[0].v[n] = parity[j+(q-1)*M-1+n]; - } else { - par[0].v[0] = 127; - for (int n = 1; n < num; ++n) - par[0].v[n] = parity[j+(q-1)*M-1+n]; - } + par[0].v[0] = 127; + for (int n = 1; n < num; ++n) + par[0].v[n] = parity[M*(q-1)-1+j+n]; } for (int n = 0; n < num; ++n) par[1].v[n] = parity[M*i+j+n]; @@ -128,15 +126,13 @@ class LDPCDecoder if (i) { for (int n = 0; n < num; ++n) par[0].v[n] = parity[M*(i-1)+j+n]; + } else if (j) { + for (int n = 0; n < num; ++n) + par[0].v[n] = parity[M*(q-1)-1+j+n]; } else { - if (j) { - for (int n = 0; n < num; ++n) - par[0].v[n] = parity[j+(q-1)*M-1+n]; - } else { - par[0].v[0] = 127; - for (int n = 1; n < num; ++n) - par[0].v[n] = parity[j+(q-1)*M-1+n]; - } + par[0].v[0] = 127; + for (int n = 1; n < num; ++n) + par[0].v[n] = parity[M*(q-1)-1+j+n]; } for (int n = 0; n < num; ++n) par[1].v[n] = parity[M*i+j+n]; @@ -159,14 +155,12 @@ class LDPCDecoder if (i) { for (int n = 0; n < num; ++n) parity[M*(i-1)+j+n] = par[0].v[n]; + } else if (j) { + for (int n = 0; n < num; ++n) + parity[M*(q-1)-1+j+n] = par[0].v[n]; } else { - if (j) { - for (int n = 0; n < num; ++n) - parity[j+(q-1)*M-1+n] = par[0].v[n]; - } else { - for (int n = 1; n < num; ++n) - parity[j+(q-1)*M-1+n] = par[0].v[n]; - } + for (int n = 1; n < num; ++n) + parity[M*(q-1)-1+j+n] = par[0].v[n]; } for (int n = 0; n < num; ++n) parity[M*i+j+n] = par[1].v[n];