for (i=0;i<((nrows-no_punctured_columns) * Zc-removed_bit);i++)
channel_input[block_length-2*Zc+i] = d[i];
return 0;
}
int ldpc_encoder_multi_segment(unsigned char **test_input,unsigned char **channel_input,short block_length,double rate,uint8_t n_segments)
{
uint16_t c[22*384]; //padded input, unpacked, max size
uint16_t d[68*384]; //coded output, unpacked, max size
uint16_t c_extension[16896]; //double size matrix of c
short BG,Zc,Kb,nrows,ncols;
int i,i1;
int no_punctured_columns,removed_bit;
//Table of possible lifting sizes
short lift_size[51]= {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384};