#include <itpp/itcomm.h>
using namespace itpp;
using namespace std;
extern int main(int argc, char **argv)
{
{
cout << "========= RANDOM (3,6) CODE ==========" << endl;
LDPC_Parity_Matrix H;
H.generate_regular_ldpc(500,3,6,
"rand",
"500 10");
H.display_stats();
LDPC_Code C1(H);
C1.save_to_file("random_3_6_code.it");
}
{
cout << "========= MACKAY CODE ==========" << endl;
LDPC_Parity_Matrix H("204.33.484","alist");
H.display_stats();
LDPC_Generator_Matrix G(H);
LDPC_Code C(H,G);
C.save_to_file("mackay_204.33.484.it");
H.cycle_removal_MGW(12);
LDPC_Generator_Matrix G1(H);
LDPC_Code C1(H,G1);
C1.save_to_file("mackay_204.33.484_opt.it");
}
{
cout << "========= IRREGULAR CODE 1000 BITS ==========" << endl;
LDPC_Parity_Matrix H;
H.generate_irregular_ldpc(1000,
"0 0.27684 0.28342 0 0 0 0 0 0.43974",
"0 0 0 0 0 0.01568 0.85244 0.13188",
"rand",
"500 8");
LDPC_Code C(H);
C.save_to_file("RU_1000.it");
}
{
cout << "========= IRREGULAR CODE 10000 BITS ==========" << endl;
LDPC_Parity_Matrix H;
H.generate_irregular_ldpc(10000,"0 0.21991 0.23328 0.02058 0 0.08543 0.06540 0.04767 \
0.01912 0 0 0 0 0 0 0 0 0 0.08064 0.22798",
"0 0 0 0 0 0 0 0.64854 0.34747 0.00399",
"rand",
"150 8");
LDPC_Code C(H);
C.save_to_file("RU_10000.it");
}
{
cout << "========= IRREGULAR CODE 100000 BITS ==========" << endl;
LDPC_Parity_Matrix H;
H.generate_irregular_ldpc(100000,"0 0.1712 0.21053 0.00273 0 0 0.00009 0.15269 0.09227 \
0.02802 0 0 0 0 0.01206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07212 0 0 0 0 \
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25830",
"0 0 0 0 0 0 0 0 0.33620 0.08883 0.57497",
"rand",
"40 4");
LDPC_Code C(H);
C.save_to_file("RU_100000.it");
}
exit(0);
{
cout << "========= IRREGULAR CODE 1000000 BITS ==========" << endl;
LDPC_Parity_Matrix H;
H.generate_irregular_ldpc(1000000,"0 0.1712 0.21053 0.00273 0 0 0.00009 0.15269 0.09227 \
0.02802 0 0 0 0 0.01206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.07212 0 0 0 0 \
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25830",
"0 0 0 0 0 0 0 0 0.33620 0.08883 0.57497",
"rand",
"0 0");
LDPC_Code C(H);
C.save_to_file("RU_1000000.it");
}
}