Commit a65f59c8 authored by sebastian's avatar sebastian

Adapted all for BG2, still somethings not working... to debug

parent 6b5d2eee
......@@ -41,9 +41,9 @@
#define NR_LDPC_ENABLE_PARITY_CHECK
//#define NR_LDPC_PROFILER_DETAIL
#ifdef NR_LDPC_DEBUG_MODE
//#ifdef NR_LDPC_DEBUG_MODE
#include "nrLDPC_tools/nrLDPC_debug.h"
#endif
//#endif
static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDPC_procBuf* p_procBuf, uint32_t numLLR, t_nrLDPC_lut* p_lut, t_nrLDPC_dec_params* p_decParams, t_nrLDPC_time_stats* p_profiler);
......@@ -116,7 +116,14 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
#ifdef NR_LDPC_PROFILER_DETAIL
start_meas(&p_profiler->llr2CnProcBuf);
#endif
nrLDPC_llr2CnProcBuf(p_lut, p_llr, p_procBuf, Z);
if (BG == 1)
{
nrLDPC_llr2CnProcBuf_BG1(p_lut, p_llr, p_procBuf, Z);
}
else
{
nrLDPC_llr2CnProcBuf_BG2(p_lut, p_llr, p_procBuf, Z);
}
#ifdef NR_LDPC_PROFILER_DETAIL
stop_meas(&p_profiler->llr2CnProcBuf);
#endif
......@@ -158,7 +165,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
}
else
{
nrLDPC_cn2bnProcBuf(p_lut, p_procBuf, Z);
nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z);
}
#ifdef NR_LDPC_PROFILER_DETAIL
stop_meas(&p_profiler->cn2bnProcBuf);
......@@ -206,15 +213,16 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
}
else
{
nrLDPC_bn2cnProcBuf(p_lut, p_procBuf, Z);
nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z);
}
#ifdef NR_LDPC_PROFILER_DETAIL
stop_meas(&p_profiler->bn2cnProcBuf);
#endif
#ifdef NR_LDPC_DEBUG_MODE
//#ifdef NR_LDPC_DEBUG_MODE
nrLDPC_debug_initBuffer2File(nrLDPC_buffers_CN_PROC);
nrLDPC_debug_writeBuffer2File(nrLDPC_buffers_CN_PROC, p_procBuf);
#endif
//#endif
// Parity Check not necessary here since it will fail
// because first 2 cols/BNs in BG are punctured and cannot be
......@@ -257,7 +265,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
}
else
{
nrLDPC_cn2bnProcBuf(p_lut, p_procBuf, Z);
nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z);
}
#ifdef NR_LDPC_PROFILER_DETAIL
stop_meas(&p_profiler->cn2bnProcBuf);
......@@ -302,7 +310,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
}
else
{
nrLDPC_bn2cnProcBuf(p_lut, p_procBuf, Z);
nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z);
}
#ifdef NR_LDPC_PROFILER_DETAIL
stop_meas(&p_profiler->bn2cnProcBuf);
......@@ -368,7 +376,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
}
else
{
nrLDPC_cn2bnProcBuf(p_lut, p_procBuf, Z);
nrLDPC_cn2bnProcBuf_BG2(p_lut, p_procBuf, Z);
}
#ifdef NR_LDPC_PROFILER_DETAIL
stop_meas(&p_profiler->cn2bnProcBuf);
......@@ -416,7 +424,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP
}
else
{
nrLDPC_bn2cnProcBuf(p_lut, p_procBuf, Z);
nrLDPC_bn2cnProcBuf_BG2(p_lut, p_procBuf, Z);
}
#ifdef NR_LDPC_PROFILER_DETAIL
stop_meas(&p_profiler->bn2cnProcBuf);
......
......@@ -52,9 +52,44 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
// LUT that only depend on BG
p_lut->startAddrCnGroups = lut_startAddrCnGroups_BG2;
p_lut->posBnInCnProcBuf[0] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG3;
p_lut->posBnInCnProcBuf[1] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG4;
p_lut->posBnInCnProcBuf[2] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG5;
p_lut->posBnInCnProcBuf[3] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG6;
p_lut->posBnInCnProcBuf[4] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG8;
p_lut->posBnInCnProcBuf[5] = (const uint8_t**) posBnInCnProcBuf_BG2_CNG10;
p_lut->posBnInCnProcBuf[6] = NULL;
p_lut->posBnInCnProcBuf[7] = NULL;
p_lut->posBnInCnProcBuf[8] = NULL;
// LUT that only depend on R
if (R == 15)
{
p_lut->startAddrBnProcBuf[0] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG3;
p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG4;
p_lut->startAddrBnProcBuf[2] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG5;
p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG6;
p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG8;
p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG2_R15_CNG10;
p_lut->startAddrBnProcBuf[6] = NULL;
p_lut->startAddrBnProcBuf[7] = NULL;
p_lut->startAddrBnProcBuf[8] = NULL;
p_lut->bnPosBnProcBuf[0] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG3;
p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG4;
p_lut->bnPosBnProcBuf[2] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG5;
p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG6;
p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG8;
p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG2_R15_CNG10;
p_lut->bnPosBnProcBuf[6] = NULL;
p_lut->bnPosBnProcBuf[7] = NULL;
p_lut->bnPosBnProcBuf[8] = NULL;
p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG2_R15;
p_lut->llr2llrProcBufNumBn = llr2llrProcBufNumBn_BG2_R15;
p_lut->llr2llrProcBufNumEl = &llr2llrProcBufNumEl_BG2_R15;
p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R15;
p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R15;
p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R15;
......@@ -64,6 +99,30 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
}
else if (R == 13)
{
p_lut->startAddrBnProcBuf[0] = NULL;
p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG4;
p_lut->startAddrBnProcBuf[2] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG5;
p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG6;
p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG8;
p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG2_R13_CNG10;
p_lut->startAddrBnProcBuf[6] = NULL;
p_lut->startAddrBnProcBuf[7] = NULL;
p_lut->startAddrBnProcBuf[8] = NULL;
p_lut->bnPosBnProcBuf[0] = NULL;
p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG4;
p_lut->bnPosBnProcBuf[2] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG5;
p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG6;
p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG8;
p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG2_R13_CNG10;
p_lut->bnPosBnProcBuf[6] = NULL;
p_lut->bnPosBnProcBuf[7] = NULL;
p_lut->bnPosBnProcBuf[8] = NULL;
p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG2_R13;
p_lut->llr2llrProcBufNumBn = llr2llrProcBufNumBn_BG2_R13;
p_lut->llr2llrProcBufNumEl = &llr2llrProcBufNumEl_BG2_R13;
p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R13;
p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R13;
p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R13;
......@@ -71,8 +130,32 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->numEdgesPerBn = lut_numEdgesPerBn_BG2_R13;
numLLR = NR_LDPC_NCOL_BG2_R13*Z;
}
else if (R == 23)
{
else if (R == 23)
{
p_lut->startAddrBnProcBuf[0] = NULL;
p_lut->startAddrBnProcBuf[1] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG4;
p_lut->startAddrBnProcBuf[2] = NULL;
p_lut->startAddrBnProcBuf[3] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG6;
p_lut->startAddrBnProcBuf[4] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG8;
p_lut->startAddrBnProcBuf[5] = (const uint32_t**) startAddrBnProcBuf_BG2_R23_CNG10;
p_lut->startAddrBnProcBuf[6] = NULL;
p_lut->startAddrBnProcBuf[7] = NULL;
p_lut->startAddrBnProcBuf[8] = NULL;
p_lut->bnPosBnProcBuf[0] = NULL;
p_lut->bnPosBnProcBuf[1] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG4;
p_lut->bnPosBnProcBuf[2] = NULL;
p_lut->bnPosBnProcBuf[3] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG6;
p_lut->bnPosBnProcBuf[4] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG8;
p_lut->bnPosBnProcBuf[5] = (const uint8_t**) bnPosBnProcBuf_BG2_R23_CNG10;
p_lut->bnPosBnProcBuf[6] = NULL;
p_lut->bnPosBnProcBuf[7] = NULL;
p_lut->bnPosBnProcBuf[8] = NULL;
p_lut->llr2llrProcBufAddr = llr2llrProcBufAddr_BG2_R23;
p_lut->llr2llrProcBufNumBn = llr2llrProcBufNumBn_BG2_R23;
p_lut->llr2llrProcBufNumEl = &llr2llrProcBufNumEl_BG2_R23;
p_lut->numCnInCnGroups = lut_numCnInCnGroups_BG2_R23;
p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG2_R23;
p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG2_R23;
......@@ -1134,6 +1217,16 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
}
else if (Z == 384)
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG2_Z384_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG2_Z384_CNG4;
p_lut->circShift[2] = (const uint16_t**) circShift_BG2_Z384_CNG5;
p_lut->circShift[3] = (const uint16_t**) circShift_BG2_Z384_CNG6;
p_lut->circShift[4] = (const uint16_t**) circShift_BG2_Z384_CNG8;
p_lut->circShift[5] = (const uint16_t**) circShift_BG2_Z384_CNG10;
p_lut->circShift[6] = NULL;
p_lut->circShift[7] = NULL;
p_lut->circShift[8] = NULL;
if (R == 13)
{
p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG2_Z384_R13;
......@@ -1200,7 +1293,7 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R13;
p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R13;
p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R13;
p_lut->numEdgesPerBn = lut_numEdgesPerBn_BG1_R13;
numLLR = NR_LDPC_NCOL_BG1_R13*Z;
}
else if (R == 23)
......@@ -1233,7 +1326,7 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R23;
p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R23;
p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R23;
p_lut->numEdgesPerBn = lut_numEdgesPerBn_BG1_R23;
numLLR = NR_LDPC_NCOL_BG1_R23*Z;
}
else if (R == 89)
......@@ -1266,12 +1359,14 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->numBnInBnGroups = lut_numBnInBnGroups_BG1_R89;
p_lut->startAddrBnGroups = lut_startAddrBnGroups_BG1_R89;
p_lut->startAddrBnGroupsLlr = lut_startAddrBnGroupsLlr_BG1_R89;
p_lut->numEdgesPerBn = lut_numEdgesPerBn_BG1_R89;
numLLR = NR_LDPC_NCOL_BG1_R89*Z;
}
// LUT that depend on Z and R
if (Z == 2)
switch (Z)
{
case 2:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z2_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z2_CNG4;
......@@ -1282,27 +1377,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z2_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z2_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z2_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z2_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z2_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z2_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z2_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z2_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z2_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z2_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z2_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z2_R89;
}
break;
}
else if (Z == 3)
case 3:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z3_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z3_CNG4;
......@@ -1313,27 +1390,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z3_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z3_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z3_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z3_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z3_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z3_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z3_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z3_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z3_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z3_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z3_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z3_R89;
}
break;
}
else if (Z == 4)
case 4:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z4_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z4_CNG4;
......@@ -1344,27 +1403,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z4_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z4_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z4_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z4_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z4_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z4_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z4_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z4_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z4_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z4_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z4_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z4_R89;
}
break;
}
else if (Z == 5)
case 5:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z5_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z5_CNG4;
......@@ -1375,27 +1416,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z5_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z5_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z5_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z5_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z5_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z5_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z5_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z5_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z5_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z5_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z5_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z5_R89;
}
break;
}
else if (Z == 6)
case 6:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z6_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z6_CNG4;
......@@ -1406,27 +1429,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z6_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z6_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z6_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z6_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z6_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z6_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z6_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z6_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z6_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z6_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z6_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z6_R89;
}
break;
}
else if (Z == 7)
case 7:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z7_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z7_CNG4;
......@@ -1437,27 +1442,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z7_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z7_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z7_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z7_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z7_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z7_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z7_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z7_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z7_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z7_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z7_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z7_R89;
}
break;
}
else if (Z == 8)
case 8:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z8_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z8_CNG4;
......@@ -1468,27 +1455,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z8_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z8_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z8_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z8_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z8_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z8_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z8_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z8_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z8_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z8_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z8_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z8_R89;
}
break;
}
else if (Z == 9)
case 9:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z9_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z9_CNG4;
......@@ -1499,27 +1468,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z9_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z9_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z9_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z9_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z9_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z9_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z9_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z9_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z9_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z9_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z9_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z9_R89;
}
break;
}
else if (Z == 10)
case 10:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z10_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z10_CNG4;
......@@ -1530,27 +1481,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z10_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z10_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z10_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z10_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z10_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z10_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z10_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z10_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z10_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z10_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z10_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z10_R89;
}
break;
}
else if (Z == 11)
case 11:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z11_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z11_CNG4;
......@@ -1561,27 +1494,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z11_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z11_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z11_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z11_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z11_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z11_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z11_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z11_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z11_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z11_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z11_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z11_R89;
}
break;
}
else if (Z == 12)
case 12:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z12_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z12_CNG4;
......@@ -1592,27 +1507,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z12_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z12_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z12_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z12_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z12_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z12_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z12_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z12_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z12_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z12_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z12_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z12_R89;
}
break;
}
else if (Z == 13)
case 13:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z13_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z13_CNG4;
......@@ -1623,27 +1520,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z13_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z13_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z13_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z13_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z13_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z13_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z13_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z13_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z13_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z13_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z13_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z13_R89;
}
break;
}
else if (Z == 14)
case 14:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z14_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z14_CNG4;
......@@ -1654,27 +1533,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z14_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z14_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z14_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z14_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z14_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z14_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z14_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z14_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z14_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z14_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z14_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z14_R89;
}
break;
}
else if (Z == 15)
case 15:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z15_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z15_CNG4;
......@@ -1685,27 +1546,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z15_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z15_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z15_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z15_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z15_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z15_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z15_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z15_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z15_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z15_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z15_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z15_R89;
}
break;
}
else if (Z == 16)
case 16:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z16_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z16_CNG4;
......@@ -1716,27 +1559,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z16_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z16_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z16_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z16_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z16_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z16_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z16_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z16_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z16_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z16_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z16_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z16_R89;
}
break;
}
else if (Z == 18)
case 18:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z18_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z18_CNG4;
......@@ -1747,27 +1572,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z18_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z18_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z18_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z18_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z18_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z18_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z18_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z18_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z18_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z18_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z18_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z18_R89;
}
break;
}
else if (Z == 20)
case 20:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z20_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z20_CNG4;
......@@ -1778,27 +1585,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z20_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z20_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z20_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z20_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z20_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z20_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z20_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z20_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z20_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z20_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z20_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z20_R89;
}
break;
}
else if (Z == 22)
case 22:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z22_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z22_CNG4;
......@@ -1809,27 +1598,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z22_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z22_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z22_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z22_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z22_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z22_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z22_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z22_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z22_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z22_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z22_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z22_R89;
}
break;
}
else if (Z == 24)
case 24:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z24_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z24_CNG4;
......@@ -1840,27 +1611,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z24_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z24_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z24_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z24_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z24_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z24_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z24_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z24_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z24_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z24_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z24_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z24_R89;
}
break;
}
else if (Z == 26)
case 26:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z26_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z26_CNG4;
......@@ -1871,27 +1624,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z26_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z26_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z26_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z26_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z26_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z26_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z26_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z26_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z26_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z26_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z26_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z26_R89;
}
break;
}
else if (Z == 28)
case 28:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z28_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z28_CNG4;
......@@ -1902,27 +1637,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z28_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z28_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z28_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z28_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z28_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z28_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z28_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z28_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z28_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z28_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z28_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z28_R89;
}
break;
}
else if (Z == 30)
case 30:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z30_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z30_CNG4;
......@@ -1933,27 +1650,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z30_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z30_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z30_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z30_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z30_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z30_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z30_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z30_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z30_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z30_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z30_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z30_R89;
}
break;
}
else if (Z == 32)
case 32:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z32_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z32_CNG4;
......@@ -1964,27 +1663,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z32_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z32_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z32_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z32_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z32_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z32_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z32_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z32_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z32_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z32_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z32_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z32_R89;
}
break;
}
else if (Z == 36)
case 36:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z36_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z36_CNG4;
......@@ -1995,27 +1676,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z36_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z36_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z36_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z36_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z36_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z36_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z36_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z36_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z36_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z36_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z36_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z36_R89;
}
break;
}
else if (Z == 40)
case 40:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z40_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z40_CNG4;
......@@ -2026,27 +1689,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z40_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z40_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z40_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z40_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z40_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z40_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z40_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z40_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z40_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z40_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z40_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z40_R89;
}
break;
}
else if (Z == 44)
case 44:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z44_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z44_CNG4;
......@@ -2057,27 +1702,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z44_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z44_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z44_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z44_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z44_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z44_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z44_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z44_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z44_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z44_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z44_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z44_R89;
}
break;
}
else if (Z == 48)
case 48:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z48_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z48_CNG4;
......@@ -2088,27 +1715,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z48_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z48_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z48_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z48_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z48_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z48_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z48_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z48_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z48_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z48_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z48_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z48_R89;
}
break;
}
else if (Z == 52)
case 52:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z52_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z52_CNG4;
......@@ -2119,27 +1728,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z52_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z52_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z52_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z52_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z52_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z52_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z52_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z52_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z52_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z52_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z52_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z52_R89;
}
break;
}
else if (Z == 56)
case 56:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z56_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z56_CNG4;
......@@ -2150,27 +1741,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z56_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z56_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z56_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z56_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z56_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z56_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z56_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z56_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z56_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z56_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z56_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z56_R89;
}
break;
}
else if (Z == 60)
case 60:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z60_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z60_CNG4;
......@@ -2181,27 +1754,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z60_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z60_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z60_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z60_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z60_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z60_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z60_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z60_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z60_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z60_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z60_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z60_R89;
}
break;
}
else if (Z == 64)
case 64:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z64_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z64_CNG4;
......@@ -2212,27 +1767,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z64_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z64_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z64_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z64_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z64_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z64_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z64_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z64_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z64_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z64_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z64_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z64_R89;
}
break;
}
else if (Z == 72)
case 72:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z72_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z72_CNG4;
......@@ -2243,27 +1780,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z72_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z72_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z72_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z72_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z72_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z72_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z72_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z72_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z72_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z72_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z72_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z72_R89;
}
break;
}
else if (Z == 80)
case 80:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z80_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z80_CNG4;
......@@ -2274,27 +1793,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z80_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z80_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z80_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z80_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z80_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z80_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z80_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z80_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z80_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z80_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z80_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z80_R89;
}
break;
}
else if (Z == 88)
case 88:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z88_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z88_CNG4;
......@@ -2305,27 +1806,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z88_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z88_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z88_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z88_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z88_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z88_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z88_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z88_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z88_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z88_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z88_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z88_R89;
}
break;
}
else if (Z == 96)
case 96:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z96_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z96_CNG4;
......@@ -2336,27 +1819,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z96_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z96_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z96_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z96_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z96_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z96_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z96_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z96_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z96_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z96_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z96_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z96_R89;
}
break;
}
else if (Z == 104)
case 104:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z104_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z104_CNG4;
......@@ -2367,27 +1832,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z104_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z104_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z104_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z104_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z104_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z104_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z104_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z104_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z104_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z104_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z104_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z104_R89;
}
break;
}
else if (Z == 112)
case 112:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z112_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z112_CNG4;
......@@ -2398,27 +1845,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z112_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z112_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z112_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z112_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z112_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z112_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z112_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z112_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z112_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z112_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z112_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z112_R89;
}
break;
}
else if (Z == 120)
case 120:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z120_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z120_CNG4;
......@@ -2429,27 +1858,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z120_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z120_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z120_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z120_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z120_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z120_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z120_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z120_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z120_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z120_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z120_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z120_R89;
}
break;
}
else if (Z == 128)
case 128:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z128_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z128_CNG4;
......@@ -2460,27 +1871,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z128_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z128_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z128_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z128_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z128_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z128_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z128_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z128_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z128_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z128_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z128_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z128_R89;
}
break;
}
else if (Z == 144)
case 144:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z144_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z144_CNG4;
......@@ -2491,27 +1884,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z144_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z144_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z144_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z144_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z144_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z144_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z144_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z144_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z144_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z144_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z144_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z144_R89;
}
break;
}
else if (Z == 160)
case 160:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z160_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z160_CNG4;
......@@ -2522,27 +1897,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z160_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z160_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z160_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z160_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z160_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z160_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z160_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z160_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z160_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z160_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z160_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z160_R89;
}
break;
}
else if (Z == 176)
case 176:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z176_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z176_CNG4;
......@@ -2553,27 +1910,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z176_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z176_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z176_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z176_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z176_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z176_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z176_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z176_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z176_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z176_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z176_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z176_R89;
}
break;
}
else if (Z == 192)
case 192:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z192_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z192_CNG4;
......@@ -2584,27 +1923,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z192_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z192_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z192_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z192_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z192_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z192_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z192_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z192_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z192_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z192_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z192_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z192_R89;
}
break;
}
else if (Z == 208)
case 208:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z208_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z208_CNG4;
......@@ -2615,27 +1936,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z208_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z208_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z208_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z208_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z208_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z208_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z208_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z208_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z208_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z208_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z208_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z208_R89;
}
break;
}
else if (Z == 224)
case 224:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z224_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z224_CNG4;
......@@ -2646,27 +1949,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z224_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z224_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z224_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z224_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z224_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z224_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z224_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z224_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z224_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z224_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z224_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z224_R89;
}
break;
}
else if (Z == 240)
case 240:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z240_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z240_CNG4;
......@@ -2677,27 +1962,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z240_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z240_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z240_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z240_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z240_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z240_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z240_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z240_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z240_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z240_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z240_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z240_R89;
}
break;
}
else if (Z == 256)
case 256:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z256_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z256_CNG4;
......@@ -2708,27 +1975,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z256_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z256_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z256_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z256_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z256_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z256_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z256_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z256_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z256_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z256_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z256_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z256_R89;
}
break;
}
else if (Z == 288)
case 288:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z288_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z288_CNG4;
......@@ -2739,27 +1988,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z288_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z288_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z288_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z288_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z288_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z288_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z288_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z288_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z288_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z288_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z288_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z288_R89;
}
break;
}
else if (Z == 320)
case 320:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z320_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z320_CNG4;
......@@ -2770,27 +2001,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z320_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z320_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z320_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z320_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z320_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z320_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z320_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z320_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z320_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z320_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z320_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z320_R89;
}
break;
}
else if (Z == 352)
case 352:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z352_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z352_CNG4;
......@@ -2801,27 +2014,9 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z352_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z352_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z352_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z352_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z352_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z352_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z352_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z352_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z352_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z352_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z352_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z352_R89;
}
break;
}
else if (Z == 384)
case 384:
{
p_lut->circShift[0] = (const uint16_t**) circShift_BG1_Z384_CNG3;
p_lut->circShift[1] = (const uint16_t**) circShift_BG1_Z384_CNG4;
......@@ -2831,28 +2026,22 @@ static inline uint32_t nrLDPC_init(t_nrLDPC_dec_params* p_decParams, t_nrLDPC_lu
p_lut->circShift[5] = (const uint16_t**) circShift_BG1_Z384_CNG8;
p_lut->circShift[6] = (const uint16_t**) circShift_BG1_Z384_CNG9;
p_lut->circShift[7] = (const uint16_t**) circShift_BG1_Z384_CNG10;
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z384_CNG19;
if (R == 13)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z384_R13;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z384_R13;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z384_R13;
}
else if (R == 23)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z384_R23;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z384_R23;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z384_R23;
}
else if (R == 89)
{
//p_lut->llr2CnProcBuf = lut_llr2CnProcBuf_BG1_Z384_R89;
//p_lut->cn2bnProcBuf = lut_cn2bnProcBuf_BG1_Z384_R89;
//p_lut->llr2llrProcBuf = lut_llr2llrProcBuf_BG1_Z384_R89;
}
p_lut->circShift[8] = (const uint16_t**) circShift_BG1_Z384_CNG19;
break;
}
default:
{
p_lut->circShift[0] = NULL;
p_lut->circShift[1] = NULL;
p_lut->circShift[2] = NULL;
p_lut->circShift[3] = NULL;
p_lut->circShift[4] = NULL;
p_lut->circShift[5] = NULL;
p_lut->circShift[6] = NULL;
p_lut->circShift[7] = NULL;
p_lut->circShift[8] = NULL;
}
}
}
return numLLR;
......
......@@ -513,6 +513,320 @@ static const uint16_t circShift_BG1_Z320_CNG19[19][4] = {{73, 303, 68, 220},{15,
static const uint16_t circShift_BG1_Z256_CNG19[19][4] = {{250, 2, 106, 121},{69, 239, 111, 89},{226, 117, 185, 84},{159, 124, 63, 20},{100, 71, 117, 150},{10, 222, 93, 131},{59, 104, 229, 243},{229, 173, 177, 136},{110, 220, 95, 86},{191, 102, 39, 246},{9, 109, 142, 219},{195, 132, 225, 211},{23, 142, 225, 240},{190, 155, 245, 76},{35, 255, 205, 244},{239, 28, 251, 144},{31, 0, 117, 12},{1, 0, 0, 1},{0, 0, 0, 0}};
static const uint16_t circShift_BG1_Z384_CNG19[19][4] = {{307, 76, 205, 276},{19, 76, 250, 87},{50, 73, 328, 0},{369, 288, 332, 275},{181, 144, 256, 199},{216, 331, 161, 153},{317, 331, 267, 56},{288, 178, 160, 132},{109, 295, 63, 305},{17, 342, 129, 231},{357, 217, 200, 341},{215, 99, 88, 212},{106, 354, 53, 304},{242, 114, 131, 300},{180, 331, 240, 271},{330, 112, 205, 39},{346, 0, 13, 357},{1, 0, 0, 1},{0, 0, 0, 0}};
// BG2
// CNG3
static const uint16_t circShift_BG2_Z2_CNG3[3][6] = {{0, 0, 0, 0, 0, 1},{1, 0, 1, 0, 1, 1},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z3_CNG3[3][6] = {{2, 0, 1, 2, 0, 1},{1, 0, 2, 2, 2, 1},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z4_CNG3[3][6] = {{2, 0, 0, 2, 2, 3},{3, 0, 3, 0, 1, 3},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z5_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 0, 2, 4, 0, 4},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z6_CNG3[3][6] = {{2, 3, 1, 2, 3, 1},{4, 3, 2, 5, 2, 1},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z7_CNG3[3][6] = {{0, 1, 6, 3, 0, 5},{1, 3, 6, 5, 0, 5},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z8_CNG3[3][6] = {{6, 4, 0, 2, 2, 3},{7, 4, 7, 4, 1, 7},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z9_CNG3[3][6] = {{0, 2, 4, 7, 8, 7},{6, 0, 1, 7, 4, 2},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z10_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 5, 2, 4, 0, 4},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z11_CNG3[3][6] = {{7, 6, 9, 7, 7, 2},{9, 4, 5, 7, 5, 5},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z12_CNG3[3][6] = {{8, 9, 7, 2, 3, 1},{4, 9, 2, 5, 2, 7},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z13_CNG3[3][6] = {{7, 2, 12, 11, 11, 12},{9, 12, 11, 1, 7, 11},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z14_CNG3[3][6] = {{7, 1, 13, 10, 7, 12},{1, 10, 6, 5, 0, 12},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z15_CNG3[3][6] = {{0, 6, 4, 10, 6, 4},{14, 5, 1, 12, 1, 9},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z16_CNG3[3][6] = {{14, 4, 8, 2, 10, 11},{15, 12, 7, 12, 1, 7},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z18_CNG3[3][6] = {{0, 2, 13, 7, 8, 7},{6, 9, 10, 7, 13, 2},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z20_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 5, 12, 14, 0, 4},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z22_CNG3[3][6] = {{18, 6, 20, 7, 7, 13},{9, 4, 16, 7, 16, 16},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z24_CNG3[3][6] = {{20, 21, 7, 14, 3, 13},{4, 21, 2, 17, 2, 7},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z26_CNG3[3][6] = {{20, 15, 12, 24, 11, 25},{22, 12, 11, 1, 7, 11},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z28_CNG3[3][6] = {{21, 15, 27, 24, 7, 12},{1, 10, 6, 5, 14, 12},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z30_CNG3[3][6] = {{15, 6, 4, 25, 21, 4},{14, 5, 1, 27, 16, 24},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z32_CNG3[3][6] = {{30, 4, 8, 18, 10, 27},{31, 28, 23, 28, 1, 23},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z36_CNG3[3][6] = {{18, 20, 13, 25, 8, 25},{24, 27, 10, 25, 31, 20},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z40_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 25, 32, 34, 20, 24},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z44_CNG3[3][6] = {{18, 28, 42, 7, 29, 35},{31, 4, 16, 29, 16, 38},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z48_CNG3[3][6] = {{20, 45, 7, 14, 3, 37},{4, 21, 2, 17, 26, 31},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z52_CNG3[3][6] = {{46, 41, 12, 50, 11, 25},{22, 38, 37, 27, 33, 37},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z56_CNG3[3][6] = {{49, 43, 27, 52, 35, 40},{1, 38, 6, 5, 14, 12},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z60_CNG3[3][6] = {{15, 6, 4, 25, 21, 34},{44, 35, 1, 57, 46, 54},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z64_CNG3[3][6] = {{30, 36, 8, 18, 42, 27},{63, 28, 23, 28, 1, 23},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z72_CNG3[3][6] = {{54, 56, 13, 61, 8, 25},{60, 63, 10, 25, 67, 56},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z80_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 65, 32, 74, 20, 64},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z88_CNG3[3][6] = {{18, 72, 42, 51, 29, 79},{75, 48, 16, 73, 60, 38},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z96_CNG3[3][6] = {{20, 45, 7, 14, 3, 37},{52, 21, 50, 17, 74, 31},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z104_CNG3[3][6] = {{98, 93, 64, 50, 11, 77},{22, 90, 89, 27, 85, 89},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z112_CNG3[3][6] = {{49, 99, 27, 108, 35, 40},{1, 94, 6, 61, 70, 12},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z120_CNG3[3][6] = {{75, 66, 64, 25, 81, 34},{44, 95, 61, 57, 46, 114},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z128_CNG3[3][6] = {{94, 100, 8, 18, 106, 91},{63, 28, 23, 28, 1, 23},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z144_CNG3[3][6] = {{54, 128, 13, 133, 80, 97},{132, 63, 10, 25, 139, 56},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z160_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 65, 32, 154, 20, 144},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z176_CNG3[3][6] = {{18, 72, 42, 139, 117, 167},{163, 136, 104, 161, 148, 38},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z192_CNG3[3][6] = {{20, 45, 103, 110, 3, 37},{52, 21, 50, 17, 170, 31},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z208_CNG3[3][6] = {{202, 197, 168, 50, 115, 181},{126, 194, 193, 27, 189, 193},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z224_CNG3[3][6] = {{49, 211, 27, 108, 147, 40},{1, 94, 118, 61, 182, 12},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z240_CNG3[3][6] = {{195, 66, 64, 25, 201, 154},{44, 95, 181, 57, 46, 114},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z256_CNG3[3][6] = {{222, 228, 8, 18, 106, 219},{63, 156, 151, 28, 1, 151},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z288_CNG3[3][6] = {{54, 128, 13, 133, 80, 97},{132, 63, 10, 25, 139, 56},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z320_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{4, 65, 32, 154, 20, 144},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z352_CNG3[3][6] = {{18, 72, 42, 139, 117, 167},{163, 136, 104, 161, 148, 38},{0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z384_CNG3[3][6] = {{20, 45, 103, 110, 3, 37},{52, 21, 50, 17, 170, 31},{0, 0, 0, 0, 0, 0}};
// CNG4
static const uint16_t circShift_BG2_Z2_CNG4[4][20] = {{1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1},{0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1},{1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z3_CNG4[4][20] = {{0, 1, 0, 2, 0, 1, 1, 1, 1, 2, 1, 0, 0, 2, 2, 1, 0, 0, 1, 0},{2, 1, 0, 0, 0, 0, 1, 1, 2, 0, 0, 2, 2, 0, 1, 1, 1, 0, 2, 1},{2, 2, 2, 0, 1, 0, 0, 1, 2, 1, 0, 2, 1, 0, 0, 2, 1, 0, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z4_CNG4[4][20] = {{3, 2, 3, 3, 0, 3, 2, 0, 3, 2, 2, 2, 0, 3, 1, 0, 3, 3, 0, 1},{2, 2, 3, 3, 2, 0, 1, 2, 3, 3, 1, 0, 0, 1, 0, 2, 2, 0, 3, 1},{3, 2, 2, 1, 2, 1, 1, 2, 2, 0, 3, 2, 3, 0, 3, 2, 2, 2, 0, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z5_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{1, 0, 3, 3, 3, 3, 3, 2, 0, 4, 1, 0, 3, 4, 2, 3, 3, 4, 1, 2},{2, 2, 3, 4, 1, 4, 4, 3, 3, 2, 0, 2, 3, 3, 1, 2, 4, 3, 3, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z6_CNG4[4][20] = {{0, 4, 3, 2, 0, 4, 4, 1, 4, 2, 4, 0, 3, 5, 5, 1, 0, 3, 1, 3},{2, 4, 3, 3, 0, 0, 1, 1, 2, 3, 3, 2, 5, 3, 4, 1, 1, 0, 5, 1},{5, 2, 5, 3, 4, 0, 3, 1, 5, 4, 0, 5, 4, 0, 0, 2, 4, 3, 1, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z7_CNG4[4][20] = {{4, 0, 4, 4, 5, 0, 6, 3, 2, 6, 6, 3, 1, 1, 0, 1, 2, 1, 0, 1},{2, 1, 0, 4, 2, 5, 6, 1, 5, 4, 2, 0, 5, 5, 4, 0, 6, 6, 0, 3},{3, 5, 4, 5, 2, 2, 1, 4, 1, 0, 4, 5, 4, 6, 6, 6, 4, 0, 1, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z8_CNG4[4][20] = {{3, 6, 7, 3, 4, 7, 2, 4, 7, 6, 2, 2, 4, 3, 1, 4, 7, 7, 0, 1},{6, 6, 7, 7, 2, 4, 1, 2, 3, 3, 5, 4, 4, 5, 0, 6, 2, 4, 3, 5},{7, 6, 6, 5, 2, 1, 5, 2, 6, 0, 7, 6, 3, 4, 7, 2, 6, 2, 0, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z9_CNG4[4][20] = {{6, 7, 6, 4, 8, 7, 2, 1, 5, 3, 7, 5, 0, 1, 6, 4, 1, 2, 6, 3},{6, 6, 5, 6, 7, 1, 4, 3, 7, 6, 5, 8, 6, 7, 2, 3, 7, 5, 1, 2},{6, 7, 5, 2, 7, 5, 6, 0, 2, 2, 7, 8, 2, 6, 3, 8, 1, 7, 3, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z10_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{6, 5, 3, 3, 8, 8, 8, 7, 5, 9, 6, 0, 8, 9, 7, 3, 3, 4, 6, 2},{7, 7, 8, 9, 6, 4, 4, 3, 8, 7, 0, 2, 3, 8, 6, 2, 9, 8, 3, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z11_CNG4[4][20] = {{9, 9, 1, 5, 8, 2, 7, 2, 0, 3, 9, 6, 6, 0, 5, 7, 2, 10, 6, 0},{1, 9, 0, 4, 9, 3, 8, 1, 0, 9, 2, 7, 5, 8, 9, 0, 7, 6, 2, 6},{6, 7, 4, 7, 0, 2, 8, 7, 7, 6, 6, 10, 7, 8, 7, 8, 8, 6, 5, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z12_CNG4[4][20] = {{0, 10, 3, 8, 6, 10, 4, 1, 10, 2, 10, 0, 9, 5, 5, 1, 0, 9, 7, 3},{2, 10, 9, 3, 6, 6, 1, 7, 2, 9, 3, 8, 11, 9, 4, 7, 7, 0, 11, 7},{5, 8, 11, 9, 10, 0, 9, 7, 11, 4, 0, 5, 4, 0, 6, 2, 10, 9, 7, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z13_CNG4[4][20] = {{4, 10, 5, 5, 12, 6, 1, 10, 0, 9, 1, 6, 7, 2, 1, 2, 1, 12, 11, 9},{1, 8, 12, 4, 8, 7, 9, 5, 1, 5, 4, 0, 4, 9, 11, 11, 4, 1, 7, 2},{0, 9, 10, 11, 10, 0, 10, 10, 0, 10, 7, 7, 10, 11, 12, 10, 9, 4, 10, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z14_CNG4[4][20] = {{4, 7, 4, 4, 12, 7, 6, 10, 2, 13, 6, 10, 1, 1, 7, 1, 9, 8, 0, 8},{2, 1, 7, 4, 2, 12, 6, 1, 12, 4, 2, 7, 12, 5, 11, 7, 13, 13, 7, 3},{3, 12, 11, 12, 2, 2, 1, 11, 8, 7, 11, 12, 11, 13, 13, 13, 4, 0, 8, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z15_CNG4[4][20] = {{14, 11, 4, 8, 8, 9, 12, 13, 5, 6, 7, 14, 1, 4, 10, 13, 12, 2, 3, 8},{5, 4, 2, 7, 1, 9, 2, 13, 4, 4, 9, 14, 2, 0, 0, 7, 11, 0, 7, 5},{0, 0, 12, 7, 0, 13, 6, 11, 6, 10, 1, 11, 1, 6, 10, 1, 0, 9, 0, 5},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z16_CNG4[4][20] = {{3, 14, 15, 3, 12, 7, 10, 12, 7, 14, 2, 2, 4, 3, 9, 12, 15, 15, 0, 1},{6, 14, 15, 15, 2, 4, 9, 10, 11, 11, 5, 12, 4, 5, 8, 6, 2, 12, 11, 5},{7, 6, 14, 5, 2, 9, 13, 2, 14, 8, 7, 6, 11, 4, 15, 10, 6, 2, 8, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z18_CNG4[4][20] = {{6, 16, 15, 13, 17, 7, 2, 1, 14, 12, 16, 14, 9, 1, 6, 13, 1, 11, 6, 12},{6, 15, 14, 6, 16, 10, 13, 3, 7, 6, 5, 17, 6, 7, 11, 3, 16, 14, 1, 11},{15, 16, 5, 2, 16, 5, 6, 9, 2, 11, 7, 17, 2, 6, 3, 8, 1, 16, 12, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z20_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{16, 5, 13, 13, 18, 18, 8, 17, 15, 9, 6, 0, 8, 19, 17, 3, 13, 4, 16, 2},{17, 7, 8, 19, 6, 14, 4, 13, 18, 7, 10, 2, 13, 18, 6, 2, 19, 18, 3, 15},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z22_CNG4[4][20] = {{20, 9, 12, 5, 19, 13, 18, 2, 0, 3, 20, 6, 17, 11, 16, 7, 2, 21, 6, 0},{1, 9, 11, 15, 9, 3, 8, 12, 0, 20, 2, 7, 5, 19, 20, 0, 7, 6, 2, 6},{17, 7, 4, 18, 0, 13, 19, 18, 18, 17, 17, 10, 7, 8, 18, 19, 19, 17, 16, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z24_CNG4[4][20] = {{0, 22, 15, 20, 18, 10, 4, 13, 10, 14, 22, 12, 21, 5, 5, 1, 12, 21, 7, 3},{2, 22, 21, 15, 6, 18, 13, 7, 14, 9, 15, 8, 11, 9, 16, 7, 7, 12, 11, 7},{5, 8, 11, 9, 22, 12, 9, 19, 23, 16, 0, 17, 4, 12, 18, 2, 22, 9, 19, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z26_CNG4[4][20] = {{17, 23, 18, 18, 25, 6, 14, 10, 0, 9, 14, 6, 7, 15, 1, 15, 1, 25, 11, 9},{1, 21, 25, 4, 21, 20, 9, 18, 14, 5, 4, 0, 17, 9, 11, 11, 17, 1, 7, 15},{13, 22, 23, 24, 10, 0, 10, 23, 13, 10, 20, 7, 23, 11, 25, 23, 9, 17, 23, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z28_CNG4[4][20] = {{4, 7, 18, 4, 12, 7, 6, 24, 16, 13, 20, 24, 15, 1, 7, 1, 9, 22, 14, 8},{16, 15, 21, 4, 16, 26, 20, 15, 26, 4, 16, 21, 12, 5, 25, 7, 13, 13, 7, 17},{17, 12, 25, 26, 16, 2, 1, 25, 22, 7, 25, 26, 25, 13, 27, 27, 18, 14, 8, 25},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z30_CNG4[4][20] = {{29, 26, 4, 8, 8, 9, 27, 28, 5, 21, 7, 29, 16, 4, 25, 28, 12, 17, 18, 23},{20, 19, 2, 7, 1, 24, 17, 13, 4, 19, 24, 14, 2, 15, 15, 22, 11, 15, 7, 5},{0, 15, 12, 7, 0, 28, 6, 11, 21, 10, 16, 26, 16, 21, 25, 16, 15, 9, 0, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z32_CNG4[4][20] = {{19, 14, 31, 19, 28, 23, 26, 12, 23, 14, 2, 18, 4, 19, 25, 12, 31, 15, 0, 1},{22, 30, 15, 15, 2, 20, 9, 10, 11, 11, 5, 12, 4, 21, 8, 6, 2, 12, 11, 5},{7, 6, 14, 21, 18, 25, 29, 18, 14, 8, 7, 6, 11, 4, 31, 26, 6, 2, 24, 22},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z36_CNG4[4][20] = {{6, 34, 33, 31, 17, 7, 2, 19, 32, 30, 34, 32, 27, 1, 24, 13, 1, 11, 6, 12},{24, 33, 14, 24, 34, 28, 31, 3, 7, 6, 5, 17, 6, 25, 29, 21, 34, 32, 1, 11},{15, 16, 23, 20, 34, 5, 6, 9, 20, 29, 7, 35, 2, 6, 21, 26, 1, 34, 30, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z40_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{16, 25, 33, 33, 18, 38, 28, 17, 35, 29, 6, 20, 8, 19, 37, 23, 13, 24, 36, 2},{37, 7, 8, 19, 6, 34, 24, 33, 38, 7, 30, 2, 13, 38, 6, 2, 19, 18, 23, 15},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z44_CNG4[4][20] = {{42, 9, 34, 5, 41, 13, 40, 24, 22, 25, 20, 28, 17, 11, 38, 29, 24, 21, 28, 0},{23, 31, 11, 15, 31, 3, 8, 34, 0, 20, 24, 29, 5, 41, 20, 22, 7, 6, 24, 6},{39, 29, 4, 40, 22, 13, 41, 40, 18, 17, 17, 10, 29, 30, 40, 41, 19, 17, 38, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z48_CNG4[4][20] = {{24, 22, 39, 20, 42, 10, 28, 13, 10, 38, 22, 36, 21, 29, 29, 25, 36, 45, 7, 3},{26, 22, 45, 15, 6, 42, 13, 31, 38, 9, 15, 8, 35, 33, 40, 7, 7, 36, 11, 7},{29, 8, 11, 33, 46, 12, 9, 19, 47, 16, 24, 17, 28, 12, 18, 26, 46, 9, 19, 12},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z52_CNG4[4][20] = {{43, 49, 18, 18, 25, 6, 40, 10, 0, 9, 14, 6, 7, 41, 1, 41, 1, 25, 37, 35},{27, 21, 51, 4, 47, 20, 35, 18, 14, 5, 30, 0, 17, 35, 11, 11, 17, 1, 7, 41},{13, 22, 49, 50, 36, 0, 10, 23, 13, 36, 46, 7, 23, 37, 25, 23, 35, 17, 23, 11},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z56_CNG4[4][20] = {{32, 35, 46, 4, 12, 35, 6, 24, 44, 41, 48, 52, 15, 29, 35, 1, 37, 50, 42, 8},{16, 43, 49, 32, 16, 26, 20, 43, 54, 32, 44, 21, 12, 33, 53, 7, 41, 13, 35, 45},{45, 40, 53, 54, 44, 30, 29, 25, 22, 7, 25, 54, 53, 13, 55, 27, 46, 42, 36, 25},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z60_CNG4[4][20] = {{29, 56, 4, 38, 8, 39, 57, 58, 5, 21, 7, 59, 46, 4, 25, 58, 42, 47, 18, 53},{20, 49, 2, 37, 31, 24, 47, 13, 34, 19, 24, 14, 2, 15, 45, 52, 41, 45, 7, 35},{0, 45, 12, 37, 30, 28, 6, 11, 51, 10, 16, 56, 46, 21, 55, 46, 45, 9, 0, 50},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z64_CNG4[4][20] = {{51, 14, 63, 51, 28, 23, 26, 12, 23, 46, 34, 50, 4, 19, 57, 12, 31, 47, 0, 1},{22, 30, 47, 47, 2, 20, 41, 42, 43, 11, 37, 44, 36, 21, 40, 38, 2, 44, 11, 37},{7, 38, 14, 21, 50, 57, 29, 18, 46, 8, 7, 38, 43, 36, 63, 26, 38, 34, 56, 54},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z72_CNG4[4][20] = {{42, 70, 33, 67, 17, 7, 2, 19, 68, 30, 34, 32, 63, 37, 60, 49, 1, 47, 6, 48},{24, 69, 50, 24, 34, 28, 31, 3, 43, 42, 5, 17, 6, 25, 65, 57, 70, 32, 1, 47},{51, 16, 59, 56, 70, 41, 6, 9, 56, 29, 43, 71, 2, 42, 21, 26, 1, 70, 30, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z80_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{56, 65, 33, 73, 18, 78, 68, 17, 75, 69, 46, 20, 8, 19, 77, 63, 13, 24, 36, 2},{77, 7, 48, 19, 6, 74, 24, 33, 78, 7, 30, 42, 13, 78, 6, 2, 19, 58, 63, 55},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z88_CNG4[4][20] = {{86, 53, 34, 49, 85, 13, 40, 68, 22, 25, 64, 28, 17, 11, 38, 73, 24, 21, 72, 44},{67, 31, 11, 15, 31, 47, 52, 78, 44, 20, 24, 73, 49, 41, 64, 66, 7, 6, 68, 6},{83, 73, 4, 40, 22, 57, 85, 40, 62, 61, 61, 54, 29, 74, 84, 41, 19, 17, 82, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z96_CNG4[4][20] = {{72, 22, 39, 68, 90, 58, 76, 61, 10, 86, 70, 84, 69, 77, 77, 25, 84, 93, 7, 51},{74, 70, 93, 63, 6, 42, 61, 79, 86, 57, 15, 8, 83, 81, 88, 55, 55, 36, 11, 7},{29, 56, 11, 81, 46, 60, 57, 67, 95, 64, 72, 17, 28, 12, 18, 74, 94, 57, 67, 60},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z104_CNG4[4][20] = {{43, 101, 18, 70, 25, 6, 92, 10, 52, 9, 14, 6, 59, 93, 53, 93, 53, 77, 89, 87},{27, 73, 51, 4, 99, 20, 35, 18, 66, 57, 82, 0, 69, 87, 63, 63, 69, 53, 59, 93},{13, 22, 49, 102, 36, 52, 10, 23, 13, 88, 46, 59, 75, 89, 77, 75, 87, 69, 75, 63},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z112_CNG4[4][20] = {{88, 35, 46, 4, 68, 35, 6, 80, 44, 41, 104, 108, 71, 29, 91, 1, 37, 106, 98, 8},{16, 43, 105, 88, 16, 26, 20, 43, 54, 88, 100, 21, 12, 89, 53, 63, 97, 69, 35, 101},{101, 40, 109, 110, 44, 86, 29, 81, 22, 63, 81, 110, 109, 69, 55, 83, 46, 42, 36, 81},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z120_CNG4[4][20] = {{29, 56, 4, 38, 8, 39, 117, 118, 5, 81, 7, 59, 46, 64, 85, 58, 42, 47, 78, 53},{20, 49, 2, 97, 91, 84, 107, 13, 94, 19, 24, 14, 2, 15, 105, 112, 41, 45, 67, 95},{60, 105, 72, 37, 90, 88, 6, 11, 111, 10, 16, 116, 106, 21, 55, 106, 105, 69, 60, 110},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z128_CNG4[4][20] = {{51, 14, 63, 51, 92, 87, 26, 76, 23, 46, 98, 114, 4, 19, 57, 12, 31, 111, 0, 1},{86, 94, 111, 47, 66, 20, 105, 42, 107, 11, 101, 44, 36, 85, 40, 38, 66, 44, 75, 101},{71, 102, 14, 85, 50, 57, 29, 82, 110, 8, 7, 38, 107, 36, 63, 26, 38, 34, 120, 118},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z144_CNG4[4][20] = {{42, 70, 33, 139, 17, 79, 2, 91, 68, 30, 106, 32, 135, 37, 60, 121, 1, 119, 6, 48},{24, 69, 122, 96, 106, 28, 103, 75, 115, 42, 77, 89, 6, 25, 137, 129, 70, 32, 73, 47},{51, 88, 131, 128, 142, 41, 78, 81, 56, 101, 43, 71, 2, 114, 93, 26, 1, 142, 102, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z160_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{136, 65, 113, 73, 18, 158, 148, 17, 75, 69, 126, 20, 88, 19, 157, 63, 93, 24, 36, 2},{157, 87, 48, 99, 86, 154, 104, 33, 158, 87, 110, 122, 13, 78, 6, 82, 19, 138, 143, 55},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z176_CNG4[4][20] = {{86, 53, 122, 137, 173, 13, 128, 156, 110, 113, 64, 116, 105, 11, 126, 73, 112, 109, 160, 132},{67, 31, 11, 103, 31, 135, 52, 166, 132, 108, 24, 73, 137, 41, 152, 154, 7, 6, 156, 6},{83, 161, 4, 40, 22, 145, 173, 40, 150, 61, 149, 142, 29, 162, 172, 129, 19, 105, 82, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z192_CNG4[4][20] = {{72, 118, 39, 68, 186, 58, 76, 157, 106, 182, 70, 84, 165, 173, 77, 25, 84, 93, 103, 147},{74, 70, 93, 63, 6, 42, 61, 175, 86, 153, 111, 8, 179, 177, 184, 151, 151, 132, 107, 7},{29, 152, 11, 81, 46, 156, 153, 67, 95, 64, 168, 17, 124, 12, 18, 170, 190, 57, 163, 60},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z208_CNG4[4][20] = {{43, 101, 18, 174, 129, 110, 196, 10, 52, 113, 14, 110, 163, 197, 157, 197, 157, 181, 193, 191},{27, 177, 155, 108, 203, 124, 35, 122, 170, 161, 186, 0, 173, 191, 167, 167, 173, 157, 163, 197},{117, 22, 49, 102, 140, 52, 114, 23, 13, 88, 46, 163, 179, 193, 181, 179, 191, 173, 179, 167},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z224_CNG4[4][20] = {{200, 147, 46, 116, 68, 35, 6, 80, 156, 153, 216, 108, 71, 29, 91, 1, 37, 106, 98, 120},{16, 43, 217, 200, 16, 138, 20, 43, 54, 88, 212, 21, 12, 201, 165, 175, 97, 181, 35, 101},{101, 152, 109, 110, 156, 86, 141, 81, 134, 63, 193, 110, 109, 69, 55, 83, 46, 154, 36, 81},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z240_CNG4[4][20] = {{29, 176, 124, 38, 128, 39, 117, 238, 5, 81, 7, 179, 46, 184, 85, 178, 42, 167, 78, 53},{140, 169, 122, 217, 211, 84, 227, 13, 94, 19, 144, 14, 2, 135, 225, 112, 41, 45, 67, 215},{180, 225, 72, 157, 210, 88, 6, 11, 111, 130, 16, 116, 106, 141, 175, 106, 105, 189, 180, 230},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z256_CNG4[4][20] = {{179, 142, 63, 51, 220, 87, 26, 76, 23, 46, 98, 242, 132, 147, 57, 140, 31, 239, 0, 129},{214, 94, 111, 175, 194, 20, 105, 42, 235, 139, 101, 44, 164, 85, 40, 38, 66, 172, 75, 229},{71, 230, 14, 213, 50, 185, 29, 210, 238, 8, 135, 166, 235, 36, 63, 154, 38, 34, 120, 118},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z288_CNG4[4][20] = {{42, 70, 33, 139, 17, 79, 2, 91, 68, 30, 106, 32, 135, 37, 60, 121, 1, 119, 6, 48},{24, 69, 122, 96, 106, 28, 103, 75, 115, 42, 77, 89, 6, 25, 137, 129, 70, 32, 73, 47},{51, 88, 131, 128, 142, 41, 78, 81, 56, 101, 43, 71, 2, 114, 93, 26, 1, 142, 102, 19},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z320_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{136, 65, 113, 73, 18, 158, 148, 17, 75, 69, 126, 20, 88, 19, 157, 63, 93, 24, 36, 2},{157, 87, 48, 99, 86, 154, 104, 33, 158, 87, 110, 122, 13, 78, 6, 82, 19, 138, 143, 55},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z352_CNG4[4][20] = {{86, 53, 122, 137, 173, 13, 128, 156, 110, 113, 64, 116, 105, 11, 126, 73, 112, 109, 160, 132},{67, 31, 11, 103, 31, 135, 52, 166, 132, 108, 24, 73, 137, 41, 152, 154, 7, 6, 156, 6},{83, 161, 4, 40, 22, 145, 173, 40, 150, 61, 149, 142, 29, 162, 172, 129, 19, 105, 82, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z384_CNG4[4][20] = {{72, 118, 39, 68, 186, 58, 76, 157, 106, 182, 70, 84, 165, 173, 77, 25, 84, 93, 103, 147},{74, 70, 93, 63, 6, 42, 61, 175, 86, 153, 111, 8, 179, 177, 184, 151, 151, 132, 107, 7},{29, 152, 11, 81, 46, 156, 153, 67, 95, 64, 168, 17, 124, 12, 18, 170, 190, 57, 163, 60},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
// CNG5
static const uint16_t circShift_BG2_Z2_CNG5[5][9] = {{1, 1, 1, 1, 1, 1, 0, 1, 1},{1, 1, 0, 0, 1, 0, 0, 1, 0},{1, 0, 0, 0, 1, 0, 0, 0, 1},{1, 1, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z3_CNG5[5][9] = {{1, 2, 2, 1, 1, 0, 2, 1, 0},{0, 2, 2, 2, 1, 0, 2, 2, 1},{2, 1, 0, 2, 0, 0, 0, 1, 1},{1, 1, 1, 1, 1, 1, 0, 1, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z4_CNG5[5][9] = {{3, 3, 3, 3, 3, 3, 2, 1, 3},{1, 1, 0, 2, 1, 2, 0, 3, 0},{1, 0, 2, 2, 3, 0, 2, 0, 1},{3, 1, 0, 2, 0, 2, 0, 2, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z5_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{2, 2, 2, 2, 3, 4, 4, 0, 0},{1, 1, 4, 2, 2, 1, 4, 3, 1},{0, 0, 2, 1, 2, 3, 3, 2, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z6_CNG5[5][9] = {{4, 5, 2, 1, 1, 3, 2, 1, 0},{0, 2, 2, 5, 4, 3, 5, 5, 4},{5, 4, 0, 5, 3, 3, 3, 1, 4},{4, 4, 4, 4, 1, 4, 0, 1, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z7_CNG5[5][9] = {{2, 6, 1, 2, 1, 5, 6, 6, 1},{2, 3, 5, 1, 4, 4, 6, 6, 2},{2, 1, 5, 3, 5, 1, 3, 4, 3},{6, 0, 1, 0, 4, 6, 2, 6, 1},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z8_CNG5[5][9] = {{3, 3, 3, 3, 3, 3, 6, 5, 7},{5, 1, 4, 2, 1, 6, 4, 7, 0},{5, 0, 2, 6, 3, 0, 2, 0, 1},{7, 5, 0, 6, 0, 2, 0, 2, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z9_CNG5[5][9] = {{7, 1, 1, 4, 8, 3, 3, 7, 6},{4, 5, 3, 1, 6, 0, 7, 1, 2},{6, 2, 8, 8, 4, 1, 2, 1, 5},{4, 6, 1, 2, 7, 8, 6, 7, 7},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z10_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{7, 7, 7, 2, 8, 9, 4, 0, 5},{1, 6, 4, 2, 7, 1, 9, 3, 1},{5, 0, 2, 6, 7, 3, 8, 7, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z11_CNG5[5][9] = {{5, 1, 3, 7, 0, 1, 2, 3, 7},{10, 3, 10, 3, 2, 4, 1, 5, 8},{0, 9, 2, 5, 8, 6, 7, 9, 5},{9, 1, 9, 6, 1, 0, 9, 2, 7},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z12_CNG5[5][9] = {{4, 11, 8, 1, 7, 3, 2, 7, 0},{0, 8, 8, 5, 10, 9, 11, 5, 10},{5, 10, 6, 11, 9, 3, 9, 7, 4},{10, 4, 10, 10, 7, 4, 6, 1, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z13_CNG5[5][9] = {{4, 8, 0, 6, 0, 8, 5, 8, 5},{1, 8, 3, 1, 7, 5, 6, 3, 4},{10, 8, 9, 4, 0, 2, 12, 10, 11},{3, 12, 8, 4, 5, 7, 9, 5, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z14_CNG5[5][9] = {{2, 6, 1, 9, 8, 5, 6, 6, 8},{2, 10, 12, 1, 11, 4, 6, 6, 2},{2, 8, 12, 3, 12, 8, 10, 11, 3},{13, 0, 1, 0, 4, 13, 2, 6, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z15_CNG5[5][9] = {{2, 8, 13, 3, 7, 5, 1, 11, 7},{13, 7, 4, 12, 7, 8, 8, 6, 4},{3, 13, 3, 2, 9, 10, 0, 10, 11},{8, 7, 6, 9, 12, 7, 8, 11, 2},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z16_CNG5[5][9] = {{11, 11, 11, 3, 3, 11, 14, 13, 7},{13, 9, 12, 2, 1, 14, 12, 15, 0},{13, 0, 2, 6, 3, 8, 2, 0, 9},{7, 5, 8, 14, 8, 2, 0, 10, 4},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z18_CNG5[5][9] = {{7, 10, 10, 4, 17, 12, 12, 16, 15},{4, 5, 12, 1, 15, 9, 7, 10, 2},{6, 11, 8, 8, 4, 10, 11, 10, 14},{13, 6, 10, 11, 7, 8, 6, 7, 16},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z20_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{17, 17, 7, 12, 18, 19, 4, 0, 15},{11, 16, 4, 2, 17, 11, 9, 13, 11},{5, 0, 2, 6, 7, 3, 18, 7, 14},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z22_CNG5[5][9] = {{16, 1, 3, 7, 11, 12, 2, 14, 18},{10, 3, 21, 3, 13, 4, 1, 16, 19},{11, 20, 2, 5, 8, 17, 18, 9, 5},{20, 1, 9, 17, 12, 11, 9, 13, 7},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z24_CNG5[5][9] = {{4, 11, 8, 1, 19, 15, 14, 19, 0},{12, 8, 20, 5, 22, 9, 23, 17, 10},{17, 22, 6, 11, 21, 15, 9, 7, 4},{10, 4, 10, 22, 19, 16, 6, 13, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z26_CNG5[5][9] = {{4, 21, 13, 6, 13, 21, 5, 8, 18},{1, 8, 3, 1, 20, 5, 19, 16, 17},{23, 21, 9, 17, 0, 2, 12, 23, 24},{3, 25, 8, 4, 5, 20, 9, 5, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z28_CNG5[5][9] = {{2, 6, 15, 9, 8, 19, 20, 6, 22},{2, 10, 26, 1, 11, 18, 20, 6, 16},{16, 8, 26, 3, 12, 22, 10, 25, 17},{27, 0, 15, 0, 4, 13, 2, 6, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z30_CNG5[5][9] = {{17, 8, 28, 18, 22, 20, 16, 26, 7},{28, 7, 4, 27, 22, 23, 23, 6, 19},{18, 28, 18, 17, 24, 25, 15, 10, 11},{8, 22, 21, 9, 12, 22, 8, 26, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z32_CNG5[5][9] = {{11, 11, 11, 19, 19, 11, 30, 29, 7},{13, 25, 12, 2, 17, 14, 28, 15, 16},{29, 0, 18, 6, 3, 8, 18, 0, 9},{23, 21, 24, 30, 8, 18, 0, 26, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z36_CNG5[5][9] = {{25, 10, 28, 4, 35, 12, 12, 34, 15},{4, 5, 30, 1, 15, 9, 7, 28, 20},{24, 29, 8, 26, 22, 28, 29, 28, 32},{13, 24, 28, 11, 25, 8, 6, 25, 34},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z40_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{17, 17, 7, 32, 18, 39, 24, 20, 35},{11, 36, 4, 22, 17, 31, 29, 13, 11},{5, 20, 2, 26, 27, 23, 18, 7, 14},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z44_CNG5[5][9] = {{16, 23, 3, 29, 11, 34, 2, 36, 40},{10, 25, 43, 3, 13, 26, 23, 38, 41},{11, 42, 24, 27, 8, 17, 18, 9, 5},{20, 23, 9, 39, 34, 33, 31, 13, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z48_CNG5[5][9] = {{28, 11, 32, 1, 19, 39, 14, 19, 24},{36, 8, 44, 29, 22, 33, 23, 41, 10},{41, 22, 30, 35, 21, 39, 9, 7, 4},{34, 4, 10, 22, 19, 16, 6, 37, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z52_CNG5[5][9] = {{30, 21, 39, 32, 39, 21, 5, 8, 18},{27, 8, 29, 1, 20, 31, 45, 16, 17},{49, 21, 35, 43, 0, 2, 38, 49, 50},{29, 51, 8, 30, 5, 20, 35, 5, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z56_CNG5[5][9] = {{2, 6, 43, 37, 36, 19, 48, 34, 50},{30, 38, 26, 1, 39, 46, 20, 6, 44},{16, 8, 54, 31, 40, 22, 38, 53, 17},{27, 0, 43, 28, 4, 41, 2, 6, 8},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z60_CNG5[5][9] = {{47, 38, 58, 48, 22, 50, 16, 26, 37},{58, 37, 34, 57, 52, 23, 53, 6, 19},{48, 28, 48, 47, 24, 55, 15, 10, 41},{8, 52, 51, 39, 42, 22, 38, 26, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z64_CNG5[5][9] = {{11, 11, 11, 19, 51, 11, 62, 29, 7},{13, 57, 44, 2, 17, 14, 60, 15, 48},{61, 0, 18, 38, 3, 8, 50, 32, 9},{55, 53, 56, 30, 40, 50, 0, 58, 20},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z72_CNG5[5][9] = {{25, 46, 28, 4, 71, 48, 48, 70, 15},{40, 41, 30, 37, 51, 9, 43, 28, 56},{24, 29, 44, 62, 58, 28, 65, 28, 32},{49, 24, 64, 47, 25, 8, 42, 61, 70},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z80_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{17, 17, 7, 32, 58, 79, 24, 20, 35},{51, 76, 4, 22, 57, 31, 29, 13, 51},{5, 20, 2, 26, 27, 63, 18, 7, 54},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z88_CNG5[5][9] = {{16, 23, 3, 29, 11, 78, 46, 36, 84},{54, 25, 87, 3, 57, 70, 23, 38, 85},{11, 86, 24, 27, 8, 17, 62, 53, 5},{64, 23, 53, 39, 78, 77, 75, 57, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z96_CNG5[5][9] = {{28, 59, 32, 49, 19, 87, 62, 67, 24},{36, 8, 92, 29, 22, 81, 23, 41, 58},{89, 22, 78, 35, 21, 39, 9, 55, 52},{82, 52, 58, 70, 67, 64, 6, 85, 56},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z104_CNG5[5][9] = {{82, 21, 39, 32, 91, 21, 57, 60, 70},{27, 60, 29, 53, 20, 31, 97, 68, 17},{101, 73, 35, 95, 52, 54, 38, 49, 50},{81, 51, 8, 82, 5, 72, 35, 57, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z112_CNG5[5][9] = {{2, 62, 99, 37, 36, 75, 48, 90, 106},{30, 38, 26, 1, 95, 46, 20, 6, 44},{72, 8, 110, 31, 40, 22, 94, 109, 73},{83, 56, 99, 28, 4, 97, 2, 6, 64},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z120_CNG5[5][9] = {{47, 38, 58, 48, 82, 50, 76, 26, 37},{118, 97, 94, 57, 112, 23, 53, 66, 19},{48, 88, 48, 47, 84, 55, 75, 70, 101},{68, 112, 51, 99, 42, 82, 98, 86, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z128_CNG5[5][9] = {{75, 11, 11, 83, 115, 75, 126, 29, 71},{77, 57, 108, 2, 17, 14, 124, 15, 112},{61, 0, 82, 38, 3, 8, 114, 32, 9},{119, 117, 56, 94, 104, 114, 64, 122, 84},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z144_CNG5[5][9] = {{97, 46, 28, 76, 143, 48, 120, 142, 87},{40, 41, 30, 37, 51, 9, 43, 28, 56},{24, 101, 116, 62, 130, 28, 65, 100, 104},{49, 96, 64, 47, 97, 8, 42, 133, 70},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z160_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{97, 17, 7, 112, 138, 79, 24, 100, 35},{51, 156, 4, 102, 57, 111, 109, 13, 51},{85, 20, 2, 26, 27, 143, 18, 7, 134},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z176_CNG5[5][9] = {{104, 111, 91, 29, 11, 78, 134, 36, 84},{142, 25, 175, 91, 145, 158, 23, 38, 173},{99, 174, 24, 27, 8, 17, 62, 53, 93},{64, 23, 141, 127, 166, 165, 163, 145, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z192_CNG5[5][9] = {{28, 59, 32, 49, 19, 87, 158, 67, 120},{132, 104, 92, 125, 118, 177, 23, 137, 154},{185, 22, 174, 35, 21, 135, 9, 55, 52},{178, 52, 154, 166, 163, 64, 6, 85, 56},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z208_CNG5[5][9] = {{186, 125, 39, 32, 91, 125, 57, 164, 70},{27, 60, 29, 53, 20, 31, 201, 172, 17},{205, 177, 35, 95, 52, 54, 142, 49, 50},{81, 51, 8, 186, 109, 176, 35, 161, 6},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z224_CNG5[5][9] = {{2, 174, 99, 37, 36, 75, 48, 90, 106},{30, 150, 138, 113, 95, 158, 132, 6, 44},{184, 8, 110, 143, 40, 134, 206, 221, 185},{83, 56, 99, 140, 116, 97, 2, 6, 176},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z240_CNG5[5][9] = {{167, 38, 178, 48, 82, 170, 196, 146, 37},{238, 217, 214, 57, 232, 23, 173, 66, 139},{48, 208, 168, 167, 204, 175, 195, 190, 221},{68, 232, 51, 219, 162, 202, 218, 86, 17},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z256_CNG5[5][9] = {{203, 11, 11, 83, 115, 203, 254, 29, 71},{205, 185, 236, 2, 145, 142, 124, 143, 240},{61, 0, 210, 38, 3, 8, 114, 160, 9},{247, 117, 56, 222, 232, 242, 64, 122, 84},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z288_CNG5[5][9] = {{97, 46, 28, 76, 143, 48, 120, 142, 87},{40, 41, 30, 37, 51, 9, 43, 28, 56},{24, 101, 116, 62, 130, 28, 65, 100, 104},{49, 96, 64, 47, 97, 8, 42, 133, 70},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z320_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{97, 17, 7, 112, 138, 79, 24, 100, 35},{51, 156, 4, 102, 57, 111, 109, 13, 51},{85, 20, 2, 26, 27, 143, 18, 7, 134},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z352_CNG5[5][9] = {{104, 111, 91, 29, 11, 78, 134, 36, 84},{142, 25, 175, 91, 145, 158, 23, 38, 173},{99, 174, 24, 27, 8, 17, 62, 53, 93},{64, 23, 141, 127, 166, 165, 163, 145, 29},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint16_t circShift_BG2_Z384_CNG5[5][9] = {{28, 59, 32, 49, 19, 87, 158, 67, 120},{132, 104, 92, 125, 118, 177, 23, 137, 154},{185, 22, 174, 35, 21, 135, 9, 55, 52},{178, 52, 154, 166, 163, 64, 6, 85, 56},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
// CNG6
static const uint16_t circShift_BG2_Z2_CNG6[6][3] = {{1, 1, 1},{1, 0, 1},{0, 1, 0},{1, 0, 1},{1, 0, 0},{0, 0, 0}};
static const uint16_t circShift_BG2_Z3_CNG6[6][3] = {{1, 0, 2},{2, 2, 0},{1, 1, 1},{2, 1, 0},{0, 1, 2},{0, 0, 0}};
static const uint16_t circShift_BG2_Z4_CNG6[6][3] = {{3, 3, 1},{1, 0, 3},{2, 1, 0},{3, 0, 3},{3, 2, 0},{0, 0, 0}};
static const uint16_t circShift_BG2_Z5_CNG6[6][3] = {{0, 0, 0},{1, 4, 0},{2, 4, 3},{1, 0, 1},{4, 3, 3},{0, 0, 0}};
static const uint16_t circShift_BG2_Z6_CNG6[6][3] = {{4, 3, 2},{2, 2, 0},{1, 4, 4},{2, 1, 0},{0, 4, 5},{0, 0, 0}};
static const uint16_t circShift_BG2_Z7_CNG6[6][3] = {{3, 4, 5},{5, 6, 6},{2, 3, 0},{2, 5, 3},{4, 6, 6},{0, 0, 0}};
static const uint16_t circShift_BG2_Z8_CNG6[6][3] = {{7, 3, 1},{1, 4, 3},{2, 5, 4},{7, 4, 3},{7, 6, 4},{0, 0, 0}};
static const uint16_t circShift_BG2_Z9_CNG6[6][3] = {{4, 1, 7},{5, 6, 0},{3, 8, 8},{2, 7, 0},{8, 4, 2},{0, 0, 0}};
static const uint16_t circShift_BG2_Z10_CNG6[6][3] = {{0, 0, 0},{1, 4, 5},{2, 9, 8},{1, 5, 6},{4, 8, 8},{0, 0, 0}};
static const uint16_t circShift_BG2_Z11_CNG6[6][3] = {{2, 3, 4},{7, 0, 4},{2, 10, 2},{4, 1, 3},{5, 7, 0},{0, 0, 0}};
static const uint16_t circShift_BG2_Z12_CNG6[6][3] = {{10, 9, 8},{8, 8, 6},{1, 4, 4},{8, 1, 6},{0, 4, 11},{0, 0, 0}};
static const uint16_t circShift_BG2_Z13_CNG6[6][3] = {{6, 7, 7},{10, 8, 0},{10, 3, 0},{2, 12, 3},{10, 12, 6},{0, 0, 0}};
static const uint16_t circShift_BG2_Z14_CNG6[6][3] = {{3, 11, 5},{12, 13, 13},{2, 3, 7},{9, 12, 10},{11, 13, 13},{0, 0, 0}};
static const uint16_t circShift_BG2_Z15_CNG6[6][3] = {{1, 2, 11},{11, 12, 6},{4, 7, 12},{13, 4, 7},{12, 11, 4},{0, 0, 0}};
static const uint16_t circShift_BG2_Z16_CNG6[6][3] = {{7, 11, 1},{9, 4, 3},{2, 13, 12},{15, 12, 3},{7, 14, 4},{0, 0, 0}};
static const uint16_t circShift_BG2_Z18_CNG6[6][3] = {{4, 1, 7},{14, 15, 9},{12, 17, 17},{11, 7, 0},{17, 13, 11},{0, 0, 0}};
static const uint16_t circShift_BG2_Z20_CNG6[6][3] = {{0, 0, 0},{11, 4, 5},{2, 19, 8},{1, 5, 16},{4, 8, 18},{0, 0, 0}};
static const uint16_t circShift_BG2_Z22_CNG6[6][3] = {{13, 3, 4},{18, 0, 15},{13, 10, 2},{15, 1, 3},{16, 7, 11},{0, 0, 0}};
static const uint16_t circShift_BG2_Z24_CNG6[6][3] = {{10, 9, 8},{20, 20, 18},{1, 4, 16},{8, 1, 6},{0, 16, 23},{0, 0, 0}};
static const uint16_t circShift_BG2_Z26_CNG6[6][3] = {{6, 7, 7},{23, 8, 0},{10, 16, 13},{2, 12, 3},{10, 12, 6},{0, 0, 0}};
static const uint16_t circShift_BG2_Z28_CNG6[6][3] = {{17, 11, 19},{26, 27, 13},{2, 3, 21},{23, 26, 10},{25, 13, 13},{0, 0, 0}};
static const uint16_t circShift_BG2_Z30_CNG6[6][3] = {{1, 17, 26},{11, 12, 6},{19, 22, 27},{28, 4, 22},{27, 26, 4},{0, 0, 0}};
static const uint16_t circShift_BG2_Z32_CNG6[6][3] = {{7, 27, 1},{9, 4, 19},{2, 13, 12},{31, 28, 3},{7, 30, 20},{0, 0, 0}};
static const uint16_t circShift_BG2_Z36_CNG6[6][3] = {{4, 1, 25},{32, 15, 27},{12, 35, 35},{29, 25, 0},{35, 31, 29},{0, 0, 0}};
static const uint16_t circShift_BG2_Z40_CNG6[6][3] = {{0, 0, 0},{11, 4, 5},{22, 19, 28},{21, 5, 16},{24, 28, 38},{0, 0, 0}};
static const uint16_t circShift_BG2_Z44_CNG6[6][3] = {{35, 3, 4},{40, 22, 37},{35, 10, 24},{15, 23, 3},{16, 29, 11},{0, 0, 0}};
static const uint16_t circShift_BG2_Z48_CNG6[6][3] = {{10, 33, 32},{44, 44, 42},{25, 4, 16},{32, 1, 6},{0, 40, 47},{0, 0, 0}};
static const uint16_t circShift_BG2_Z52_CNG6[6][3] = {{32, 7, 7},{49, 34, 26},{36, 42, 39},{28, 12, 3},{10, 12, 6},{0, 0, 0}};
static const uint16_t circShift_BG2_Z56_CNG6[6][3] = {{17, 11, 47},{26, 55, 13},{2, 31, 49},{51, 54, 38},{25, 41, 13},{0, 0, 0}};
static const uint16_t circShift_BG2_Z60_CNG6[6][3] = {{1, 17, 26},{41, 12, 6},{49, 52, 27},{28, 4, 52},{27, 56, 34},{0, 0, 0}};
static const uint16_t circShift_BG2_Z64_CNG6[6][3] = {{39, 27, 1},{41, 36, 19},{2, 45, 12},{31, 28, 3},{39, 30, 52},{0, 0, 0}};
static const uint16_t circShift_BG2_Z72_CNG6[6][3] = {{40, 37, 25},{68, 15, 63},{12, 35, 35},{65, 61, 36},{71, 67, 65},{0, 0, 0}};
static const uint16_t circShift_BG2_Z80_CNG6[6][3] = {{0, 0, 0},{51, 44, 45},{62, 19, 68},{61, 45, 16},{64, 68, 78},{0, 0, 0}};
static const uint16_t circShift_BG2_Z88_CNG6[6][3] = {{79, 47, 48},{84, 66, 37},{35, 10, 24},{15, 67, 47},{60, 29, 55},{0, 0, 0}};
static const uint16_t circShift_BG2_Z96_CNG6[6][3] = {{10, 33, 80},{44, 92, 90},{25, 4, 16},{80, 49, 6},{48, 88, 47},{0, 0, 0}};
static const uint16_t circShift_BG2_Z104_CNG6[6][3] = {{32, 7, 59},{49, 34, 78},{36, 94, 39},{28, 64, 3},{62, 12, 58},{0, 0, 0}};
static const uint16_t circShift_BG2_Z112_CNG6[6][3] = {{73, 11, 103},{26, 55, 13},{58, 31, 105},{107, 110, 38},{81, 97, 69},{0, 0, 0}};
static const uint16_t circShift_BG2_Z120_CNG6[6][3] = {{1, 17, 86},{41, 72, 66},{49, 52, 87},{88, 4, 52},{87, 56, 34},{0, 0, 0}};
static const uint16_t circShift_BG2_Z128_CNG6[6][3] = {{103, 27, 1},{41, 100, 19},{66, 45, 12},{31, 28, 3},{103, 30, 116},{0, 0, 0}};
static const uint16_t circShift_BG2_Z144_CNG6[6][3] = {{40, 109, 97},{140, 87, 135},{84, 107, 35},{137, 133, 108},{71, 139, 65},{0, 0, 0}};
static const uint16_t circShift_BG2_Z160_CNG6[6][3] = {{0, 0, 0},{131, 124, 45},{142, 99, 148},{141, 45, 96},{64, 148, 78},{0, 0, 0}};
static const uint16_t circShift_BG2_Z176_CNG6[6][3] = {{79, 47, 48},{84, 154, 125},{35, 10, 24},{103, 155, 47},{60, 29, 55},{0, 0, 0}};
static const uint16_t circShift_BG2_Z192_CNG6[6][3] = {{10, 129, 80},{44, 92, 186},{121, 100, 16},{80, 49, 102},{48, 184, 143},{0, 0, 0}};
static const uint16_t circShift_BG2_Z208_CNG6[6][3] = {{136, 7, 163},{49, 34, 78},{36, 198, 143},{132, 168, 107},{62, 12, 58},{0, 0, 0}};
static const uint16_t circShift_BG2_Z224_CNG6[6][3] = {{185, 123, 103},{138, 55, 13},{170, 31, 105},{219, 222, 150},{193, 209, 181},{0, 0, 0}};
static const uint16_t circShift_BG2_Z240_CNG6[6][3] = {{121, 137, 86},{41, 72, 186},{169, 172, 87},{88, 124, 172},{207, 56, 154},{0, 0, 0}};
static const uint16_t circShift_BG2_Z256_CNG6[6][3] = {{231, 155, 129},{41, 228, 147},{194, 45, 140},{159, 28, 3},{103, 158, 116},{0, 0, 0}};
static const uint16_t circShift_BG2_Z288_CNG6[6][3] = {{40, 109, 97},{140, 87, 135},{84, 107, 35},{137, 133, 108},{71, 139, 65},{0, 0, 0}};
static const uint16_t circShift_BG2_Z320_CNG6[6][3] = {{0, 0, 0},{131, 124, 45},{142, 99, 148},{141, 45, 96},{64, 148, 78},{0, 0, 0}};
static const uint16_t circShift_BG2_Z352_CNG6[6][3] = {{79, 47, 48},{84, 154, 125},{35, 10, 24},{103, 155, 47},{60, 29, 55},{0, 0, 0}};
static const uint16_t circShift_BG2_Z384_CNG6[6][3] = {{10, 129, 80},{44, 92, 186},{121, 100, 16},{80, 49, 102},{48, 184, 143},{0, 0, 0}};
// CNG8
static const uint16_t circShift_BG2_Z2_CNG8[8][2] = {{1, 1},{1, 0},{0, 0},{0, 0},{1, 0},{1, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z3_CNG8[8][2] = {{0, 1},{1, 0},{1, 0},{0, 2},{2, 0},{1, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z4_CNG8[8][2] = {{1, 1},{1, 2},{0, 0},{2, 0},{1, 0},{1, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z5_CNG8[8][2] = {{0, 0},{0, 4},{0, 4},{0, 4},{0, 3},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z6_CNG8[8][2] = {{0, 1},{1, 0},{4, 3},{0, 2},{5, 0},{4, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z7_CNG8[8][2] = {{2, 5},{5, 5},{2, 4},{6, 2},{4, 0},{1, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z8_CNG8[8][2] = {{1, 1},{5, 2},{4, 4},{2, 4},{5, 0},{5, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z9_CNG8[8][2] = {{3, 5},{8, 7},{8, 2},{8, 2},{7, 3},{1, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z10_CNG8[8][2] = {{0, 0},{0, 4},{0, 9},{0, 9},{0, 8},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z11_CNG8[8][2] = {{2, 10},{0, 3},{3, 8},{3, 5},{7, 10},{2, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z12_CNG8[8][2] = {{6, 1},{1, 6},{10, 9},{6, 2},{11, 6},{4, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z13_CNG8[8][2] = {{0, 9},{6, 7},{7, 8},{9, 1},{1, 2},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z14_CNG8[8][2] = {{2, 12},{12, 5},{9, 4},{13, 9},{11, 7},{8, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z15_CNG8[8][2] = {{10, 14},{11, 1},{11, 3},{6, 8},{8, 5},{7, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z16_CNG8[8][2] = {{9, 1},{5, 2},{12, 12},{10, 4},{13, 0},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z18_CNG8[8][2] = {{3, 5},{8, 16},{17, 2},{17, 2},{7, 3},{1, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z20_CNG8[8][2] = {{0, 0},{0, 14},{0, 19},{0, 9},{0, 8},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z22_CNG8[8][2] = {{2, 10},{11, 14},{14, 19},{3, 16},{18, 10},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z24_CNG8[8][2] = {{6, 1},{1, 18},{22, 21},{18, 14},{23, 18},{4, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z26_CNG8[8][2] = {{13, 22},{19, 7},{20, 21},{9, 1},{14, 2},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z28_CNG8[8][2] = {{16, 12},{26, 19},{23, 18},{13, 23},{11, 7},{8, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z30_CNG8[8][2] = {{25, 14},{11, 1},{11, 3},{21, 23},{23, 5},{22, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z32_CNG8[8][2] = {{9, 17},{21, 18},{12, 12},{26, 20},{29, 16},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z36_CNG8[8][2] = {{3, 23},{26, 34},{17, 20},{35, 2},{7, 3},{19, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z40_CNG8[8][2] = {{0, 20},{0, 14},{0, 19},{0, 9},{0, 28},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z44_CNG8[8][2] = {{24, 10},{11, 36},{14, 19},{3, 38},{40, 10},{35, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z48_CNG8[8][2] = {{30, 25},{1, 18},{22, 21},{18, 14},{23, 18},{28, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z52_CNG8[8][2] = {{39, 22},{19, 7},{20, 47},{9, 27},{40, 28},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z56_CNG8[8][2] = {{16, 40},{54, 19},{23, 46},{13, 23},{39, 35},{8, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z60_CNG8[8][2] = {{25, 14},{11, 31},{11, 3},{21, 53},{23, 35},{52, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z64_CNG8[8][2] = {{9, 17},{53, 50},{12, 44},{26, 52},{61, 48},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z72_CNG8[8][2] = {{3, 23},{26, 34},{53, 20},{35, 38},{43, 39},{55, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z80_CNG8[8][2] = {{0, 20},{0, 14},{0, 19},{0, 9},{0, 28},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z88_CNG8[8][2] = {{68, 10},{55, 80},{14, 19},{3, 82},{40, 54},{35, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z96_CNG8[8][2] = {{78, 25},{1, 18},{70, 21},{66, 14},{71, 18},{76, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z104_CNG8[8][2] = {{39, 22},{19, 59},{72, 47},{61, 79},{92, 28},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z112_CNG8[8][2] = {{72, 40},{110, 19},{23, 46},{69, 79},{95, 91},{8, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z120_CNG8[8][2] = {{25, 74},{11, 31},{71, 3},{21, 53},{23, 35},{112, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z128_CNG8[8][2] = {{9, 81},{117, 114},{76, 44},{26, 52},{61, 112},{77, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z144_CNG8[8][2] = {{3, 95},{26, 106},{53, 92},{35, 110},{115, 111},{127, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z160_CNG8[8][2] = {{0, 20},{0, 94},{0, 99},{0, 9},{0, 108},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z176_CNG8[8][2] = {{156, 98},{143, 168},{14, 107},{3, 82},{40, 142},{123, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z192_CNG8[8][2] = {{174, 25},{97, 114},{166, 117},{66, 110},{71, 114},{172, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z208_CNG8[8][2] = {{143, 126},{19, 163},{176, 47},{165, 183},{196, 132},{13, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z224_CNG8[8][2] = {{72, 152},{110, 131},{23, 46},{181, 191},{95, 91},{8, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z240_CNG8[8][2] = {{145, 74},{131, 31},{71, 3},{21, 53},{23, 155},{112, 0},{1, 0},{0, 0}};
static const uint16_t circShift_BG2_Z256_CNG8[8][2] = {{9, 81},{117, 114},{204, 44},{26, 52},{189, 240},{205, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z288_CNG8[8][2] = {{3, 95},{26, 106},{53, 92},{35, 110},{115, 111},{127, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z320_CNG8[8][2] = {{0, 20},{0, 94},{0, 99},{0, 9},{0, 108},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z352_CNG8[8][2] = {{156, 98},{143, 168},{14, 107},{3, 82},{40, 142},{123, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z384_CNG8[8][2] = {{174, 25},{97, 114},{166, 117},{66, 110},{71, 114},{172, 1},{0, 0},{0, 0}};
// CNG10
static const uint16_t circShift_BG2_Z2_CNG10[10][2] = {{1, 0},{0, 0},{1, 0},{1, 0},{0, 1},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z3_CNG10[10][2] = {{0, 1},{0, 1},{0, 2},{2, 0},{1, 0},{1, 1},{2, 1},{0, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z4_CNG10[10][2] = {{3, 0},{2, 2},{1, 2},{1, 0},{2, 1},{0, 2},{0, 2},{0, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z5_CNG10[10][2] = {{2, 3},{4, 0},{0, 2},{0, 1},{3, 2},{0, 2},{0, 3},{0, 1},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z6_CNG10[10][2] = {{3, 4},{0, 1},{0, 5},{2, 0},{1, 3},{1, 4},{5, 4},{3, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z7_CNG10[10][2] = {{4, 3},{2, 6},{3, 1},{2, 5},{3, 5},{4, 5},{1, 2},{3, 0},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z8_CNG10[10][2] = {{7, 0},{6, 2},{5, 6},{5, 0},{2, 1},{4, 6},{0, 2},{4, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z9_CNG10[10][2] = {{1, 3},{4, 4},{5, 4},{3, 4},{3, 1},{8, 4},{6, 2},{5, 7},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z10_CNG10[10][2] = {{7, 8},{4, 5},{0, 2},{0, 6},{8, 2},{0, 7},{0, 3},{5, 6},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z11_CNG10[10][2] = {{6, 9},{10, 9},{8, 9},{1, 6},{0, 6},{4, 1},{6, 6},{1, 6},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z12_CNG10[10][2] = {{3, 4},{0, 7},{0, 5},{8, 0},{7, 3},{7, 10},{5, 4},{3, 6},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z13_CNG10[10][2] = {{5, 10},{1, 9},{3, 5},{11, 7},{3, 8},{4, 3},{1, 9},{11, 4},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z14_CNG10[10][2] = {{11, 3},{2, 6},{3, 8},{2, 12},{3, 12},{4, 12},{1, 2},{3, 7},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z15_CNG10[10][2] = {{7, 14},{9, 6},{3, 5},{12, 5},{6, 9},{8, 4},{9, 13},{2, 0},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z16_CNG10[10][2] = {{7, 8},{6, 10},{13, 14},{13, 8},{2, 1},{12, 6},{0, 2},{12, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z18_CNG10[10][2] = {{1, 12},{4, 13},{14, 4},{12, 4},{12, 1},{8, 13},{15, 2},{14, 7},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z20_CNG10[10][2] = {{17, 18},{4, 15},{0, 2},{0, 6},{8, 12},{0, 17},{0, 13},{15, 6},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z22_CNG10[10][2] = {{17, 9},{21, 20},{19, 20},{1, 17},{11, 17},{15, 1},{17, 17},{1, 17},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z24_CNG10[10][2] = {{3, 16},{12, 7},{0, 17},{20, 0},{7, 3},{19, 22},{17, 4},{3, 18},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z26_CNG10[10][2] = {{18, 10},{1, 22},{3, 18},{24, 7},{3, 21},{17, 3},{14, 9},{24, 4},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z28_CNG10[10][2] = {{25, 17},{16, 6},{3, 8},{16, 12},{3, 12},{4, 26},{1, 16},{3, 21},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z30_CNG10[10][2] = {{22, 29},{24, 21},{3, 5},{27, 20},{6, 9},{23, 19},{9, 13},{17, 15},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z32_CNG10[10][2] = {{7, 8},{6, 26},{29, 30},{29, 8},{2, 17},{28, 22},{0, 18},{28, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z36_CNG10[10][2] = {{19, 12},{22, 13},{32, 22},{30, 4},{12, 1},{26, 13},{33, 20},{14, 7},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z40_CNG10[10][2] = {{17, 38},{4, 15},{0, 22},{0, 26},{8, 12},{0, 17},{0, 13},{15, 6},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z44_CNG10[10][2] = {{17, 9},{21, 42},{19, 42},{1, 39},{11, 17},{37, 1},{39, 17},{1, 17},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z48_CNG10[10][2] = {{27, 40},{36, 31},{0, 17},{44, 24},{31, 27},{43, 22},{41, 28},{3, 42},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z52_CNG10[10][2] = {{18, 36},{27, 48},{3, 18},{50, 7},{29, 47},{17, 3},{14, 35},{24, 4},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z56_CNG10[10][2] = {{53, 17},{44, 6},{3, 36},{44, 12},{3, 12},{32, 54},{29, 44},{31, 21},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z60_CNG10[10][2] = {{22, 59},{54, 51},{3, 35},{27, 50},{36, 39},{23, 19},{9, 43},{47, 15},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z64_CNG10[10][2] = {{39, 8},{38, 58},{61, 30},{61, 40},{34, 17},{28, 54},{32, 18},{60, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z72_CNG10[10][2] = {{19, 48},{22, 49},{32, 22},{66, 4},{12, 1},{26, 49},{69, 56},{50, 7},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z80_CNG10[10][2] = {{57, 38},{44, 15},{0, 22},{0, 66},{8, 12},{0, 57},{0, 53},{55, 46},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z88_CNG10[10][2] = {{17, 53},{65, 86},{63, 86},{1, 39},{55, 17},{37, 1},{83, 17},{45, 17},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z96_CNG10[10][2] = {{27, 40},{36, 79},{48, 17},{92, 72},{31, 27},{91, 22},{89, 28},{3, 90},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z104_CNG10[10][2] = {{18, 36},{27, 48},{3, 18},{102, 7},{81, 99},{17, 3},{14, 87},{76, 56},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z112_CNG10[10][2] = {{53, 73},{44, 6},{3, 36},{44, 12},{3, 12},{88, 110},{29, 44},{31, 21},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z120_CNG10[10][2] = {{22, 119},{54, 51},{63, 95},{27, 110},{96, 39},{23, 79},{9, 43},{47, 75},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z128_CNG10[10][2] = {{39, 8},{38, 58},{125, 30},{125, 104},{98, 81},{28, 54},{96, 18},{124, 0},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z144_CNG10[10][2] = {{19, 120},{94, 121},{104, 22},{66, 4},{84, 73},{98, 49},{69, 128},{50, 79},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z160_CNG10[10][2] = {{137, 38},{124, 15},{0, 102},{0, 146},{88, 12},{0, 57},{0, 53},{55, 46},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z176_CNG10[10][2] = {{17, 53},{65, 174},{63, 174},{1, 127},{55, 17},{37, 89},{171, 17},{133, 105},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z192_CNG10[10][2] = {{27, 136},{36, 175},{48, 113},{92, 72},{31, 123},{187, 118},{185, 28},{3, 186},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z208_CNG10[10][2] = {{18, 36},{27, 48},{3, 18},{102, 111},{185, 203},{17, 3},{14, 191},{180, 160},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z224_CNG10[10][2] = {{53, 185},{156, 6},{115, 36},{156, 124},{115, 124},{200, 110},{29, 156},{31, 133},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z240_CNG10[10][2] = {{142, 239},{174, 171},{183, 95},{27, 110},{96, 159},{23, 199},{9, 43},{167, 75},{0, 1},{0, 0}};
static const uint16_t circShift_BG2_Z256_CNG10[10][2] = {{167, 8},{166, 58},{253, 158},{125, 104},{226, 209},{156, 54},{224, 18},{252, 128},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z288_CNG10[10][2] = {{19, 120},{94, 121},{104, 22},{66, 4},{84, 73},{98, 49},{69, 128},{50, 79},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z320_CNG10[10][2] = {{137, 38},{124, 15},{0, 102},{0, 146},{88, 12},{0, 57},{0, 53},{55, 46},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z352_CNG10[10][2] = {{17, 53},{65, 174},{63, 174},{1, 127},{55, 17},{37, 89},{171, 17},{133, 105},{0, 0},{0, 0}};
static const uint16_t circShift_BG2_Z384_CNG10[10][2] = {{27, 136},{36, 175},{48, 113},{92, 72},{31, 123},{187, 118},{185, 28},{3, 186},{0, 0},{0, 0}};
// Startaddressses in the BN buffer of the different CN groups
// BG1
// Group of CNs with 3 BNs (CNG3) / only this group is independent of Z
......@@ -580,6 +894,59 @@ static const uint8_t bnPosBnProcBuf_BG1_R23_CNG19[19][4] = {{0, 0, 0, 0},{0, 0,
static const uint32_t startAddrBnProcBuf_BG1_R89_CNG19[19][4] = {{28416, 28800, 29184, 29568},{26880, 10752, 27264, 27648},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 10752, 10752, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 2688, 10752, 18816},{2688, 10752, 10752, 18816},{2688, 10752, 18816, 18816},{2688, 10752, 10752, 18816},{2688, 1536, 1536, 18816},{384, 384, 384, 1536}};
static const uint8_t bnPosBnProcBuf_BG1_R89_CNG19[19][4] = {{0, 0, 0, 0},{0, 0, 0, 0},{0, 1, 0, 1},{1, 2, 2, 2},{3, 3, 3, 4},{4, 5, 4, 5},{7, 6, 5, 6},{8, 7, 6, 8},{9, 9, 7, 9},{10, 10, 8, 10},{11, 12, 11, 11},{13, 13, 12, 12},{14, 14, 13, 14},{16, 15, 15, 15},{17, 17, 16, 16},{18, 19, 17, 18},{19, 20, 18, 19},{20, 0, 1, 20},{0, 1, 2, 2}};
// BG2
// CNG3
static const uint32_t startAddrBnProcBuf_BG2_R15_CNG3[3][6] = {{72960, 64128, 64512, 64896, 74112, 31872},{34176, 49536, 23040, 17664, 40320, 41088},{0, 0, 0, 0, 0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R15_CNG3[3][6] = {{0, 0, 0, 0, 0, 0},{0, 0, 0, 1, 0, 0},{18, 21, 23, 25, 27, 33}};
// CNG4
// R15
static const uint32_t startAddrBnProcBuf_BG2_R15_CNG4[4][20] = {{59520, 60672, 70272, 62208, 62592, 62976, 72576, 63360, 63744, 73344, 73728, 65280, 36096, 65664, 74496, 66048, 74880, 66432, 36864, 75264},{67968, 69120, 16896, 29568, 22656, 72192, 16896, 20352, 17664, 34560, 35328, 50688, 45696, 31872, 51072, 36480, 51456, 46464, 32640, 51840},{52992, 28032, 54912, 55680, 44544, 30336, 56832, 39552, 49152, 25728, 49920, 31104, 31104, 40704, 57216, 46080, 57600, 32640, 41472, 57984},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R15_CNG4[4][20] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},{0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},{0, 4, 8, 11, 14, 15, 16, 17, 19, 20, 24, 28, 29, 30, 31, 32, 34, 35, 36, 37}};
// R13
static const uint32_t startAddrBnProcBuf_BG2_R13_CNG4[4][8] = {{36096, 37248, 43776, 38784, 39168, 39552, 46080, 39936},{41472, 42624, 9984, 20352, 22272, 45696, 9984, 22272},{30720, 11520, 32640, 33408, 29568, 22272, 34560, 26496},{0, 0, 0, 0, 0, 0, 0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R13_CNG4[4][8] = {{0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 4, 1, 0, 1, 2},{0, 0, 0, 0, 0, 4, 0, 0},{0, 4, 8, 11, 14, 15, 16, 17}};
// R23
static const uint32_t startAddrBnProcBuf_BG2_R23_CNG4[4][1] = {{18816},{16128},{15360},{0}};
static const uint8_t bnPosBnProcBuf_BG2_R23_CNG4[4][1] = {{0},{0},{1},{0}};
// CNG5
// R15
static const uint32_t startAddrBnProcBuf_BG2_R15_CNG5[5][9] = {{69504, 61056, 61440, 61824, 71040, 71424, 71808, 34944, 35712},{19584, 69888, 44160, 70656, 22272, 25344, 48768, 44928, 50304},{28800, 21888, 24960, 19968, 55296, 56064, 56448, 30336, 45312},{54528, 43776, 38400, 38784, 39168, 28800, 29568, 39936, 26112},{0, 0, 0, 0, 0, 0, 0, 0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R15_CNG5[5][9] = {{0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 1, 0},{0, 0, 0, 0, 0, 1, 1, 0, 0},{5, 6, 7, 9, 10, 12, 13, 22, 26}};
// R13
static const uint32_t startAddrBnProcBuf_BG2_R13_CNG5[5][7] = {{43008, 37632, 38016, 38400, 44544, 44928, 45312},{18432, 43392, 29184, 44160, 20352, 22272, 22272},{18432, 18432, 20352, 20352, 33024, 33792, 34176},{32256, 28800, 25344, 25728, 26112, 11904, 12288},{0, 0, 0, 0, 0, 0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R13_CNG5[5][7] = {{0, 0, 0, 0, 0, 0, 0},{2, 0, 0, 0, 1, 3, 0},{4, 1, 3, 2, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0},{5, 6, 7, 9, 10, 12, 13}};
// R23
// none
// CNG6
// R15
static const uint32_t startAddrBnProcBuf_BG2_R15_CNG6[6][3] = {{59904, 60288, 68736},{68352, 48000, 48384},{47616, 43008, 43392},{42624, 24576, 54144},{53376, 53760, 38016},{0, 0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R15_CNG6[6][3] = {{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0},{1, 2, 3}};
// R13
static const uint32_t startAddrBnProcBuf_BG2_R13_CNG6[6][3] = {{36480, 36864, 42240},{41856, 18432, 20352},{16512, 28032, 28416},{27648, 18432, 31872},{31104, 31488, 24960},{0, 0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R13_CNG6[6][3] = {{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 3, 0},{0, 0, 0},{1, 2, 3}};
// R23
static const uint32_t startAddrBnProcBuf_BG2_R23_CNG6[6][2] = {{19200, 19584},{16896, 12672},{11520, 12672},{11520, 12672},{16128, 16896},{0, 0}};
static const uint8_t bnPosBnProcBuf_BG2_R23_CNG6[6][2] = {{0, 0},{0, 0},{0, 1},{1, 2},{1, 1},{1, 2}};
// CNG8
// R15
static const uint32_t startAddrBnProcBuf_BG2_R15_CNG8[8][2] = {{58368, 59136},{66816, 67200},{33408, 16128},{14592, 15360},{20736, 18816},{23424, 27264},{26496, 27264},{52224, 37248}};
static const uint8_t bnPosBnProcBuf_BG2_R15_CNG8[8][2] = {{0, 0},{0, 0},{0, 0},{0, 1},{0, 0},{0, 0},{0, 1},{0, 0}};
// R13
static const uint32_t startAddrBnProcBuf_BG2_R13_CNG8[8][2] = {{34944, 35712},{40320, 40704},{6912, 9216},{7680, 8448},{12672, 14592},{12672, 14592},{12672, 11136},{29952, 24192}};
static const uint8_t bnPosBnProcBuf_BG2_R13_CNG8[8][2] = {{0, 0},{0, 0},{0, 0},{0, 1},{1, 2},{3, 4},{4, 0},{0, 0}};
// R23
static const uint32_t startAddrBnProcBuf_BG2_R23_CNG8[8][2] = {{17664, 18432},{13824, 14592},{1152, 7296},{3456, 5376},{3456, 5376},{9216, 5376},{3456, 2304},{13824, 1152}};
static const uint8_t bnPosBnProcBuf_BG2_R23_CNG8[8][2] = {{0, 0},{0, 0},{0, 0},{0, 1},{2, 3},{2, 4},{4, 1},{1, 2}};
// CNG10
// R15
static const uint32_t startAddrBnProcBuf_BG2_R15_CNG10[10][2] = {{58752, 67584},{15360, 33792},{14592, 16128},{46848, 47232},{21120, 21504},{41856, 42240},{18432, 19200},{23808, 24192},{52608, 28032},{26496, 37632}};
static const uint8_t bnPosBnProcBuf_BG2_R15_CNG10[10][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{1, 0}};
// R13
static const uint32_t startAddrBnProcBuf_BG2_R13_CNG10[10][2] = {{35328, 41088},{8448, 7296},{7680, 9216},{12672, 14592},{14592, 16512},{26880, 27264},{12672, 16512},{14592, 16512},{30336, 16512},{10752, 24576}};
static const uint8_t bnPosBnProcBuf_BG2_R13_CNG10[10][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{1, 1},{0, 0},{2, 2},{3, 3},{0, 4},{0, 0}};
// R23
static const uint32_t startAddrBnProcBuf_BG2_R23_CNG10[10][2] = {{18048, 15360},{5376, 2304},{3456, 7296},{9216, 10368},{5376, 7296},{9216, 10368},{3456, 7296},{10368, 11520},{14592, 7296},{1152, 2304}};
static const uint8_t bnPosBnProcBuf_BG2_R23_CNG10[10][2] = {{0, 0},{0, 0},{1, 1},{0, 0},{2, 2},{1, 1},{3, 3},{2, 2},{1, 4},{1, 2}};
// LUT for llr2llrProcBuf
// BG1
......@@ -596,6 +963,20 @@ static const uint16_t llr2llrProcBufAddr_BG1_R89[4] = {9984,9600,1536,384};
static const uint8_t llr2llrProcBufNumBn_BG1_R89[4] = {1,1,21,3};
static const uint8_t llr2llrProcBufNumEl_BG1_R89 = 4;
// BG2
// R15
static const uint16_t llr2llrProcBufAddr_BG2_R15[13] = {19200,19584,17280,14592,18432,15744,18048,15360,16128,16512,18816,16896,17664};
static const uint8_t llr2llrProcBufNumBn_BG2_R15[13] = {1,1,1,2,1,1,1,1,1,1,1,1,1};
static const uint8_t llr2llrProcBufNumEl_BG2_R15 = 13;
// R13
static const uint16_t llr2llrProcBufAddr_BG2_R13[10] = {11520,11904,6912,7296,8448,10752,9216,11136,8064,10368};
static const uint8_t llr2llrProcBufNumBn_BG2_R13[10] = {1,1,1,2,2,1,3,1,1,1};
static const uint8_t llr2llrProcBufNumEl_BG2_R13 = 10;
// R23
static const uint16_t llr2llrProcBufAddr_BG2_R23[12] = {6144,5376,1152,2304,4224,3072,4608,3456,4992,3840,5760,1536};
static const uint8_t llr2llrProcBufNumBn_BG2_R23[12] = {1,1,1,2,1,1,1,1,1,1,1,2};
static const uint8_t llr2llrProcBufNumEl_BG2_R23 = 12;
// LUT for llr2cnProcBuf
// LUTs are not rate dependent, however the number of CN in a CNG varies with rate
// CNG3
......@@ -618,6 +999,13 @@ static const uint8_t posBnInCnProcBuf_BG1_CNG10[10][1] = {{0},{1},{3},{12},{16},
// CNG19
static const uint8_t posBnInCnProcBuf_BG1_CNG19[19][4] = {{0, 0, 0, 0},{1, 2, 1, 1},{2, 3, 2, 3},{3, 4, 4, 4},{5, 5, 5, 6},{6, 7, 6, 7},{9, 8, 7, 8},{10, 9, 8, 10},{11, 11, 9, 11},{12, 12, 10, 12},{13, 14, 13, 13},{15, 15, 14, 14},{16, 16, 15, 16},{18, 17, 17, 17},{19, 19, 18, 18},{20, 21, 19, 20},{21, 22, 20, 21},{22, 23, 24, 22},{23, 24, 25, 25}};
// BG2
static const uint8_t posBnInCnProcBuf_BG2_CNG3[3][6] = {{1, 0, 0, 0, 1, 10},{2, 5, 6, 4, 13, 13},{32, 35, 37, 39, 41, 47}};
static const uint8_t posBnInCnProcBuf_BG2_CNG4[4][20] = {{0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 2, 0, 1, 0, 1, 0, 2, 1},{1, 1, 3, 10, 6, 1, 4, 8, 3, 2, 2, 5, 7, 12, 5, 2, 5, 7, 10, 5},{11, 12, 11, 11, 7, 10, 11, 13, 5, 9, 5, 12, 10, 13, 11, 7, 11, 12, 13, 11},{14, 18, 22, 25, 28, 29, 30, 31, 33, 34, 38, 42, 43, 44, 45, 46, 48, 49, 50, 51}};
static const uint8_t posBnInCnProcBuf_BG2_CNG5[5][9] = {{1, 0, 0, 0, 1, 1, 1, 2, 2},{8, 1, 7, 1, 6, 9, 5, 7, 5},{10, 6, 9, 8, 11, 11, 11, 12, 7},{11, 7, 13, 13, 13, 12, 12, 13, 9},{19, 20, 21, 23, 24, 26, 27, 36, 40}};
static const uint8_t posBnInCnProcBuf_BG2_CNG6[6][3] = {{0, 0, 1},{1, 5, 5},{5, 7, 7},{7, 9, 11},{11, 11, 13},{15, 16, 17}};
static const uint8_t posBnInCnProcBuf_BG2_CNG8[8][2] = {{0, 0},{1, 1},{2, 3},{3, 4},{6, 8},{9, 10},{10, 12},{11, 13}};
static const uint8_t posBnInCnProcBuf_BG2_CNG10[10][2] = {{0, 1},{3, 2},{4, 4},{5, 5},{6, 6},{7, 7},{8, 8},{9, 9},{11, 10},{12, 13}};
......
......@@ -121,7 +121,7 @@ static inline void nrLDPC_llr2llrProcBuf(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrL
\param Z Lifting size
\param BG Base graph
*/
static inline void nrLDPC_llr2CnProcBuf(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLDPC_procBuf* p_procBuf, uint16_t Z)
static inline void nrLDPC_llr2CnProcBuf_BG1(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLDPC_procBuf* p_procBuf, uint16_t Z)
{
const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG1_R13[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[0]]) p_lut->circShift[0];
const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG1_R13[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG1_R13[1]]) p_lut->circShift[1];
......@@ -313,124 +313,277 @@ static inline void nrLDPC_llr2CnProcBuf(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLD
\param p_lut Pointer to decoder LUTs
\param Z Lifting size
*/
static inline void nrLDPC_cn2bnProcBuf(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z)
static inline void nrLDPC_llr2CnProcBuf_BG2(t_nrLDPC_lut* p_lut, int8_t* llr, t_nrLDPC_procBuf* p_procBuf, uint16_t Z)
{
const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0];
const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1];
const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2];
const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3];
const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4];
const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5];
const uint8_t (*lut_posBnInCnProcBuf_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->posBnInCnProcBuf[0];
const uint8_t (*lut_posBnInCnProcBuf_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->posBnInCnProcBuf[1];
const uint8_t (*lut_posBnInCnProcBuf_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->posBnInCnProcBuf[2];
const uint8_t (*lut_posBnInCnProcBuf_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->posBnInCnProcBuf[3];
const uint8_t (*lut_posBnInCnProcBuf_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->posBnInCnProcBuf[4];
const uint8_t (*lut_posBnInCnProcBuf_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint8_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->posBnInCnProcBuf[5];
const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups;
const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups;
int8_t* cnProcBuf = p_procBuf->cnProcBuf;
uint32_t i;
uint32_t j;
uint32_t idxBn = 0;
int8_t* p_cnProcBuf;
uint32_t bitOffsetInGroup;
// =====================================================================
// CN group with 3 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX;
for (j=0; j<3; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[0]; i++)
{
idxBn = lut_posBnInCnProcBuf_CNG3[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG3[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 4 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX;
for (j=0; j<4; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[1] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[1]; i++)
{
idxBn = lut_posBnInCnProcBuf_CNG4[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG4[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 5 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX;
for (j=0; j<5; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[2] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[2]; i++)
{
idxBn = lut_posBnInCnProcBuf_CNG5[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG5[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 6 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX;
for (j=0; j<6; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[3] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[3]; i++)
{
idxBn = lut_posBnInCnProcBuf_CNG6[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG6[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 8 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX;
for (j=0; j<8; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[4] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[4]; i++)
{
idxBn = lut_posBnInCnProcBuf_CNG8[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG8[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 10 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX;
for (j=0; j<10; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[5] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[5]; i++)
{
idxBn = lut_posBnInCnProcBuf_CNG10[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &llr[idxBn], Z, lut_circShift_CNG10[j][i]);
p_cnProcBuf += Z;
}
}
}
/**
\brief Copies the values in the CN processing results buffer to their corresponding place in the BN processing buffer for BG2.
\param p_lut Pointer to decoder LUTs
\param Z Lifting size
*/
static inline void nrLDPC_cn2bnProcBuf_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z)
{
const uint32_t* lut_cn2bnProcBuf = p_lut->cn2bnProcBuf;
const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups;
const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups;
const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0];
const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1];
const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2];
const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3];
const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4];
const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5];
const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0];
const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1];
const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2];
const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3];
const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4];
const uint32_t (*lut_startAddrBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5];
const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0];
const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1];
const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2];
const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3];
const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4];
const uint8_t (*lut_bnPosBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5];
int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;
int8_t* bnProcBuf = p_procBuf->bnProcBuf;
const uint32_t* p_lut_cn2bn;
int8_t* p_cnProcBufRes;
uint32_t bitOffsetInGroup;
uint32_t i;
uint32_t j;
uint32_t M;
uint32_t idxBn = 0;
// =====================================================================
// CN group with 3 BNs
p_lut_cn2bn = &lut_cn2bnProcBuf[0];
M = lut_numCnInCnGroups[0]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX;
for (j=0; j<3; j++)
{
p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[0] + j*bitOffsetInGroup];
for (i=0; i<M; i++)
for (i=0; i<lut_numCnInCnGroups[0]; i++)
{
bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i];
idxBn = lut_startAddrBnProcBuf_CNG3[j][i] + lut_bnPosBnProcBuf_CNG3[j][i]*Z;
nrLDPC_circ_memcpy(&bnProcBuf[lut_startAddrBnProcBuf_CNG3[j][i]],p_cnProcBufRes,Z,lut_circShift_CNG3[j][i]);
p_cnProcBufRes += Z;
}
}
// =====================================================================
// CN group with 4 BNs
p_lut_cn2bn += (M*3); // Number of elements of previous group
M = lut_numCnInCnGroups[1]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX;
for (j=0; j<4; j++)
{
p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[1] + j*bitOffsetInGroup];
for (i=0; i<M; i++)
for (i=0; i<lut_numCnInCnGroups[1]; i++)
{
bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i];
idxBn = lut_startAddrBnProcBuf_CNG4[j][i] + lut_bnPosBnProcBuf_CNG4[j][i]*Z;
nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG4[j][i]);
p_cnProcBufRes += Z;
}
}
// =====================================================================
// CN group with 5 BNs
p_lut_cn2bn += (M*4); // Number of elements of previous group
M = lut_numCnInCnGroups[2]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX;
for (j=0; j<5; j++)
{
p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[2] + j*bitOffsetInGroup];
for (i=0; i<M; i++)
for (i=0; i<lut_numCnInCnGroups[2]; i++)
{
bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i];
idxBn = lut_startAddrBnProcBuf_CNG5[j][i] + lut_bnPosBnProcBuf_CNG5[j][i]*Z;
nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG5[j][i]);
p_cnProcBufRes += Z;
}
}
// =====================================================================
// CN group with 6 BNs
p_lut_cn2bn += (M*5); // Number of elements of previous group
M = lut_numCnInCnGroups[3]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX;
for (j=0; j<6; j++)
{
p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[3] + j*bitOffsetInGroup];
for (i=0; i<M; i++)
for (i=0; i<lut_numCnInCnGroups[3]; i++)
{
bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i];
idxBn = lut_startAddrBnProcBuf_CNG6[j][i] + lut_bnPosBnProcBuf_CNG6[j][i]*Z;
nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG6[j][i]);
p_cnProcBufRes += Z;
}
}
// =====================================================================
// CN group with 8 BNs
p_lut_cn2bn += (M*6); // Number of elements of previous group
M = lut_numCnInCnGroups[4]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX;
for (j=0; j<8; j++)
{
p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[4] + j*bitOffsetInGroup];
for (i=0; i<M; i++)
for (i=0; i<lut_numCnInCnGroups[4]; i++)
{
bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i];
idxBn = lut_startAddrBnProcBuf_CNG8[j][i] + lut_bnPosBnProcBuf_CNG8[j][i]*Z;
nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG8[j][i]);
p_cnProcBufRes += Z;
}
}
// =====================================================================
// CN group with 10 BNs
p_lut_cn2bn += (M*8); // Number of elements of previous group
M = lut_numCnInCnGroups[5]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX;
for (j=0; j<10; j++)
{
p_cnProcBufRes = &cnProcBufRes[lut_startAddrCnGroups[5] + j*bitOffsetInGroup];
for (i=0; i<M; i++)
for (i=0; i<lut_numCnInCnGroups[5]; i++)
{
bnProcBuf[p_lut_cn2bn[j*M + i]] = p_cnProcBufRes[i];
idxBn = lut_startAddrBnProcBuf_CNG10[j][i] + lut_bnPosBnProcBuf_CNG10[j][i]*Z;
nrLDPC_circ_memcpy(&bnProcBuf[idxBn],p_cnProcBufRes,Z,lut_circShift_CNG10[j][i]);
p_cnProcBufRes += Z;
}
}
}
/**
......@@ -440,7 +593,6 @@ static inline void nrLDPC_cn2bnProcBuf(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_
*/
static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z)
{
//const uint32_t* lut_cn2bnProcBuf = p_lut->cn2bnProcBuf;
const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups;
const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups;
......@@ -464,7 +616,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
const uint32_t (*lut_startAddrBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint32_t(*)[lut_numCnInCnGroups[7]]) p_lut->startAddrBnProcBuf[7];
const uint32_t (*lut_startAddrBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint32_t(*)[lut_numCnInCnGroups[8]]) p_lut->startAddrBnProcBuf[8];
//const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0];
const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1];
const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2];
const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3];
......@@ -477,19 +628,15 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
int8_t* cnProcBufRes = p_procBuf->cnProcBufRes;
int8_t* bnProcBuf = p_procBuf->bnProcBuf;
//const uint32_t* p_lut_cn2bn;
int8_t* p_cnProcBufRes;
uint32_t bitOffsetInGroup;
uint32_t i;
uint32_t j;
//uint32_t M;
uint32_t idxBn = 0;
// =====================================================================
// CN group with 3 BNs
//p_lut_cn2bn = &lut_cn2bnProcBuf[0];
//M = lut_numCnInCnGroups[0]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX;
for (j=0; j<3; j++)
......@@ -502,8 +649,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 4 BNs
//p_lut_cn2bn += (M*3); // Number of elements of previous group
//M = lut_numCnInCnGroups[1]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX;
for (j=0; j<4; j++)
......@@ -521,8 +666,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 5 BNs
//p_lut_cn2bn += (M*4); // Number of elements of previous group
//M = lut_numCnInCnGroups[2]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX;
for (j=0; j<5; j++)
......@@ -540,8 +683,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 6 BNs
//p_lut_cn2bn += (M*5); // Number of elements of previous group
//M = lut_numCnInCnGroups[3]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX;
for (j=0; j<6; j++)
......@@ -559,8 +700,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 7 BNs
//p_lut_cn2bn += (M*6); // Number of elements of previous group
//M = lut_numCnInCnGroups[4]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX;
for (j=0; j<7; j++)
......@@ -578,8 +717,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 8 BNs
//p_lut_cn2bn += (M*7); // Number of elements of previous group
//M = lut_numCnInCnGroups[5]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX;
for (j=0; j<8; j++)
......@@ -597,8 +734,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 9 BNs
//p_lut_cn2bn += (M*8); // Number of elements of previous group
//M = lut_numCnInCnGroups[6]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX;
for (j=0; j<9; j++)
......@@ -616,8 +751,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 10 BNs
//p_lut_cn2bn += (M*9); // Number of elements of previous group
//M = lut_numCnInCnGroups[7]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX;
for (j=0; j<10; j++)
......@@ -635,8 +768,6 @@ static inline void nrLDPC_cn2bnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 19 BNs
//p_lut_cn2bn += (M*10); // Number of elements of previous group
//M = lut_numCnInCnGroups[8]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX;
for (j=0; j<19; j++)
......@@ -781,6 +912,147 @@ static inline void nrLDPC_bn2cnProcBuf(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_
}
static inline void nrLDPC_bn2cnProcBuf_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z)
{
const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups;
const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups;
const uint16_t (*lut_circShift_CNG3) [lut_numCnInCnGroups_BG2_R15[0]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[0]]) p_lut->circShift[0];
const uint16_t (*lut_circShift_CNG4) [lut_numCnInCnGroups_BG2_R15[1]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[1]]) p_lut->circShift[1];
const uint16_t (*lut_circShift_CNG5) [lut_numCnInCnGroups_BG2_R15[2]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[2]]) p_lut->circShift[2];
const uint16_t (*lut_circShift_CNG6) [lut_numCnInCnGroups_BG2_R15[3]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[3]]) p_lut->circShift[3];
const uint16_t (*lut_circShift_CNG8) [lut_numCnInCnGroups_BG2_R15[4]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[4]]) p_lut->circShift[4];
const uint16_t (*lut_circShift_CNG10) [lut_numCnInCnGroups_BG2_R15[5]] = (uint16_t(*)[lut_numCnInCnGroups_BG2_R15[5]]) p_lut->circShift[5];
const uint32_t (*lut_startAddrBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint32_t(*)[lut_numCnInCnGroups[0]]) p_lut->startAddrBnProcBuf[0];
const uint32_t (*lut_startAddrBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint32_t(*)[lut_numCnInCnGroups[1]]) p_lut->startAddrBnProcBuf[1];
const uint32_t (*lut_startAddrBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint32_t(*)[lut_numCnInCnGroups[2]]) p_lut->startAddrBnProcBuf[2];
const uint32_t (*lut_startAddrBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint32_t(*)[lut_numCnInCnGroups[3]]) p_lut->startAddrBnProcBuf[3];
const uint32_t (*lut_startAddrBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint32_t(*)[lut_numCnInCnGroups[4]]) p_lut->startAddrBnProcBuf[4];
const uint32_t (*lut_startAddrBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint32_t(*)[lut_numCnInCnGroups[5]]) p_lut->startAddrBnProcBuf[5];
const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0];
const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1];
const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2];
const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3];
const uint8_t (*lut_bnPosBnProcBuf_CNG8) [lut_numCnInCnGroups[4]] = (uint8_t(*)[lut_numCnInCnGroups[4]]) p_lut->bnPosBnProcBuf[4];
const uint8_t (*lut_bnPosBnProcBuf_CNG10) [lut_numCnInCnGroups[5]] = (uint8_t(*)[lut_numCnInCnGroups[5]]) p_lut->bnPosBnProcBuf[5];
int8_t* cnProcBuf = p_procBuf->cnProcBuf;
int8_t* bnProcBufRes = p_procBuf->bnProcBufRes;
int8_t* p_cnProcBuf;
uint32_t bitOffsetInGroup;
uint32_t i;
uint32_t j;
uint32_t idxBn = 0;
// For CN groups 3 to 6 no need to send the last BN back since it's single edge
// and BN processing does not change the value already in the CN proc buf
// =====================================================================
// CN group with 3 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[0]*NR_LDPC_ZMAX;
for (j=0; j<2; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[0] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[0]; i++)
{
idxBn = lut_startAddrBnProcBuf_CNG3[j][i] + lut_bnPosBnProcBuf_CNG3[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &bnProcBufRes[lut_startAddrBnProcBuf_CNG3[j][i]], Z, lut_circShift_CNG3[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 4 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[1]*NR_LDPC_ZMAX;
for (j=0; j<3; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[1] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[1]; i++)
{
idxBn = lut_startAddrBnProcBuf_CNG4[j][i] + lut_bnPosBnProcBuf_CNG4[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &bnProcBufRes[idxBn], Z, lut_circShift_CNG4[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 5 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[2]*NR_LDPC_ZMAX;
for (j=0; j<4; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[2] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[2]; i++)
{
idxBn = lut_startAddrBnProcBuf_CNG5[j][i] + lut_bnPosBnProcBuf_CNG5[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &bnProcBufRes[idxBn], Z, lut_circShift_CNG5[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 6 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[3]*NR_LDPC_ZMAX;
for (j=0; j<5; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[3] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[3]; i++)
{
idxBn = lut_startAddrBnProcBuf_CNG6[j][i] + lut_bnPosBnProcBuf_CNG6[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &bnProcBufRes[idxBn], Z, lut_circShift_CNG6[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 8 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[4]*NR_LDPC_ZMAX;
for (j=0; j<8; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[4] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[4]; i++)
{
idxBn = lut_startAddrBnProcBuf_CNG8[j][i] + lut_bnPosBnProcBuf_CNG8[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &bnProcBufRes[idxBn], Z, lut_circShift_CNG8[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 10 BNs
bitOffsetInGroup = lut_numCnInCnGroups_BG2_R15[5]*NR_LDPC_ZMAX;
for (j=0; j<10; j++)
{
p_cnProcBuf = &cnProcBuf[lut_startAddrCnGroups[5] + j*bitOffsetInGroup];
for (i=0; i<lut_numCnInCnGroups[5]; i++)
{
idxBn = lut_startAddrBnProcBuf_CNG10[j][i] + lut_bnPosBnProcBuf_CNG10[j][i]*Z;
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &bnProcBufRes[idxBn], Z, lut_circShift_CNG10[j][i]);
p_cnProcBuf += Z;
}
}
}
/**
\brief Copies the values in the BN processing results buffer to their corresponding place in the CN processing buffer for BG1.
\param p_lut Pointer to decoder LUTs
......@@ -788,7 +1060,6 @@ static inline void nrLDPC_bn2cnProcBuf(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_
*/
static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_procBuf, uint16_t Z)
{
// const uint32_t* lut_cn2bnProcBuf = p_lut->cn2bnProcBuf;
const uint8_t* lut_numCnInCnGroups = p_lut->numCnInCnGroups;
const uint32_t* lut_startAddrCnGroups = p_lut->startAddrCnGroups;
......@@ -812,7 +1083,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
const uint32_t (*lut_startAddrBnProcBuf_CNG10)[lut_numCnInCnGroups[7]] = (uint32_t(*)[lut_numCnInCnGroups[7]]) p_lut->startAddrBnProcBuf[7];
const uint32_t (*lut_startAddrBnProcBuf_CNG19)[lut_numCnInCnGroups[8]] = (uint32_t(*)[lut_numCnInCnGroups[8]]) p_lut->startAddrBnProcBuf[8];
// const uint8_t (*lut_bnPosBnProcBuf_CNG3) [lut_numCnInCnGroups[0]] = (uint8_t(*)[lut_numCnInCnGroups[0]]) p_lut->bnPosBnProcBuf[0];
const uint8_t (*lut_bnPosBnProcBuf_CNG4) [lut_numCnInCnGroups[1]] = (uint8_t(*)[lut_numCnInCnGroups[1]]) p_lut->bnPosBnProcBuf[1];
const uint8_t (*lut_bnPosBnProcBuf_CNG5) [lut_numCnInCnGroups[2]] = (uint8_t(*)[lut_numCnInCnGroups[2]]) p_lut->bnPosBnProcBuf[2];
const uint8_t (*lut_bnPosBnProcBuf_CNG6) [lut_numCnInCnGroups[3]] = (uint8_t(*)[lut_numCnInCnGroups[3]]) p_lut->bnPosBnProcBuf[3];
......@@ -826,11 +1096,9 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
int8_t* bnProcBufRes = p_procBuf->bnProcBufRes;
int8_t* p_cnProcBuf;
// const uint32_t* p_lut_cn2bn;
uint32_t bitOffsetInGroup;
uint32_t i;
uint32_t j;
// uint32_t M;
uint32_t idxBn = 0;
// For CN groups 3 to 19 no need to send the last BN back since it's single edge
......@@ -839,8 +1107,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 3 BNs
// p_lut_cn2bn = &lut_cn2bnProcBuf[0];
// M = lut_numCnInCnGroups[0]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX;
for (j=0; j<2; j++)
......@@ -853,8 +1119,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 4 BNs
//p_lut_cn2bn += (M*3); // Number of elements of previous group
//M = lut_numCnInCnGroups[1]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX;
for (j=0; j<3; j++)
......@@ -872,8 +1136,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 5 BNs
//p_lut_cn2bn += (M*4); // Number of elements of previous group
//M = lut_numCnInCnGroups[2]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX;
for (j=0; j<4; j++)
......@@ -886,14 +1148,11 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
nrLDPC_inv_circ_memcpy(p_cnProcBuf, &bnProcBufRes[idxBn], Z, lut_circShift_CNG5[j][i]);
p_cnProcBuf += Z;
}
}
// =====================================================================
// CN group with 6 BNs
//p_lut_cn2bn += (M*5); // Number of elements of previous group
//M = lut_numCnInCnGroups[3]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX;
for (j=0; j<5; j++)
......@@ -911,8 +1170,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 7 BNs
//p_lut_cn2bn += (M*6); // Number of elements of previous group
//M = lut_numCnInCnGroups[4]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX;
for (j=0; j<6; j++)
......@@ -930,8 +1187,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 8 BNs
//p_lut_cn2bn += (M*7); // Number of elements of previous group
//M = lut_numCnInCnGroups[5]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX;
for (j=0; j<7; j++)
......@@ -949,8 +1204,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 9 BNs
//p_lut_cn2bn += (M*8); // Number of elements of previous group
//M = lut_numCnInCnGroups[6]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX;
for (j=0; j<8; j++)
......@@ -968,8 +1221,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 10 BNs
//p_lut_cn2bn += (M*9); // Number of elements of previous group
//M = lut_numCnInCnGroups[7]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX;
for (j=0; j<9; j++)
......@@ -987,8 +1238,6 @@ static inline void nrLDPC_bn2cnProcBuf_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf
// =====================================================================
// CN group with 19 BNs
//p_lut_cn2bn += (M*10); // Number of elements of previous group
//M = lut_numCnInCnGroups[8]*Z;
bitOffsetInGroup = lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX;
for (j=0; j<19; j++)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment