diff --git a/lib/ldpc/jtmode_codes/compare.lab b/lib/ldpc/jtmode_codes/compare.lab index d7b3432df..e69de29bb 100644 --- a/lib/ldpc/jtmode_codes/compare.lab +++ b/lib/ldpc/jtmode_codes/compare.lab @@ -1,4 +0,0 @@ -5.7 0.0002 "CC/CRC15" -5.7 0.0001 "(128,80)/50" -5.5 0.000007 "(160,80)" -5.5 0.000002 "(207,72)" diff --git a/lib/ldpc/jtmode_codes/fig_compare.gnuplot b/lib/ldpc/jtmode_codes/fig_compare.gnuplot index 1098f5886..855ef72f7 100644 --- a/lib/ldpc/jtmode_codes/fig_compare.gnuplot +++ b/lib/ldpc/jtmode_codes/fig_compare.gnuplot @@ -13,13 +13,13 @@ set mytics 10 set grid set logscale y plot [-1:6] [1e-6:1] \ - "jtmskcode.results" using 1:(100000-$2)/100000 with linespoints lt 1 lw 2 pt 1, \ - "jtmskcode.results" using 1:($5/1000000) with linespoints lt 1 lw 2 pt 1, \ - "160-80-sf4.results" using 1:(1000000-$2)/1000000 with linespoints lt 2 lw 2 pt 2, \ - "160-80-sf4.results" using 1:($3/1000000) with linespoints lt 2 lw 2 pt 2, \ - "128-80-sf13.results" using 1:(1000000-$10)/1000000 with linespoints lt 3 lw 2 pt 3, \ - "128-80-sf13.results" using 1:($11/1000000) with linespoints lt 3 lw 2 pt 3, \ - "206-72-sf14.results" using 1:(1000000-$4)/1000000 with linespoints lt 4 lw 2 pt 4, \ - "206-72-sf14.results" using 1:($5/1000000) with linespoints lt 4 lw 2 pt 4, \ + "128-80-peg-reg4.results" using ($1+0.46):(1-$2/1000000) with linespoints lt 1 lw 2 pt 1, \ + "128-80-peg-reg4.results" using ($1+0.46):($3/1000000) with linespoints lt 1 lw 2 pt 1, \ + "128-80-peg-reg3.results" using ($1+0.46):(1-$2/1000000) with linespoints lt 2 lw 2 pt 2, \ + "128-80-peg-reg3.results" using ($1+0.46):($3/1000000) with linespoints lt 2 lw 2 pt 2, \ + "128-80-sf13.results" using ($1+0.46):(1-$8/1000000) with linespoints lt 3 lw 2 pt 3, \ + "128-80-sf13.results" using ($1+0.46):($9/1000000) with linespoints lt 3 lw 2 pt 3, \ + "128-72-peg-reg4.results" using 1:(1-$2/1000000) with linespoints lt 4 lw 2 pt 4, \ + "128-72-peg-reg4.results" using 1:($3/1000000) with linespoints lt 4 lw 2 pt 4, \ "compare.lab" with labels exit diff --git a/lib/ldpc/jtmode_codes/fig_success.gnuplot b/lib/ldpc/jtmode_codes/fig_success.gnuplot index b66a8c9e7..a1689d8f7 100644 --- a/lib/ldpc/jtmode_codes/fig_success.gnuplot +++ b/lib/ldpc/jtmode_codes/fig_success.gnuplot @@ -13,9 +13,9 @@ set mytics 10 set grid #set logscale y plot [-1:6] [1e-6:1] \ - "jtmskcode.results" using 1:($4/1000000) with linespoints lt 1 lw 2 pt 1, \ - "160-80-sf4.results" using 1:($2/1000000) with linespoints lt 2 lw 2 pt 2, \ - "128-80-sf13.results" using 1:($10/1000000) with linespoints lt 3 lw 2 pt 3, \ - "206-72-sf14.results" using 1:($2/1000000) with linespoints lt 4 lw 2 pt 4, \ + "128-80-peg-reg4.results" using ($1+0.46):($2/1000000) with linespoints lt 1 lw 2 pt 1, \ + "128-80-peg-reg3.results" using ($1+0.46):($2/1000000) with linespoints lt 2 lw 2 pt 2, \ + "128-80-sf13.results" using ($1+0.46):($8/1000000) with linespoints lt 3 lw 2 pt 3, \ + "128-72-peg-reg4.results" using 1:($2/1000000) with linespoints lt 4 lw 2 pt 4, \ "success.lab" with labels exit diff --git a/lib/ldpc/jtmode_codes/ldpc-waterfall b/lib/ldpc/jtmode_codes/ldpc-waterfall index 6ab70c753..a38f58940 100755 --- a/lib/ldpc/jtmode_codes/ldpc-waterfall +++ b/lib/ldpc/jtmode_codes/ldpc-waterfall @@ -19,7 +19,8 @@ niterations=10 rate=$(echo "scale=5; $k/$n" | bc) echo n=$n k=$k rate=$rate m=$m -make-ldpc ldpc.pchk "$m" "$n" $seed evenboth 120x3/8x4 no4cycle +#make-ldpc ldpc.pchk "$m" "$n" $seed evenboth 120x3/8x4 no4cycle +cp sfpeg2.pchk ldpc.pchk make-gen ldpc.pchk ldpc.gen sparse rand-src ldpc.src 1 "$k"x"$ntrials" diff --git a/lib/ldpc/jtmode_codes/success.lab b/lib/ldpc/jtmode_codes/success.lab index 52d274c5d..1722c2aa8 100644 --- a/lib/ldpc/jtmode_codes/success.lab +++ b/lib/ldpc/jtmode_codes/success.lab @@ -1,3 +1,4 @@ -3.2 0.68 "(128,80) LDPC " -0.9 0.55 "(160,80) LDPC" -0.9 0.75 "(206,72) LDPC" +3.8 0.55 "(128,80) reg4" +2.6 0.85 "(128,80) sf13" +4.0 0.85 "(128,80) reg3" +1.7 0.65 "(128,72) reg4" diff --git a/lib/ldpc/msksim.f90 b/lib/ldpc/msksim.f90 index cf415c8e7..965b064de 100644 --- a/lib/ldpc/msksim.f90 +++ b/lib/ldpc/msksim.f90 @@ -10,15 +10,15 @@ character(50) pchk_file,gen_file integer(1) codeword(1:N), decoded(1:K), message(1:K) real*8 lratio(N), rxdata(N) -pchk_file="./jtmode_codes/ldpc-128-80-sf13.pchk" -gen_file="./jtmode_codes/ldpc-128-80-sf13.gen" +pchk_file="./jtmode_codes/peg-128-80-reg3.pchk" +gen_file="./jtmode_codes/peg-128-80-reg3.gen" rate=real(K)/real(N) call init_ldpc(trim(pchk_file)//char(0),trim(gen_file)//char(0)) -message(1:40)=1 -message(41:80)=0 +message(1:K/2)=1 +message((K/2+1):K)=0 call ldpc_encode(message,codeword) max_iterations=10 diff --git a/lib/ldpc/peg/128-64-reg4.deg b/lib/ldpc/peg/128-64-reg4.deg new file mode 100644 index 000000000..7b72d0676 --- /dev/null +++ b/lib/ldpc/peg/128-64-reg4.deg @@ -0,0 +1,4 @@ +1 +4 +1.0 + diff --git a/lib/ldpc/peg/BigGirth.C b/lib/ldpc/peg/BigGirth.C new file mode 100644 index 000000000..ad8b54a17 --- /dev/null +++ b/lib/ldpc/peg/BigGirth.C @@ -0,0 +1,573 @@ +#include +#include +#include +#include +#include "BigGirth.h" +#include "Random.h" + +using namespace std; + +NodesInGraph::NodesInGraph(void) { + connectionParityBit=NULL; + connectionSymbolBit=NULL; +} + +void NodesInGraph::setNumOfConnectionSymbolBit(int deg) { + if(deg<=0) {cout<<"Wrong NodesInGraph::setNumOfConnectionSymbolBit()"<M=M; + this->N=N; + this->filename=filename; + + mid=new int[M]; + + localGirth=new int[N]; + + nodesInGraph=new NodesInGraph [N]; + for(i=0;ilocalDepth)?localDepth:localGirth[k]; + if(k>0 && localGirth[k]=nodesInGraph[i].maxDegParity) + index++; + } + if(cpNumCur==numCur) {//can not expand any more + //additional handlement to select one having least connections + j=10000000; //dummy number + for(i=0;i=nodesInGraph[i].maxDegParity){ + tmp[i]=1; + } + } + } + index=0; + for(i=0;iEXPAND_DEPTH){//covering all parity nodes or meet the upper bound on cycles + + cycle=mincycles-1; + for(i=0;i=nodesInGraph[i].maxDegParity){ + tmp[i]=1; + } + } + } + + index=0; + for(i=0;inumCur && index!=M){ + delete [] current; + current=NULL; + numCur=cpNumCur; + current=new int[numCur]; + index=0; + for(i=0;imax_col) + max_col=nodesInGraph[i].numOfConnectionParityBit; + + parityCheck_compressed=new int * [M]; + for(i=0;i0;k--){ + for(i=k-1;i>=0;i--){ + if(H[i][k]==1) + for(j=k;jmax_row) max_row=imed; + } + generator_compressed=new int * [max_row]; + for(i=0;i=max_row-1) break; + index++; + } + } + } + for(j=0;jmax_col) max_col=imed; + } + parityCheck_compressed=new int * [M]; + for(i=0;i=max_col-1) break; + index++; + } + } + } + if(verbose) { + cout<<"****************************************************"< +#include // C++ I/O library header +#include "Random.h" + +class NodesInGraph{ + public: + int numOfConnectionParityBit; + int *connectionParityBit; + int numOfConnectionSymbolBit; + int *connectionSymbolBit; + int maxDegParity; + + NodesInGraph(void); + ~NodesInGraph(void); + void setNumOfConnectionSymbolBit(int deg); + void initConnectionParityBit(void); + void initConnectionParityBit(int deg); +}; + +class BigGirth { + public: + int M, N; + int K; + int EXPAND_DEPTH; + const char *filename; + int *(*H); + + int *localGirth; + + NodesInGraph *nodesInGraph; + Random *myrandom; + + BigGirth(int m, int n, int *symbolDegSequence, const char *filename, int sglConcent, int tgtGirth, bool verbose_ = true); + BigGirth(void); + + void writeToFile_Hcompressed(void); + void writeToFile_Hmatrix(void); + void writeToFile(void); + + void loadH(void); + + ~BigGirth(void); + + private: + int selectParityConnect(int kthSymbol, int mthConnection, int & cycle); + void updateConnection(int kthSymbol); + bool verbose; + +}; + +#endif diff --git a/lib/ldpc/peg/CodeName b/lib/ldpc/peg/CodeName new file mode 100644 index 000000000..118a63822 --- /dev/null +++ b/lib/ldpc/peg/CodeName @@ -0,0 +1,68 @@ +64 +16 +48 +14 +5 +3 1 3 6 1 4 1 1 1 1 2 1 1 1 1 6 6 2 2 1 1 2 2 1 2 6 2 6 1 1 2 1 1 6 3 2 6 2 1 1 6 1 1 2 1 1 1 7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +4 2 4 9 3 6 2 2 3 2 4 2 3 3 3 7 9 6 4 3 2 6 6 2 4 9 6 7 2 2 4 3 3 7 4 4 7 4 3 3 7 2 2 6 3 2 2 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +6 3 6 10 4 9 4 4 4 4 5 4 4 4 4 8 10 8 5 4 3 7 7 4 6 13 9 9 4 4 5 4 4 8 6 5 8 5 4 4 9 4 4 8 4 3 4 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +7 4 12 12 6 12 5 5 6 5 6 5 5 6 6 9 11 9 6 5 4 11 9 5 7 0 10 10 5 5 6 6 5 9 8 6 11 6 5 5 11 5 5 9 6 4 5 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +9 5 16 15 9 15 6 6 7 6 7 6 6 9 7 10 12 11 8 6 5 13 13 6 8 0 11 11 6 6 9 8 6 11 11 8 12 7 6 6 13 6 6 12 10 5 6 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +10 6 0 16 11 16 8 7 9 8 8 7 7 12 8 11 13 13 9 11 6 14 14 8 9 0 13 12 8 9 11 9 7 12 12 10 13 8 8 7 0 8 7 15 12 6 8 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +13 8 0 0 13 0 10 8 13 9 10 10 9 13 9 12 14 15 11 13 7 16 16 9 13 0 15 13 10 11 16 11 11 13 16 12 14 9 11 10 0 9 11 0 13 12 9 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +15 12 0 0 14 0 11 10 15 11 12 11 10 15 11 13 15 0 13 14 12 0 0 12 14 0 0 14 14 13 0 14 13 0 0 15 0 11 12 13 0 10 12 0 15 13 10 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 13 0 0 15 0 12 12 16 12 14 14 14 16 14 14 0 0 15 15 14 0 0 13 0 0 0 15 15 15 0 15 14 0 0 16 0 13 13 14 0 12 14 0 16 14 11 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 15 0 0 16 0 14 14 0 13 15 0 16 0 16 16 0 0 16 16 15 0 0 14 0 0 0 16 0 16 0 16 16 0 0 0 0 14 15 16 0 14 15 0 0 15 12 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 16 0 0 0 0 15 15 0 15 16 0 0 0 0 0 0 0 0 0 16 0 0 15 0 0 0 0 0 0 0 0 0 0 0 0 0 15 16 0 0 15 0 0 0 16 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 16 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 14 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 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 0 0 0 0 0 0 0 0 0 0 0 15 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 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 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +1 9 49 58 64 +2 39 50 59 0 +3 6 51 57 63 +4 6 52 58 0 +5 20 53 57 0 +4 37 48 60 0 +7 36 49 59 62 +8 29 55 60 0 +9 14 55 60 0 +10 30 56 60 0 +11 31 48 61 64 +12 24 48 62 0 +13 40 57 61 0 +1 35 48 62 0 +15 32 55 63 0 +16 28 56 63 0 +17 28 55 64 0 +18 27 56 58 0 +19 31 56 61 63 +5 32 56 61 0 +21 43 51 59 64 +22 23 57 59 0 +22 44 48 58 0 +12 43 58 60 63 +25 38 53 59 63 +26 41 55 59 0 +18 44 59 60 61 +17 27 50 60 62 +29 42 57 60 64 +8 30 48 63 0 +19 38 55 62 64 +15 45 48 64 0 +20 33 55 63 0 +34 41 56 60 0 +14 45 57 58 0 +11 36 55 62 0 +34 37 57 62 0 +7 47 57 61 0 +2 46 56 62 0 +33 40 58 59 0 +3 35 56 59 0 +10 47 58 62 0 +21 46 55 61 0 +23 25 52 56 64 +13 39 48 64 0 +26 54 57 61 0 +24 42 58 61 0 +16 48 54 63 0 +49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 diff --git a/lib/ldpc/peg/CyclesOfGraph.C b/lib/ldpc/peg/CyclesOfGraph.C new file mode 100644 index 000000000..77c98b598 --- /dev/null +++ b/lib/ldpc/peg/CyclesOfGraph.C @@ -0,0 +1,237 @@ +#include "CyclesOfGraph.h" + +NodesOfGraph::NodesOfGraph(void) { parityConnections=NULL;symbolConnections=NULL; +} +NodesOfGraph::~NodesOfGraph(void) { + delete [] parityConnections; + delete [] symbolConnections; + delete [] symbolMapping; + +} + +void NodesOfGraph::setParityConnections(int num, int *value) { + numOfParityConnections=num; + parityConnections=new int[num]; + for(int i=0;itmpCycles[j]) + cyclesTable[i]=tmpCycles[j]; + } + //OUTPUT cycles per symbol node + //cout<<"i="<cyclesTable[i]) girth=cyclesTable[i]; + return(girth); +} + +void CyclesOfGraph::printCyclesTable(void){ + using namespace std; + int i, temp[20]; + /* + for(i=0;i +#include // C++ I/O library header +//#include + +class NodesOfGraph{ + public: + int numOfParityConnections; + int *parityConnections; + int numOfSymbolConnections; + int *symbolConnections; + int numOfSymbolMapping; + int *symbolMapping; + NodesOfGraph(void); + ~NodesOfGraph(void); + void setParityConnections(int num, int *value); + void setSymbolConnections(int num, int *value); + void setSymbolMapping(int num, int *values); +}; //Why this is necessary? + +class CyclesOfGraph { + public: + int M, N; + int *(*H); + int *cyclesTable; + NodesOfGraph *nodesOfGraph; + CyclesOfGraph(int mm, int n, int *(*h)); + ~CyclesOfGraph(void); + void getCyclesTable(void); + void printCyclesTable(void); + int girth(void); + private: + int *tmp, *med, *tmpCycles; +}; + +#endif + + diff --git a/lib/ldpc/peg/DenEvl_11.deg b/lib/ldpc/peg/DenEvl_11.deg new file mode 100644 index 000000000..18a77197c --- /dev/null +++ b/lib/ldpc/peg/DenEvl_11.deg @@ -0,0 +1,3 @@ +4 + 2 3 4 11 +0.450013 0.370771 0.0307238 0.1484922 diff --git a/lib/ldpc/peg/DenEvl_15.deg b/lib/ldpc/peg/DenEvl_15.deg new file mode 100644 index 000000000..3af8369d3 --- /dev/null +++ b/lib/ldpc/peg/DenEvl_15.deg @@ -0,0 +1,3 @@ +7 +2 3 4 5 7 14 15 +0.477081 0.280572 0.0349963 0.0963301 0.0090884 0.00137443 0.10055777 diff --git a/lib/ldpc/peg/DenEvl_20.deg b/lib/ldpc/peg/DenEvl_20.deg new file mode 100644 index 000000000..174d64657 --- /dev/null +++ b/lib/ldpc/peg/DenEvl_20.deg @@ -0,0 +1,4 @@ +9 +2 3 4 6 7 8 9 19 20 +0.457827 0.323775 0.0214226 0.0592851 0.0389015 0.0248109 0.00884569 +0.0176697 0.04746251 diff --git a/lib/ldpc/peg/DenEvl_7.deg b/lib/ldpc/peg/DenEvl_7.deg new file mode 100644 index 000000000..feb53aeec --- /dev/null +++ b/lib/ldpc/peg/DenEvl_7.deg @@ -0,0 +1,3 @@ +3 + 2 3 7 +0.521814 0.271293 0.206893 diff --git a/lib/ldpc/peg/DenEvl_9.deg b/lib/ldpc/peg/DenEvl_9.deg new file mode 100644 index 000000000..edc911ab6 --- /dev/null +++ b/lib/ldpc/peg/DenEvl_9.deg @@ -0,0 +1,3 @@ +3 + 2 2 9 +0.491281 0.335305 0.173414 diff --git a/lib/ldpc/peg/MainPEG b/lib/ldpc/peg/MainPEG new file mode 100755 index 000000000..d660aa677 Binary files /dev/null and b/lib/ldpc/peg/MainPEG differ diff --git a/lib/ldpc/peg/MainPEG.C b/lib/ldpc/peg/MainPEG.C new file mode 100644 index 000000000..186001399 --- /dev/null +++ b/lib/ldpc/peg/MainPEG.C @@ -0,0 +1,200 @@ +/************************************************************************/ +/* */ +/* Free software: Progressive edge-growth (PEG) algorithm */ +/* Created by Xiaoyu Hu */ +/* Evangelos Eletheriou */ +/* Dieter Arnold */ +/* IBM Research, Zurich Research Lab., Switzerland */ +/* */ +/* The C++ sources files have been compiled using xlC compiler */ +/* at IBM RS/6000 running AIX. For other compilers and platforms,*/ +/* minor changes might be needed. */ +/* */ +/* Bug reporting to: xhu@zurich.ibm.com */ +/**********************************************************************/ + +//// +// Modified by F. P. Beekhof; 2008 / 08 / 19 +//// + +#include +#include +#include +#include +#include +#include +#include +#include +#include "BigGirth.h" +#include "Random.h" +#include "CyclesOfGraph.h" + +const double EPS = 1e-6; + +using namespace std; + +void usage() +{ + cout<<"*******************************************************************************************"< " <= argc) usage(); + M=atoi(argv[i]); + } else if(strcmp(argv[i], "-numN")==0) { + if (++i >= argc) usage(); + N=atoi(argv[i]); + } else if(strcmp(argv[i], "-codeName")==0) { + if (++i >= argc) usage(); + codeName = argv[i]; + } else if(strcmp(argv[i], "-degFileName")==0) { + if (++i >= argc) usage(); + degFileName = argv[i]; + } else if(strcmp(argv[i], "-sglConcent")==0) { + if (++i >= argc) usage(); + sglConcent=atoi(argv[i]); + } else if(strcmp(argv[i], "-tgtGirth")==0) { + if (++i >= argc) usage(); + targetGirth=atoi(argv[i]); + } else if(strcmp(argv[i], "-outputMode")==0) { + if (++i >= argc) usage(); + output_mode=atoi(argv[i]); + } else if(strcmp(argv[i], "-q")==0) { + verbose=false; + } else{ + usage(); + } + } + if (M == -1 || N == -1) { + cout<<"Error: M or N not specified!"<N) { + cout<<"Error: M must be smaller than N!"< degSeq(N); + + ifstream infn(degFileName.c_str()); + if (!infn) {cout << "\nCannot open file " << degFileName << endl; exit(-1); } + int m; + infn >>m; + std::vector deg(m); + std::vector degFrac(m); + for(int i=0;i>deg[i]; + for(int i=0;i>degFrac[i]; + infn.close(); + double dtmp=0.0; + for(int i=0;iEPS) { + cout.setf(ios::fixed, ios::floatfield); + cout <<"\n Invalid degree distribution (node perspective): sum != 1.0 but "<=0;--j) { + if(dtmp>degFrac[j]) break; + } + if(dtmp +# Thu May 12 12:38:41 SAST 2005 + +PROGRAM = MainPEG +OBJECTS = MainPEG.o Random.o CyclesOfGraph.o BigGirth.o + +CXX = g++ +CXXFLAGS = -g -ansi -pedantic -Wno-deprecated -Wall -O2 +#CXXFLAGS = -g -ansi -pedantic -Wall -march=native -ftree-vectorize -O3 + +.SUFFIXES: .o .C + +all: ${OBJECTS} + $(CXX) -o ${PROGRAM} ${OBJECTS} + +.C.o: $< + $(CXX) ${CXXFLAGS} -c $< -o $@ + +.PHONY : clean + +clean: + rm -f ${OBJECTS} ${PROGRAM} *~ *.log + diff --git a/lib/ldpc/peg/Random.C b/lib/ldpc/peg/Random.C new file mode 100644 index 000000000..3c5d54387 --- /dev/null +++ b/lib/ldpc/peg/Random.C @@ -0,0 +1,101 @@ + +#include +#include +#include "Random.h" + +void Random::bubbleSort(int a[], int size) +{ + for(int pass=1; passa[i+1]){ + std::swap(a[i], a[i+1]); + } + } +} + +double Random::gauss(double sdev, double mean) +{ + double sum=0.0; + for (int i=1;i<=12;++i) + { + seed_u = 1664525lu * seed_u + 123456789lu; + sum+=double(seed_u); + } + return (sum/4.29497e9-6.0)*sdev+mean; +} + +double Random::uniform(double a, double b) +{ + double t; + for(int i=0; i<10;i++){ + seed=2045*seed+1; + //seed=seed -(seed/1048576)*1048576; + seed%=1048576; + } + t=seed/1048576.0; + t=a+(b-a)*t; + return(t); +} + +int Random::uniform(int a, int b) // [a, b-1] +{ + double t; + int i, tt; + if(b==a+1) return(a); + for(i=0; i<10;i++){ + seed=2045*seed+1; + //seed=seed -(seed/1048576)*1048576; + seed%=1048576; + } + t=seed/1048576.0; + t=a+(b-a)*t; + tt=(int)t; + if(tt=b) tt=b-1; + return(tt); +} + +int Random::nonUniform(int a, int b) // [a, b-1] +{ + double t; + int i, tt; + if(b==a+1) return(a); + for(i=0; i<10;i++){ + seed=2045*seed+1; + //seed=seed -(seed/1048576)*1048576; + seed%=1048576; + } + t=seed/1048576.0; + t=a+(b-a)*pow(t, 0.6667); //t^1.5 + tt=(int)t; + if(tt=b) tt=b-1; + return(tt); +} + +/* +void m_uniform(int a , int b, long int *seed, int *itmp, int num) +{ + int index, imed, i, k; + + index=0; + itmp[0]=uniform(a, b, seed); + Loop1: + imed=uniform(a, b, seed); + k=0; + for(i=0;i<=index;i++) + if(imed==itmp[i]) {k=1; break;} + if(k==0) {index++; itmp[index]=imed;} + if(index +// #include + +class Random{ + private: + + unsigned long int seed; //previously LONG INT + unsigned long int seed_u; + + public: + + Random(void) { + this->seed=987654321u; + this->seed_u=123456789lu; + } + ~Random(void){;} + void bubbleSort(int a[], int size); + double gauss(double sdev, double mean); + double uniform(double a, double b); + int uniform(int a, int b); // [a, b) + int nonUniform(int a, int b); + +}; + +#endif diff --git a/lib/ldpc/peg/Reg_2.deg b/lib/ldpc/peg/Reg_2.deg new file mode 100644 index 000000000..28d2c8f1d --- /dev/null +++ b/lib/ldpc/peg/Reg_2.deg @@ -0,0 +1,3 @@ +1 +2 +1.0 diff --git a/lib/ldpc/peg/Reg_3.deg b/lib/ldpc/peg/Reg_3.deg new file mode 100644 index 000000000..0fb5a574c --- /dev/null +++ b/lib/ldpc/peg/Reg_3.deg @@ -0,0 +1,3 @@ +1 +3 +1.0 diff --git a/lib/ldpc/peg/Reg_4.deg b/lib/ldpc/peg/Reg_4.deg new file mode 100644 index 000000000..b42df5000 --- /dev/null +++ b/lib/ldpc/peg/Reg_4.deg @@ -0,0 +1,3 @@ +1 +4 +1.0 diff --git a/lib/ldpc/peg/ldpc-peg-128-80.alist b/lib/ldpc/peg/ldpc-peg-128-80.alist new file mode 100644 index 000000000..a25da9a35 --- /dev/null +++ b/lib/ldpc/peg/ldpc-peg-128-80.alist @@ -0,0 +1,180 @@ +48 128 +9 4 +9 9 9 9 9 8 8 8 8 8 9 9 8 8 9 9 8 8 8 8 9 9 9 8 9 9 9 9 9 9 8 8 8 9 8 9 9 9 8 9 8 8 8 9 8 8 8 9 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 +1 17 34 51 66 81 99 111 124 +2 18 35 50 67 82 100 112 125 +3 19 36 52 68 82 101 111 126 +2 20 36 51 69 83 102 113 127 +4 19 37 53 66 84 103 114 128 +5 21 38 54 70 85 92 114 0 +6 22 39 55 66 85 96 110 0 +7 23 32 56 71 86 103 115 0 +8 20 40 55 72 86 104 116 0 +9 19 41 57 73 87 105 116 0 +10 24 36 56 74 88 105 117 125 +10 17 33 47 75 89 106 118 128 +11 21 42 51 76 87 107 119 0 +1 25 40 58 74 84 107 113 0 +12 22 42 49 77 90 108 118 125 +13 26 43 59 68 89 104 120 124 +13 22 44 57 75 91 109 113 0 +12 23 37 46 78 88 107 112 0 +3 27 34 60 65 87 109 118 0 +6 27 45 61 79 89 98 112 0 +14 28 34 62 72 92 106 112 127 +8 27 42 59 71 92 110 121 126 +15 20 46 57 79 93 101 115 124 +9 29 45 62 74 94 108 121 0 +8 30 38 63 73 95 109 111 128 +16 29 47 64 69 96 109 117 126 +16 23 48 63 76 94 110 116 125 +7 25 39 52 70 97 106 117 124 +4 26 45 63 67 83 90 119 123 +15 28 39 50 76 88 103 121 123 +15 26 33 58 65 97 102 122 0 +14 31 47 52 77 81 93 116 0 +14 24 37 61 71 82 99 122 0 +4 31 40 54 80 91 106 115 122 +5 32 41 58 77 98 104 117 0 +9 18 49 65 79 85 104 119 128 +10 30 43 60 69 84 108 115 123 +1 18 43 48 73 91 98 114 127 +3 21 46 64 67 86 108 113 0 +5 24 48 55 75 93 107 120 126 +2 32 44 62 80 95 99 114 0 +16 28 41 59 80 83 100 118 0 +11 33 35 53 72 96 105 111 0 +11 25 44 60 78 90 100 120 122 +6 31 35 56 70 95 102 121 0 +12 17 50 54 68 94 105 119 0 +13 29 38 53 78 97 110 123 0 +7 30 49 61 64 81 101 120 127 +1 14 38 0 +2 4 41 0 +3 19 39 0 +5 29 34 0 +6 35 40 0 +7 20 45 0 +8 28 48 0 +9 22 25 0 +10 24 36 0 +11 12 37 0 +13 43 44 0 +15 18 46 0 +16 17 47 0 +21 32 33 0 +23 30 31 0 +26 27 42 0 +1 12 46 0 +2 36 38 0 +3 5 10 0 +4 9 23 0 +6 13 39 0 +7 15 17 0 +8 18 27 0 +11 33 40 0 +14 28 44 0 +16 29 31 0 +19 20 22 0 +21 30 42 0 +24 26 47 0 +25 37 48 0 +32 34 45 0 +8 35 41 0 +12 31 43 0 +1 19 21 0 +2 43 45 0 +3 4 11 0 +5 18 33 0 +6 25 47 0 +7 28 30 0 +9 14 34 0 +10 35 42 0 +13 15 22 0 +16 37 38 0 +17 41 44 0 +20 24 29 0 +18 23 39 0 +12 26 32 0 +27 38 40 0 +15 36 48 0 +2 30 46 0 +1 4 13 0 +3 28 32 0 +5 43 47 0 +6 34 46 0 +7 9 40 0 +8 11 45 0 +10 17 23 0 +14 31 35 0 +16 22 42 0 +19 37 44 0 +20 33 48 0 +21 24 41 0 +25 27 29 0 +26 39 48 0 +19 31 36 0 +1 5 7 0 +2 29 39 0 +3 16 46 0 +4 26 37 0 +6 28 45 0 +8 22 33 0 +9 21 43 0 +10 25 38 0 +11 14 24 0 +12 17 40 0 +13 27 30 0 +15 32 35 0 +18 44 47 0 +20 23 36 0 +34 41 42 0 +1 32 48 0 +2 3 33 0 +4 29 42 0 +5 14 37 0 +6 7 36 0 +8 9 39 0 +10 13 19 0 +11 18 30 0 +12 16 20 0 +15 29 44 0 +17 34 38 0 +6 21 22 0 +23 32 40 0 +24 27 46 0 +25 41 45 0 +7 26 43 0 +28 31 47 0 +20 35 38 0 +1 33 41 0 +2 42 44 0 +3 23 48 0 +4 31 45 0 +5 8 30 0 +9 16 35 36 +10 11 43 46 +12 21 28 34 +13 14 18 40 +15 24 37 39 +17 19 25 26 +7 22 27 47 +1 3 25 43 +2 18 20 21 +4 14 17 39 +5 6 38 41 +8 23 34 37 +9 10 27 32 +11 26 28 35 +12 15 19 42 +13 29 36 46 +16 40 44 48 +22 24 30 45 +31 33 34 44 +29 30 37 47 +1 16 23 28 +2 11 15 27 +3 22 26 40 +4 21 38 48 +5 12 25 36 diff --git a/lib/ldpc/peg/leftHandGirth.log b/lib/ldpc/peg/leftHandGirth.log new file mode 100644 index 000000000..bcaf4e985 --- /dev/null +++ b/lib/ldpc/peg/leftHandGirth.log @@ -0,0 +1 @@ +inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf 20 12 12 12 12 12 12 12 12 10 10 10 10 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 diff --git a/lib/ldpc/peg/peg-128-64-reg4.alist b/lib/ldpc/peg/peg-128-64-reg4.alist new file mode 100644 index 000000000..30c8edf97 --- /dev/null +++ b/lib/ldpc/peg/peg-128-64-reg4.alist @@ -0,0 +1,196 @@ +64 128 +9 4 +8 8 8 8 9 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 8 8 8 8 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 8 8 8 8 8 8 8 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 +1 17 33 50 67 83 98 114 0 +2 18 34 50 68 84 99 115 0 +3 19 35 51 69 85 100 115 0 +4 20 36 52 70 86 101 115 0 +2 20 35 53 71 87 102 113 128 +5 21 33 54 64 88 103 116 0 +6 19 37 55 72 89 98 117 0 +7 22 38 56 73 90 96 116 0 +8 23 34 57 72 91 104 118 0 +7 24 39 58 74 84 100 119 0 +9 22 40 59 74 92 105 120 0 +9 25 41 55 75 91 106 114 0 +10 25 36 51 67 74 107 121 0 +11 22 36 54 72 93 102 122 0 +12 25 42 60 76 89 103 123 0 +8 26 38 51 77 93 105 124 0 +13 27 40 61 77 94 99 119 0 +13 17 43 54 73 85 108 124 0 +1 28 40 62 71 84 108 125 0 +12 29 38 53 67 86 108 126 0 +14 28 43 51 78 94 96 117 0 +11 17 42 62 79 92 104 126 0 +4 29 39 57 65 87 109 116 0 +2 27 38 55 78 79 107 127 0 +13 24 44 53 66 83 103 117 0 +15 30 43 55 67 90 105 128 0 +6 22 45 48 78 88 106 119 0 +14 25 33 63 65 73 99 118 0 +6 31 46 64 80 95 102 125 0 +5 18 37 65 79 94 110 113 0 +14 23 44 59 71 88 111 123 0 +13 32 47 62 70 91 109 128 0 +15 23 41 56 76 95 112 0 0 +11 29 41 47 68 69 105 117 0 +10 30 37 64 73 86 111 119 0 +5 32 45 60 69 96 101 127 0 +15 24 48 62 65 96 97 115 0 +3 23 42 64 77 83 109 0 0 +16 18 40 52 69 89 102 112 0 +9 20 49 63 76 94 109 121 0 +15 20 33 66 77 84 110 127 0 +10 21 44 60 80 82 112 126 0 +16 26 41 58 81 92 107 125 0 +3 27 48 59 82 95 110 118 0 +10 27 49 57 71 89 101 124 0 +4 26 42 61 68 90 100 122 0 +6 26 44 50 75 85 101 118 0 +7 28 37 47 66 76 82 114 0 +12 19 43 52 80 88 104 121 0 +2 31 47 56 75 93 108 123 0 +1 31 36 59 81 87 104 124 0 +3 32 39 50 81 97 106 121 0 +12 24 34 54 79 90 98 120 0 +1 19 49 56 82 92 103 122 0 +7 21 35 61 70 93 106 125 0 +14 18 46 60 70 97 107 122 0 +8 31 39 61 63 86 98 127 128 +4 28 34 45 75 97 110 126 0 +16 30 45 63 72 95 100 113 0 +8 21 48 52 74 87 111 114 0 +9 32 46 58 68 83 113 123 0 +11 30 46 53 81 91 99 116 0 +5 29 49 58 78 85 112 120 0 +16 17 35 57 66 80 111 120 0 +1 19 51 54 +2 5 24 50 +3 38 44 52 +4 23 46 58 +6 30 36 63 +7 27 29 47 +8 10 48 55 +9 16 57 60 +11 12 40 61 +13 35 42 45 +14 22 34 62 +15 20 49 53 +17 18 25 32 +21 28 31 56 +26 33 37 41 +39 43 59 64 +1 18 22 64 +2 30 39 56 +3 7 49 54 +4 5 40 41 +6 42 55 60 +8 11 14 27 +9 31 33 38 +10 25 37 53 +12 13 15 28 +16 43 46 47 +17 24 44 45 +19 21 48 58 +20 23 34 63 +26 35 59 62 +29 50 51 57 +32 36 52 61 +1 6 28 41 +2 9 53 58 +3 5 55 64 +4 13 14 51 +7 30 35 48 +8 16 20 24 +10 23 52 57 +11 17 19 39 +12 33 34 43 +15 22 38 46 +18 21 26 49 +25 31 42 47 +27 36 58 59 +29 56 61 62 +32 34 48 50 +27 37 44 60 +40 45 54 63 +1 2 47 52 +3 13 16 21 +4 39 49 60 +5 20 25 62 +6 14 18 53 +7 12 24 26 +8 33 50 54 +9 23 45 64 +10 43 61 63 +11 31 44 51 +15 36 42 56 +17 46 55 57 +19 22 32 37 +28 40 57 59 +6 29 35 38 +23 28 30 37 +25 41 48 64 +1 13 20 26 +2 34 46 61 +3 34 36 39 +4 32 55 56 +5 19 31 45 +7 9 14 59 +8 18 28 35 +10 11 13 60 +12 47 50 58 +15 33 40 48 +16 17 38 41 +21 24 27 63 +22 24 30 53 +29 42 49 64 +43 51 52 62 +42 44 48 54 +1 25 38 61 +2 10 19 41 +3 18 47 63 +4 20 35 57 +5 23 51 60 +6 27 31 49 +7 15 39 45 +8 26 46 53 +9 12 32 62 +11 22 43 54 +14 16 50 55 +17 21 30 40 +29 33 44 59 +8 21 36 37 +37 52 56 58 +1 7 53 57 +2 17 28 62 +3 10 46 59 +4 36 45 47 +5 14 29 39 +6 15 25 54 +9 22 49 51 +11 16 26 34 +12 27 52 55 +13 24 43 56 +18 19 20 50 +23 32 38 40 +30 41 44 58 +31 35 60 64 +33 39 42 63 +5 30 59 61 +1 12 48 60 +2 3 4 37 +6 8 23 62 +7 21 25 34 +9 28 44 47 +10 17 27 35 +11 53 63 64 +13 40 49 52 +14 46 54 56 +15 31 50 61 +16 18 45 51 +19 29 43 55 +20 22 42 58 +24 36 41 57 +5 26 32 57 diff --git a/lib/ldpc/peg/peg-128-64-reg4.code b/lib/ldpc/peg/peg-128-64-reg4.code new file mode 100644 index 000000000..5e99ac6a3 --- /dev/null +++ b/lib/ldpc/peg/peg-128-64-reg4.code @@ -0,0 +1,67 @@ +128 +64 +9 +1 17 33 50 67 83 98 114 0 +2 18 34 50 68 84 99 115 0 +3 19 35 51 69 85 100 115 0 +4 20 36 52 70 86 101 115 0 +2 20 35 53 71 87 102 113 128 +5 21 33 54 64 88 103 116 0 +6 19 37 55 72 89 98 117 0 +7 22 38 56 73 90 96 116 0 +8 23 34 57 72 91 104 118 0 +7 24 39 58 74 84 100 119 0 +9 22 40 59 74 92 105 120 0 +9 25 41 55 75 91 106 114 0 +10 25 36 51 67 74 107 121 0 +11 22 36 54 72 93 102 122 0 +12 25 42 60 76 89 103 123 0 +8 26 38 51 77 93 105 124 0 +13 27 40 61 77 94 99 119 0 +13 17 43 54 73 85 108 124 0 +1 28 40 62 71 84 108 125 0 +12 29 38 53 67 86 108 126 0 +14 28 43 51 78 94 96 117 0 +11 17 42 62 79 92 104 126 0 +4 29 39 57 65 87 109 116 0 +2 27 38 55 78 79 107 127 0 +13 24 44 53 66 83 103 117 0 +15 30 43 55 67 90 105 128 0 +6 22 45 48 78 88 106 119 0 +14 25 33 63 65 73 99 118 0 +6 31 46 64 80 95 102 125 0 +5 18 37 65 79 94 110 113 0 +14 23 44 59 71 88 111 123 0 +13 32 47 62 70 91 109 128 0 +15 23 41 56 76 95 112 0 0 +11 29 41 47 68 69 105 117 0 +10 30 37 64 73 86 111 119 0 +5 32 45 60 69 96 101 127 0 +15 24 48 62 65 96 97 115 0 +3 23 42 64 77 83 109 0 0 +16 18 40 52 69 89 102 112 0 +9 20 49 63 76 94 109 121 0 +15 20 33 66 77 84 110 127 0 +10 21 44 60 80 82 112 126 0 +16 26 41 58 81 92 107 125 0 +3 27 48 59 82 95 110 118 0 +10 27 49 57 71 89 101 124 0 +4 26 42 61 68 90 100 122 0 +6 26 44 50 75 85 101 118 0 +7 28 37 47 66 76 82 114 0 +12 19 43 52 80 88 104 121 0 +2 31 47 56 75 93 108 123 0 +1 31 36 59 81 87 104 124 0 +3 32 39 50 81 97 106 121 0 +12 24 34 54 79 90 98 120 0 +1 19 49 56 82 92 103 122 0 +7 21 35 61 70 93 106 125 0 +14 18 46 60 70 97 107 122 0 +8 31 39 61 63 86 98 127 128 +4 28 34 45 75 97 110 126 0 +16 30 45 63 72 95 100 113 0 +8 21 48 52 74 87 111 114 0 +9 32 46 58 68 83 113 123 0 +11 30 46 53 81 91 99 116 0 +5 29 49 58 78 85 112 120 0 +16 17 35 57 66 80 111 120 0 diff --git a/lib/ldpc/peg/peg-128-72-reg4.alist b/lib/ldpc/peg/peg-128-72-reg4.alist new file mode 100644 index 000000000..6bb420a56 --- /dev/null +++ b/lib/ldpc/peg/peg-128-72-reg4.alist @@ -0,0 +1,188 @@ +56 128 +10 4 +9 9 9 9 9 9 9 9 10 9 9 9 9 9 9 9 9 10 9 9 9 9 10 9 10 9 9 9 9 9 10 9 9 9 9 9 9 9 9 9 9 9 10 9 9 9 10 10 9 9 9 10 9 9 9 8 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 +1 15 30 44 58 71 84 100 115 0 +2 16 31 44 59 72 86 101 116 0 +3 17 31 45 60 73 87 102 117 0 +2 18 32 46 58 73 85 103 112 0 +4 19 32 47 61 74 88 104 118 0 +5 20 33 48 62 75 88 105 116 0 +6 19 34 49 63 76 89 105 119 0 +7 15 27 45 64 77 88 106 120 0 +8 15 35 50 59 75 90 107 121 127 +7 21 33 51 65 73 91 108 114 0 +9 22 30 46 59 78 92 99 122 0 +9 19 35 52 60 71 93 109 120 0 +10 20 31 53 63 79 93 107 123 0 +11 15 36 53 66 78 85 110 124 0 +8 23 37 49 67 71 86 111 118 0 +12 22 34 54 68 80 94 109 114 0 +1 24 34 52 65 75 87 97 123 0 +13 25 29 43 69 81 85 100 121 128 +12 17 38 55 63 82 90 101 125 0 +11 26 39 47 56 76 95 106 117 0 +2 27 40 49 69 74 94 108 117 0 +4 16 30 55 64 76 91 103 126 0 +13 17 28 47 65 80 96 111 124 126 +6 18 36 51 70 83 94 111 121 0 +13 16 34 48 57 82 95 112 120 127 +6 28 40 48 58 79 90 113 122 0 +5 27 41 46 67 83 91 109 127 0 +14 16 42 54 63 78 97 100 118 0 +13 27 39 52 70 84 90 114 118 0 +10 22 42 47 64 81 98 110 116 0 +11 22 29 55 60 84 97 108 111 127 +5 26 37 55 57 74 96 98 128 0 +3 21 35 54 62 82 98 104 113 0 +14 21 43 50 68 77 93 110 117 0 +9 24 33 56 69 72 89 110 112 0 +12 26 42 53 62 73 89 99 121 0 +10 25 35 41 57 76 97 101 122 0 +10 18 39 44 66 77 99 102 119 0 +3 29 40 44 61 83 93 106 125 0 +4 23 39 45 65 85 89 107 113 0 +6 26 30 43 61 80 86 108 123 0 +7 19 31 57 69 83 99 113 124 0 +3 24 37 43 66 84 92 105 120 126 +2 24 38 50 70 71 88 102 122 0 +1 20 32 51 68 81 86 102 124 0 +12 23 41 51 59 74 87 106 115 0 +14 28 37 46 62 72 95 114 115 125 +1 28 41 49 61 82 92 103 116 128 +7 25 38 56 60 75 98 103 115 0 +8 29 33 45 58 78 96 109 119 0 +4 25 36 54 67 77 96 105 123 0 +14 20 38 52 66 80 91 104 112 128 +8 18 42 56 68 79 87 104 125 0 +9 23 40 53 70 81 95 101 126 0 +11 21 32 48 67 72 94 107 119 0 +5 17 36 50 64 79 92 100 0 0 +1 17 45 48 +2 4 21 44 +3 33 39 43 +5 22 40 51 +6 27 32 56 +7 24 26 41 +8 10 42 49 +9 15 50 53 +11 12 35 54 +13 30 37 38 +14 20 31 55 +16 19 36 46 +18 23 25 29 +28 34 47 52 +1 8 9 14 +2 22 25 28 +3 19 23 56 +4 24 38 53 +5 7 12 42 +6 13 45 52 +10 33 34 55 +11 16 30 31 +15 40 46 54 +17 35 43 44 +18 37 49 51 +20 32 36 41 +8 21 27 29 +23 26 47 48 +18 31 39 50 +1 11 22 41 +2 3 13 42 +4 5 45 55 +6 10 35 50 +7 16 17 25 +9 12 33 37 +14 24 51 56 +15 32 43 47 +19 44 49 52 +20 29 38 40 +21 26 39 54 +27 37 46 48 +28 30 36 53 +18 34 41 43 +1 2 38 39 +3 8 40 50 +4 11 27 47 +5 20 23 30 +6 25 26 55 +7 15 21 48 +9 34 44 56 +10 24 45 46 +12 17 29 52 +13 14 36 54 +16 28 33 51 +19 22 31 32 +20 35 49 53 +25 32 37 42 +1 4 26 50 +2 9 11 46 +3 12 31 49 +5 39 41 48 +6 33 36 47 +7 13 19 28 +8 22 30 56 +10 17 23 40 +14 38 43 52 +15 27 51 55 +16 34 45 53 +18 21 35 42 +24 29 44 54 +1 12 15 44 +2 35 47 55 +3 4 10 36 +5 21 32 46 +6 9 17 49 +7 20 22 37 +8 34 38 51 +11 14 28 50 +13 26 53 56 +16 23 41 52 +18 30 45 54 +19 25 33 48 +24 27 39 42 +1 29 31 43 +4 14 18 40 +2 15 41 45 +3 17 46 53 +5 6 8 44 +7 35 36 40 +9 19 26 29 +10 22 27 52 +11 43 48 56 +12 13 34 39 +16 21 24 55 +20 25 47 54 +23 32 50 51 +17 28 31 37 +30 32 33 49 +11 36 38 42 +1 18 28 56 +2 19 37 54 +3 38 44 45 +4 22 48 49 +5 33 52 53 +6 7 43 51 +8 20 39 46 +9 13 40 55 +10 21 31 41 +12 16 27 50 +14 30 34 35 +15 23 24 31 +4 25 35 52 +26 33 40 42 +10 16 29 47 +1 46 47 49 +2 6 30 48 +3 20 21 34 +5 15 28 29 +7 38 50 55 +8 12 25 43 +9 18 24 36 +11 26 37 44 +13 17 41 51 +14 23 42 45 +19 39 47 53 +22 23 43 54 +9 25 27 31 +18 32 48 52 diff --git a/lib/ldpc/peg/peg-128-72-reg4.code b/lib/ldpc/peg/peg-128-72-reg4.code new file mode 100644 index 000000000..09108dbff --- /dev/null +++ b/lib/ldpc/peg/peg-128-72-reg4.code @@ -0,0 +1,59 @@ +128 +56 +10 +1 15 30 44 58 71 84 100 115 0 +2 16 31 44 59 72 86 101 116 0 +3 17 31 45 60 73 87 102 117 0 +2 18 32 46 58 73 85 103 112 0 +4 19 32 47 61 74 88 104 118 0 +5 20 33 48 62 75 88 105 116 0 +6 19 34 49 63 76 89 105 119 0 +7 15 27 45 64 77 88 106 120 0 +8 15 35 50 59 75 90 107 121 127 +7 21 33 51 65 73 91 108 114 0 +9 22 30 46 59 78 92 99 122 0 +9 19 35 52 60 71 93 109 120 0 +10 20 31 53 63 79 93 107 123 0 +11 15 36 53 66 78 85 110 124 0 +8 23 37 49 67 71 86 111 118 0 +12 22 34 54 68 80 94 109 114 0 +1 24 34 52 65 75 87 97 123 0 +13 25 29 43 69 81 85 100 121 128 +12 17 38 55 63 82 90 101 125 0 +11 26 39 47 56 76 95 106 117 0 +2 27 40 49 69 74 94 108 117 0 +4 16 30 55 64 76 91 103 126 0 +13 17 28 47 65 80 96 111 124 126 +6 18 36 51 70 83 94 111 121 0 +13 16 34 48 57 82 95 112 120 127 +6 28 40 48 58 79 90 113 122 0 +5 27 41 46 67 83 91 109 127 0 +14 16 42 54 63 78 97 100 118 0 +13 27 39 52 70 84 90 114 118 0 +10 22 42 47 64 81 98 110 116 0 +11 22 29 55 60 84 97 108 111 127 +5 26 37 55 57 74 96 98 128 0 +3 21 35 54 62 82 98 104 113 0 +14 21 43 50 68 77 93 110 117 0 +9 24 33 56 69 72 89 110 112 0 +12 26 42 53 62 73 89 99 121 0 +10 25 35 41 57 76 97 101 122 0 +10 18 39 44 66 77 99 102 119 0 +3 29 40 44 61 83 93 106 125 0 +4 23 39 45 65 85 89 107 113 0 +6 26 30 43 61 80 86 108 123 0 +7 19 31 57 69 83 99 113 124 0 +3 24 37 43 66 84 92 105 120 126 +2 24 38 50 70 71 88 102 122 0 +1 20 32 51 68 81 86 102 124 0 +12 23 41 51 59 74 87 106 115 0 +14 28 37 46 62 72 95 114 115 125 +1 28 41 49 61 82 92 103 116 128 +7 25 38 56 60 75 98 103 115 0 +8 29 33 45 58 78 96 109 119 0 +4 25 36 54 67 77 96 105 123 0 +14 20 38 52 66 80 91 104 112 128 +8 18 42 56 68 79 87 104 125 0 +9 23 40 53 70 81 95 101 126 0 +11 21 32 48 67 72 94 107 119 0 +5 17 36 50 64 79 92 100 0 0 diff --git a/lib/ldpc/peg/peg-128-80-reg3.alist b/lib/ldpc/peg/peg-128-80-reg3.alist new file mode 100644 index 000000000..e2d9e15f9 --- /dev/null +++ b/lib/ldpc/peg/peg-128-80-reg3.alist @@ -0,0 +1,180 @@ +48 128 +8 3 +8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +1 17 34 51 66 81 99 113 +2 18 35 50 67 82 100 114 +3 19 36 52 68 82 101 115 +2 20 36 51 69 83 102 116 +4 19 37 53 66 84 103 117 +5 21 38 54 70 85 92 114 +6 22 39 55 66 85 96 118 +7 23 32 56 71 86 103 119 +8 20 40 55 72 86 104 120 +9 19 41 57 73 87 105 121 +10 24 36 56 74 88 106 122 +10 17 33 47 75 89 107 119 +11 21 42 51 76 87 108 123 +1 25 40 58 74 84 109 124 +12 22 42 49 77 90 110 122 +13 26 43 59 68 89 104 113 +13 22 44 57 75 91 106 125 +12 23 37 46 78 88 109 113 +3 27 34 60 65 87 111 126 +6 27 45 61 79 89 98 114 +14 28 34 62 72 92 107 125 +8 27 42 59 71 92 112 117 +15 20 46 57 79 93 101 117 +9 29 45 62 74 94 108 127 +8 30 38 63 73 95 110 125 +16 29 47 64 69 96 110 128 +16 23 48 63 76 94 111 121 +7 25 39 52 70 97 108 116 +4 26 45 63 67 83 90 126 +15 28 39 50 76 88 103 115 +15 26 33 58 65 97 102 127 +14 31 47 52 77 81 93 121 +14 24 37 61 71 82 99 116 +4 31 40 54 80 91 107 122 +5 32 41 58 77 98 111 120 +9 18 49 65 79 85 104 123 +10 30 43 60 69 84 112 123 +1 18 43 48 73 91 98 119 +3 21 46 64 67 86 112 118 +5 24 48 55 75 93 105 128 +2 32 44 62 80 95 99 124 +16 28 41 59 80 83 100 118 +11 33 35 53 72 96 109 115 +11 25 44 60 78 90 100 128 +6 31 35 56 70 95 102 126 +12 17 50 54 68 94 106 120 +13 29 38 53 78 97 105 124 +7 30 49 61 64 81 101 127 +1 14 38 +2 4 41 +3 19 39 +5 29 34 +6 35 40 +7 20 45 +8 28 48 +9 22 25 +10 24 36 +11 12 37 +13 43 44 +15 18 46 +16 17 47 +21 32 33 +23 30 31 +26 27 42 +1 12 46 +2 36 38 +3 5 10 +4 9 23 +6 13 39 +7 15 17 +8 18 27 +11 33 40 +14 28 44 +16 29 31 +19 20 22 +21 30 42 +24 26 47 +25 37 48 +32 34 45 +8 35 41 +12 31 43 +1 19 21 +2 43 45 +3 4 11 +5 18 33 +6 25 47 +7 28 30 +9 14 34 +10 35 42 +13 15 22 +16 37 38 +17 41 44 +20 24 29 +18 23 39 +12 26 32 +27 38 40 +15 36 48 +2 30 46 +1 4 13 +3 28 32 +5 43 47 +6 34 46 +7 9 40 +8 11 45 +10 17 23 +14 31 35 +16 22 42 +19 37 44 +20 33 48 +21 24 41 +25 27 29 +26 39 48 +19 31 36 +1 5 7 +2 29 39 +3 16 46 +4 26 37 +6 28 45 +8 22 33 +9 21 43 +10 25 38 +11 14 24 +12 17 40 +13 27 30 +15 32 35 +18 44 47 +20 23 36 +34 41 42 +1 32 48 +2 3 33 +4 29 42 +5 14 37 +6 7 36 +8 9 39 +10 13 19 +11 18 30 +12 16 20 +15 29 44 +17 34 38 +6 21 22 +23 32 40 +24 27 46 +25 41 45 +7 26 43 +28 31 47 +20 35 38 +1 33 41 +2 42 44 +3 23 48 +4 31 45 +5 8 30 +9 16 36 +10 40 47 +11 17 46 +12 21 34 +13 24 28 +14 18 43 +15 25 26 +19 27 35 +22 37 39 +1 16 18 +2 6 20 +3 30 43 +4 28 33 +5 22 23 +7 39 42 +8 12 38 +9 35 46 +10 27 32 +11 15 34 +13 36 37 +14 41 47 +17 21 25 +19 29 45 +24 31 48 +26 40 44 diff --git a/lib/ldpc/peg/peg-128-80-reg3.code b/lib/ldpc/peg/peg-128-80-reg3.code new file mode 100644 index 000000000..10064e072 --- /dev/null +++ b/lib/ldpc/peg/peg-128-80-reg3.code @@ -0,0 +1,51 @@ +128 +48 +8 +1 17 34 51 66 81 99 113 +2 18 35 50 67 82 100 114 +3 19 36 52 68 82 101 115 +2 20 36 51 69 83 102 116 +4 19 37 53 66 84 103 117 +5 21 38 54 70 85 92 114 +6 22 39 55 66 85 96 118 +7 23 32 56 71 86 103 119 +8 20 40 55 72 86 104 120 +9 19 41 57 73 87 105 121 +10 24 36 56 74 88 106 122 +10 17 33 47 75 89 107 119 +11 21 42 51 76 87 108 123 +1 25 40 58 74 84 109 124 +12 22 42 49 77 90 110 122 +13 26 43 59 68 89 104 113 +13 22 44 57 75 91 106 125 +12 23 37 46 78 88 109 113 +3 27 34 60 65 87 111 126 +6 27 45 61 79 89 98 114 +14 28 34 62 72 92 107 125 +8 27 42 59 71 92 112 117 +15 20 46 57 79 93 101 117 +9 29 45 62 74 94 108 127 +8 30 38 63 73 95 110 125 +16 29 47 64 69 96 110 128 +16 23 48 63 76 94 111 121 +7 25 39 52 70 97 108 116 +4 26 45 63 67 83 90 126 +15 28 39 50 76 88 103 115 +15 26 33 58 65 97 102 127 +14 31 47 52 77 81 93 121 +14 24 37 61 71 82 99 116 +4 31 40 54 80 91 107 122 +5 32 41 58 77 98 111 120 +9 18 49 65 79 85 104 123 +10 30 43 60 69 84 112 123 +1 18 43 48 73 91 98 119 +3 21 46 64 67 86 112 118 +5 24 48 55 75 93 105 128 +2 32 44 62 80 95 99 124 +16 28 41 59 80 83 100 118 +11 33 35 53 72 96 109 115 +11 25 44 60 78 90 100 128 +6 31 35 56 70 95 102 126 +12 17 50 54 68 94 106 120 +13 29 38 53 78 97 105 124 +7 30 49 61 64 81 101 127 diff --git a/lib/ldpc/peg/peg-128-80-reg4.alist b/lib/ldpc/peg/peg-128-80-reg4.alist new file mode 100644 index 000000000..2487ea9be --- /dev/null +++ b/lib/ldpc/peg/peg-128-80-reg4.alist @@ -0,0 +1,180 @@ +48 128 +12 4 +11 11 11 11 11 11 11 11 11 11 11 11 11 10 11 11 11 10 10 11 10 11 10 11 10 10 10 10 10 11 10 12 11 11 10 11 11 11 11 11 10 10 11 10 10 11 11 10 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 +1 13 26 38 51 62 75 86 99 111 124 0 +2 13 27 39 49 63 76 87 100 112 121 0 +3 14 27 40 52 64 74 88 101 104 123 0 +2 15 28 41 53 65 77 89 102 113 125 0 +4 16 26 41 54 66 71 90 101 114 122 0 +5 15 29 40 55 67 78 91 98 110 126 0 +6 17 30 42 56 63 79 90 103 115 124 0 +7 18 25 43 56 68 80 87 104 113 122 0 +7 13 29 44 52 69 81 92 102 114 127 0 +8 14 29 42 57 66 77 86 97 116 119 0 +9 19 26 45 56 69 76 93 97 110 128 0 +9 14 28 46 54 68 82 91 99 112 118 0 +8 20 31 47 49 69 78 88 105 109 124 0 +1 20 32 42 52 70 76 94 106 117 0 0 +10 15 33 48 52 62 80 93 100 118 119 0 +11 18 31 39 48 67 83 94 97 114 125 0 +12 15 34 37 49 64 73 85 99 116 127 0 +2 21 25 45 55 64 83 92 103 119 0 0 +4 22 33 46 55 65 84 86 107 108 0 0 +11 16 27 45 53 70 79 95 107 111 126 0 +6 13 33 45 57 68 85 96 101 120 0 0 +12 17 25 38 58 67 76 96 107 118 123 0 +5 18 30 44 59 71 77 93 106 120 0 0 +6 20 28 43 50 72 83 86 95 121 127 0 +11 23 28 38 59 73 81 88 108 115 0 0 +10 19 32 49 60 67 75 89 101 108 0 0 +5 22 27 48 54 69 73 96 103 113 0 0 +12 23 35 47 50 62 79 97 106 122 0 0 +3 18 26 47 53 61 82 85 98 108 0 0 +9 22 31 41 58 60 72 87 106 115 116 0 +10 16 30 50 58 65 73 91 104 109 0 0 +10 24 36 41 57 61 78 94 103 111 123 127 +4 17 29 43 59 74 85 89 109 112 128 0 +3 21 34 38 60 63 77 95 105 114 128 0 +7 24 37 46 53 71 74 96 105 110 0 0 +6 19 34 47 51 70 81 91 100 123 125 0 +2 24 31 40 56 66 81 84 95 118 120 0 +1 14 30 37 48 72 78 92 107 122 128 0 +3 23 24 42 55 68 75 93 109 121 125 0 +12 22 32 43 51 71 82 88 102 119 126 0 +1 23 36 44 58 64 80 90 110 112 0 0 +7 19 35 40 59 65 82 90 111 117 0 0 +9 17 36 39 50 66 75 92 105 117 126 0 +4 21 35 39 57 70 80 98 99 115 0 0 +8 25 33 37 54 60 79 94 98 121 0 0 +8 16 34 46 61 62 83 87 102 117 120 0 +11 21 32 44 61 72 74 84 100 113 124 0 +5 20 35 36 51 63 84 89 104 116 0 0 +1 14 38 41 +2 4 18 37 +3 29 34 39 +5 19 33 44 +6 23 27 48 +7 21 24 36 +8 9 35 42 +10 13 45 46 +11 12 30 43 +15 26 31 32 +16 20 25 47 +17 22 28 40 +1 2 9 21 +3 10 12 38 +4 6 15 17 +5 20 31 46 +7 22 33 43 +8 16 23 29 +11 26 36 42 +13 14 24 48 +18 34 44 47 +19 27 30 40 +25 28 39 41 +32 35 37 39 +8 18 22 45 +1 5 11 29 +2 3 20 27 +4 12 24 25 +6 9 10 33 +7 23 31 38 +13 16 30 37 +14 26 40 47 +15 19 21 45 +17 34 36 46 +28 42 44 48 +32 41 43 48 +17 35 38 45 +1 22 25 34 +2 16 43 44 +3 6 37 42 +4 5 30 32 +7 10 14 39 +8 24 33 40 +9 23 41 47 +11 18 20 21 +12 19 35 46 +13 28 29 36 +15 16 27 38 +2 13 17 26 +24 28 31 43 +1 36 40 48 +3 9 14 15 +4 20 29 35 +5 12 27 45 +6 18 19 39 +7 8 11 37 +10 21 32 44 +22 30 31 41 +23 25 33 42 +26 30 34 45 +29 32 46 47 +1 15 28 46 +2 7 34 48 +3 17 18 41 +4 19 31 42 +5 10 37 43 +6 16 22 26 +8 12 21 39 +9 11 13 27 +14 20 36 44 +5 23 35 40 +24 30 38 47 +17 25 27 31 +3 33 35 47 +1 26 39 43 +2 11 14 22 +4 10 23 34 +6 13 32 38 +7 20 28 45 +8 15 41 44 +9 25 36 37 +12 29 40 42 +16 18 24 46 +19 37 47 48 +17 21 29 33 +1 10 19 24 +2 8 30 46 +3 13 25 40 +4 26 33 48 +5 7 41 42 +6 12 31 36 +9 18 38 43 +11 15 23 39 +14 16 32 45 +20 24 34 37 +21 22 27 35 +10 11 16 28 +6 29 44 45 +1 12 17 44 +2 15 36 47 +3 5 21 26 +4 9 40 46 +7 18 27 32 +3 8 31 48 +13 34 35 43 +14 23 28 30 +19 20 22 38 +19 25 26 29 +13 31 33 39 +6 11 35 41 +1 20 32 42 +2 12 33 41 +4 8 27 47 +5 9 16 34 +7 25 30 44 +10 17 30 48 +14 42 43 46 +12 15 22 37 +10 15 18 40 +21 23 37 46 +2 24 39 45 +5 8 28 38 +3 22 32 36 +1 7 13 47 +4 16 36 39 +6 20 40 43 +9 17 24 32 +11 33 34 38 diff --git a/lib/ldpc/peg/peg-128-80-reg4.code b/lib/ldpc/peg/peg-128-80-reg4.code new file mode 100644 index 000000000..572e6221b --- /dev/null +++ b/lib/ldpc/peg/peg-128-80-reg4.code @@ -0,0 +1,51 @@ +128 +48 +12 +1 13 26 38 51 62 75 86 99 111 124 0 +2 13 27 39 49 63 76 87 100 112 121 0 +3 14 27 40 52 64 74 88 101 104 123 0 +2 15 28 41 53 65 77 89 102 113 125 0 +4 16 26 41 54 66 71 90 101 114 122 0 +5 15 29 40 55 67 78 91 98 110 126 0 +6 17 30 42 56 63 79 90 103 115 124 0 +7 18 25 43 56 68 80 87 104 113 122 0 +7 13 29 44 52 69 81 92 102 114 127 0 +8 14 29 42 57 66 77 86 97 116 119 0 +9 19 26 45 56 69 76 93 97 110 128 0 +9 14 28 46 54 68 82 91 99 112 118 0 +8 20 31 47 49 69 78 88 105 109 124 0 +1 20 32 42 52 70 76 94 106 117 0 0 +10 15 33 48 52 62 80 93 100 118 119 0 +11 18 31 39 48 67 83 94 97 114 125 0 +12 15 34 37 49 64 73 85 99 116 127 0 +2 21 25 45 55 64 83 92 103 119 0 0 +4 22 33 46 55 65 84 86 107 108 0 0 +11 16 27 45 53 70 79 95 107 111 126 0 +6 13 33 45 57 68 85 96 101 120 0 0 +12 17 25 38 58 67 76 96 107 118 123 0 +5 18 30 44 59 71 77 93 106 120 0 0 +6 20 28 43 50 72 83 86 95 121 127 0 +11 23 28 38 59 73 81 88 108 115 0 0 +10 19 32 49 60 67 75 89 101 108 0 0 +5 22 27 48 54 69 73 96 103 113 0 0 +12 23 35 47 50 62 79 97 106 122 0 0 +3 18 26 47 53 61 82 85 98 108 0 0 +9 22 31 41 58 60 72 87 106 115 116 0 +10 16 30 50 58 65 73 91 104 109 0 0 +10 24 36 41 57 61 78 94 103 111 123 127 +4 17 29 43 59 74 85 89 109 112 128 0 +3 21 34 38 60 63 77 95 105 114 128 0 +7 24 37 46 53 71 74 96 105 110 0 0 +6 19 34 47 51 70 81 91 100 123 125 0 +2 24 31 40 56 66 81 84 95 118 120 0 +1 14 30 37 48 72 78 92 107 122 128 0 +3 23 24 42 55 68 75 93 109 121 125 0 +12 22 32 43 51 71 82 88 102 119 126 0 +1 23 36 44 58 64 80 90 110 112 0 0 +7 19 35 40 59 65 82 90 111 117 0 0 +9 17 36 39 50 66 75 92 105 117 126 0 +4 21 35 39 57 70 80 98 99 115 0 0 +8 25 33 37 54 60 79 94 98 121 0 0 +8 16 34 46 61 62 83 87 102 117 120 0 +11 21 32 44 61 72 74 84 100 113 124 0 +5 20 35 36 51 63 84 89 104 116 0 0 diff --git a/lib/ldpc/peg/peg-144-72-reg4.alist b/lib/ldpc/peg/peg-144-72-reg4.alist new file mode 100644 index 000000000..cad344714 --- /dev/null +++ b/lib/ldpc/peg/peg-144-72-reg4.alist @@ -0,0 +1,220 @@ +72 144 +9 4 +8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 +1 19 38 57 74 94 110 128 0 +2 20 39 58 75 95 111 129 0 +3 21 40 59 76 95 108 130 0 +4 22 41 60 69 96 112 131 0 +2 19 42 60 77 97 113 132 0 +5 20 43 61 78 98 114 133 0 +6 22 44 62 79 99 115 127 0 +7 23 41 58 73 100 113 134 0 +8 23 45 63 80 101 114 135 0 +7 24 46 64 81 98 112 136 0 +9 25 47 64 75 102 116 130 0 +9 22 48 59 82 98 117 137 0 +10 25 49 65 80 99 118 132 0 +11 26 50 66 75 96 119 127 0 +12 27 43 67 82 103 120 136 0 +13 28 50 68 82 97 121 138 0 +8 29 47 62 83 104 121 132 0 +13 25 38 53 61 100 111 135 0 +14 22 38 63 83 95 122 133 0 +15 30 41 63 81 105 123 129 0 +1 28 51 64 80 104 119 126 0 +12 24 40 69 84 100 124 133 0 +16 23 52 65 77 106 110 139 0 +11 31 37 55 85 101 118 140 0 +13 32 48 70 77 94 122 140 0 +2 27 53 71 78 101 110 131 0 +4 29 46 71 77 88 124 130 0 +14 24 49 56 86 107 119 130 144 +14 33 47 70 87 108 115 137 0 +6 32 52 69 78 91 125 141 0 +15 26 51 61 76 86 117 140 0 +17 33 51 59 88 109 113 142 0 +6 31 40 54 88 102 111 136 0 +5 33 54 62 86 103 118 141 0 +13 24 44 72 75 103 114 142 0 +15 34 47 67 85 99 110 143 0 +18 28 49 58 89 92 122 131 0 +18 21 38 68 85 91 115 129 0 +11 33 36 58 84 106 121 128 0 +10 20 50 59 90 94 120 135 0 +5 29 42 55 89 106 117 136 0 +3 30 45 61 84 104 115 144 0 +15 20 52 57 89 102 126 142 0 +16 35 53 72 80 102 125 143 0 +9 26 39 71 74 105 125 139 0 +16 30 44 71 85 90 112 134 0 +17 25 55 69 76 105 119 134 0 +10 35 37 63 91 108 113 144 0 +17 27 44 57 87 92 123 143 0 +3 32 46 67 92 96 109 0 0 +10 36 46 60 93 107 111 133 0 +4 35 54 56 74 100 117 138 0 +6 34 39 66 87 93 118 138 0 +7 34 48 55 83 96 120 139 0 +12 35 42 68 79 105 112 141 0 +2 31 51 67 79 107 116 128 0 +1 29 40 73 90 101 125 138 0 +3 19 37 72 87 99 122 139 0 +12 26 45 65 73 92 121 137 0 +14 30 42 66 74 109 114 140 0 +1 36 48 56 81 97 116 134 0 +7 19 50 62 91 107 109 143 0 +17 23 56 70 78 93 120 129 0 +8 36 53 68 86 108 123 142 0 +4 21 39 70 89 98 123 132 0 +18 27 54 66 81 104 106 137 0 +8 31 49 57 82 93 124 127 0 +9 37 43 73 84 95 126 131 0 +18 34 45 72 88 94 116 141 0 +11 21 52 64 79 103 124 135 0 +5 32 41 65 90 97 126 128 0 +16 28 43 60 76 83 127 144 0 +1 21 57 61 +2 5 26 56 +3 42 50 58 +4 27 52 65 +6 34 41 71 +7 30 33 53 +8 10 54 62 +9 17 64 67 +11 12 45 68 +13 40 48 51 +14 24 39 70 +15 22 55 59 +16 18 25 35 +19 28 29 60 +20 31 36 43 +23 44 46 72 +32 47 49 63 +37 38 66 69 +1 5 58 62 +2 6 40 43 +3 38 65 70 +4 7 12 19 +8 9 23 63 +10 22 28 35 +11 13 18 47 +14 31 45 59 +15 26 49 66 +16 21 37 72 +17 27 41 57 +20 42 46 60 +24 33 56 67 +25 30 50 71 +29 32 34 39 +36 53 54 69 +44 48 52 55 +39 51 61 64 +24 48 58 68 +1 18 19 38 +2 45 53 65 +3 22 33 57 +4 8 20 71 +5 41 55 60 +6 15 68 72 +7 35 46 49 +9 42 59 69 +10 27 50 51 +11 17 29 36 +12 25 54 61 +13 28 37 67 +14 16 40 62 +21 31 32 56 +23 30 43 70 +18 26 44 64 +33 34 52 66 +24 41 47 54 +28 52 61 63 +1 43 49 67 +2 8 37 39 +3 12 32 40 +4 5 51 72 +6 18 31 42 +7 17 34 62 +9 19 20 48 +10 11 21 70 +13 23 59 71 +14 53 60 66 +15 36 50 56 +16 38 55 64 +4 22 30 47 +25 29 63 65 +26 27 45 46 +35 44 58 69 +8 57 59 68 +1 45 52 60 +2 11 14 35 +3 31 47 72 +5 23 25 27 +6 26 30 63 +7 55 56 70 +9 13 21 44 +10 20 61 66 +12 15 16 67 +17 19 54 72 +22 39 42 68 +24 36 38 46 +28 31 34 64 +29 49 53 58 +27 32 33 69 +37 41 43 65 +40 46 57 71 +30 38 48 62 +37 49 50 59 +51 53 63 67 +1 25 40 69 +2 3 19 68 +4 14 50 54 +5 16 61 71 +6 10 12 65 +7 13 36 58 +8 18 22 52 +9 24 26 57 +11 33 43 44 +15 34 35 70 +17 21 42 66 +20 45 47 55 +23 39 41 66 +28 51 56 62 +3 29 48 64 +32 50 60 62 +1 23 26 36 +2 18 33 51 +4 10 46 55 +5 8 32 48 +6 9 35 60 +7 29 38 42 +11 56 61 69 +12 31 41 52 +13 24 34 53 +14 21 28 47 +15 40 54 63 +16 17 39 59 +19 25 37 58 +20 49 64 65 +22 27 67 70 +30 44 45 57 +21 43 68 71 +7 14 67 72 +1 39 56 71 +2 20 38 63 +3 11 27 28 +4 26 37 68 +5 13 17 65 +6 19 22 51 +8 46 47 61 +9 18 40 70 +10 15 33 41 +12 29 59 66 +16 52 53 57 +23 45 54 58 +24 25 31 60 +30 34 55 69 +32 35 43 64 +36 44 49 62 +28 42 48 72 diff --git a/lib/ldpc/peg/peg-144-72-reg4.code b/lib/ldpc/peg/peg-144-72-reg4.code new file mode 100644 index 000000000..78747e924 --- /dev/null +++ b/lib/ldpc/peg/peg-144-72-reg4.code @@ -0,0 +1,75 @@ +144 +72 +9 +1 19 38 57 74 94 110 128 0 +2 20 39 58 75 95 111 129 0 +3 21 40 59 76 95 108 130 0 +4 22 41 60 69 96 112 131 0 +2 19 42 60 77 97 113 132 0 +5 20 43 61 78 98 114 133 0 +6 22 44 62 79 99 115 127 0 +7 23 41 58 73 100 113 134 0 +8 23 45 63 80 101 114 135 0 +7 24 46 64 81 98 112 136 0 +9 25 47 64 75 102 116 130 0 +9 22 48 59 82 98 117 137 0 +10 25 49 65 80 99 118 132 0 +11 26 50 66 75 96 119 127 0 +12 27 43 67 82 103 120 136 0 +13 28 50 68 82 97 121 138 0 +8 29 47 62 83 104 121 132 0 +13 25 38 53 61 100 111 135 0 +14 22 38 63 83 95 122 133 0 +15 30 41 63 81 105 123 129 0 +1 28 51 64 80 104 119 126 0 +12 24 40 69 84 100 124 133 0 +16 23 52 65 77 106 110 139 0 +11 31 37 55 85 101 118 140 0 +13 32 48 70 77 94 122 140 0 +2 27 53 71 78 101 110 131 0 +4 29 46 71 77 88 124 130 0 +14 24 49 56 86 107 119 130 144 +14 33 47 70 87 108 115 137 0 +6 32 52 69 78 91 125 141 0 +15 26 51 61 76 86 117 140 0 +17 33 51 59 88 109 113 142 0 +6 31 40 54 88 102 111 136 0 +5 33 54 62 86 103 118 141 0 +13 24 44 72 75 103 114 142 0 +15 34 47 67 85 99 110 143 0 +18 28 49 58 89 92 122 131 0 +18 21 38 68 85 91 115 129 0 +11 33 36 58 84 106 121 128 0 +10 20 50 59 90 94 120 135 0 +5 29 42 55 89 106 117 136 0 +3 30 45 61 84 104 115 144 0 +15 20 52 57 89 102 126 142 0 +16 35 53 72 80 102 125 143 0 +9 26 39 71 74 105 125 139 0 +16 30 44 71 85 90 112 134 0 +17 25 55 69 76 105 119 134 0 +10 35 37 63 91 108 113 144 0 +17 27 44 57 87 92 123 143 0 +3 32 46 67 92 96 109 0 0 +10 36 46 60 93 107 111 133 0 +4 35 54 56 74 100 117 138 0 +6 34 39 66 87 93 118 138 0 +7 34 48 55 83 96 120 139 0 +12 35 42 68 79 105 112 141 0 +2 31 51 67 79 107 116 128 0 +1 29 40 73 90 101 125 138 0 +3 19 37 72 87 99 122 139 0 +12 26 45 65 73 92 121 137 0 +14 30 42 66 74 109 114 140 0 +1 36 48 56 81 97 116 134 0 +7 19 50 62 91 107 109 143 0 +17 23 56 70 78 93 120 129 0 +8 36 53 68 86 108 123 142 0 +4 21 39 70 89 98 123 132 0 +18 27 54 66 81 104 106 137 0 +8 31 49 57 82 93 124 127 0 +9 37 43 73 84 95 126 131 0 +18 34 45 72 88 94 116 141 0 +11 21 52 64 79 103 124 135 0 +5 32 41 65 90 97 126 128 0 +16 28 43 60 76 83 127 144 0 diff --git a/lib/ldpc/peg/peg2alist b/lib/ldpc/peg/peg2alist new file mode 100755 index 000000000..4cc809ff9 --- /dev/null +++ b/lib/ldpc/peg/peg2alist @@ -0,0 +1,37 @@ +#!/opt/local/bin/octave -qf +# read a parity check matrix produced by the peg algorithm and +# convert to alist format so that it can be read using alist_to_pcheck +arg_list=argv(); +filename=arg_list(1); +fid=fopen(filename,"r"); +N=fscanf(fid,"%d",[1]); +M=fscanf(fid,"%d",[1]); +pcheck=zeros(M,N); +max_bits_in_check=fscanf(fid,"%d",[1]); +for i=1:M + vec=fscanf(fid,"%d",[max_bits_in_check]); + pcheck(i,vec(vec>0))=1; +endfor + +max_bits_in_check2=max(sum(pcheck')); +max_checks_per_bit=max(sum(pcheck)); +printf("%d %d\n",M,N); +printf("%d %d\n",max_bits_in_check2,max_checks_per_bit); +printf("%d ",sum(pcheck')); +printf("\n"); +printf("%d ",sum(pcheck)); +printf("\n"); +for i=1:M + vec=find(pcheck(i,:)>0); + pr=zeros(1,max_bits_in_check2); + pr(1:size(vec)(2))=vec; + printf("%d ",pr); + printf("\n"); +endfor +for i=1:N + vec=find(pcheck(:,i)>0); + pr=zeros(1,max_checks_per_bit); + pr(1:size(vec)(1))=vec; + printf("%d ",pr) + printf("\n"); +endfor diff --git a/lib/ldpc/peg/peg_128_80.pchk b/lib/ldpc/peg/peg_128_80.pchk new file mode 100644 index 000000000..c3dc1b1b9 --- /dev/null +++ b/lib/ldpc/peg/peg_128_80.pchk @@ -0,0 +1,51 @@ +128 +48 +9 +1 17 34 51 66 81 99 111 124 +2 18 35 50 67 82 100 112 125 +3 19 36 52 68 82 101 111 126 +2 20 36 51 69 83 102 113 127 +4 19 37 53 66 84 103 114 128 +5 21 38 54 70 85 92 114 0 +6 22 39 55 66 85 96 110 0 +7 23 32 56 71 86 103 115 0 +8 20 40 55 72 86 104 116 0 +9 19 41 57 73 87 105 116 0 +10 24 36 56 74 88 105 117 125 +10 17 33 47 75 89 106 118 128 +11 21 42 51 76 87 107 119 0 +1 25 40 58 74 84 107 113 0 +12 22 42 49 77 90 108 118 125 +13 26 43 59 68 89 104 120 124 +13 22 44 57 75 91 109 113 0 +12 23 37 46 78 88 107 112 0 +3 27 34 60 65 87 109 118 0 +6 27 45 61 79 89 98 112 0 +14 28 34 62 72 92 106 112 127 +8 27 42 59 71 92 110 121 126 +15 20 46 57 79 93 101 115 124 +9 29 45 62 74 94 108 121 0 +8 30 38 63 73 95 109 111 128 +16 29 47 64 69 96 109 117 126 +16 23 48 63 76 94 110 116 125 +7 25 39 52 70 97 106 117 124 +4 26 45 63 67 83 90 119 123 +15 28 39 50 76 88 103 121 123 +15 26 33 58 65 97 102 122 0 +14 31 47 52 77 81 93 116 0 +14 24 37 61 71 82 99 122 0 +4 31 40 54 80 91 106 115 122 +5 32 41 58 77 98 104 117 0 +9 18 49 65 79 85 104 119 128 +10 30 43 60 69 84 108 115 123 +1 18 43 48 73 91 98 114 127 +3 21 46 64 67 86 108 113 0 +5 24 48 55 75 93 107 120 126 +2 32 44 62 80 95 99 114 0 +16 28 41 59 80 83 100 118 0 +11 33 35 53 72 96 105 111 0 +11 25 44 60 78 90 100 120 122 +6 31 35 56 70 95 102 121 0 +12 17 50 54 68 94 105 119 0 +13 29 38 53 78 97 110 123 0 +7 30 49 61 64 81 101 120 127 diff --git a/lib/ldpc/peg/sfpeg1.code b/lib/ldpc/peg/sfpeg1.code new file mode 100644 index 000000000..c3dc1b1b9 --- /dev/null +++ b/lib/ldpc/peg/sfpeg1.code @@ -0,0 +1,51 @@ +128 +48 +9 +1 17 34 51 66 81 99 111 124 +2 18 35 50 67 82 100 112 125 +3 19 36 52 68 82 101 111 126 +2 20 36 51 69 83 102 113 127 +4 19 37 53 66 84 103 114 128 +5 21 38 54 70 85 92 114 0 +6 22 39 55 66 85 96 110 0 +7 23 32 56 71 86 103 115 0 +8 20 40 55 72 86 104 116 0 +9 19 41 57 73 87 105 116 0 +10 24 36 56 74 88 105 117 125 +10 17 33 47 75 89 106 118 128 +11 21 42 51 76 87 107 119 0 +1 25 40 58 74 84 107 113 0 +12 22 42 49 77 90 108 118 125 +13 26 43 59 68 89 104 120 124 +13 22 44 57 75 91 109 113 0 +12 23 37 46 78 88 107 112 0 +3 27 34 60 65 87 109 118 0 +6 27 45 61 79 89 98 112 0 +14 28 34 62 72 92 106 112 127 +8 27 42 59 71 92 110 121 126 +15 20 46 57 79 93 101 115 124 +9 29 45 62 74 94 108 121 0 +8 30 38 63 73 95 109 111 128 +16 29 47 64 69 96 109 117 126 +16 23 48 63 76 94 110 116 125 +7 25 39 52 70 97 106 117 124 +4 26 45 63 67 83 90 119 123 +15 28 39 50 76 88 103 121 123 +15 26 33 58 65 97 102 122 0 +14 31 47 52 77 81 93 116 0 +14 24 37 61 71 82 99 122 0 +4 31 40 54 80 91 106 115 122 +5 32 41 58 77 98 104 117 0 +9 18 49 65 79 85 104 119 128 +10 30 43 60 69 84 108 115 123 +1 18 43 48 73 91 98 114 127 +3 21 46 64 67 86 108 113 0 +5 24 48 55 75 93 107 120 126 +2 32 44 62 80 95 99 114 0 +16 28 41 59 80 83 100 118 0 +11 33 35 53 72 96 105 111 0 +11 25 44 60 78 90 100 120 122 +6 31 35 56 70 95 102 121 0 +12 17 50 54 68 94 105 119 0 +13 29 38 53 78 97 110 123 0 +7 30 49 61 64 81 101 120 127 diff --git a/lib/ldpc/peg/sfpeg1.deg b/lib/ldpc/peg/sfpeg1.deg new file mode 100644 index 000000000..7d208a695 --- /dev/null +++ b/lib/ldpc/peg/sfpeg1.deg @@ -0,0 +1,3 @@ +2 +3 4 +.8 .2 diff --git a/lib/ldpc/peg/sfpeg2.alist b/lib/ldpc/peg/sfpeg2.alist new file mode 100644 index 000000000..410bae7ee --- /dev/null +++ b/lib/ldpc/peg/sfpeg2.alist @@ -0,0 +1,180 @@ +48 128 +9 4 +9 9 8 8 8 8 8 8 8 8 8 9 8 9 8 8 8 9 8 8 9 8 8 9 8 8 8 9 8 8 9 8 8 8 9 8 9 8 8 8 8 8 8 8 9 8 8 8 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 +1 17 34 51 66 81 99 113 127 +2 18 35 50 67 82 100 114 128 +3 19 36 52 68 82 101 115 0 +2 20 36 51 69 83 102 116 0 +4 19 37 53 66 84 103 117 0 +5 21 38 54 70 85 92 114 0 +6 22 39 55 66 85 96 118 0 +7 23 32 56 71 86 103 119 0 +8 20 40 55 72 86 104 120 0 +9 19 41 57 73 87 105 118 0 +10 24 36 56 74 88 106 120 0 +10 17 33 47 75 89 107 121 126 +11 21 42 51 76 87 108 122 0 +1 25 40 58 74 84 109 122 126 +12 22 42 49 77 90 110 123 0 +13 26 43 59 68 89 104 113 0 +13 22 44 57 75 91 106 124 0 +12 23 37 46 78 88 109 113 128 +3 27 34 60 65 87 111 123 0 +6 27 45 61 79 89 98 114 0 +14 28 34 62 72 92 107 122 125 +8 27 42 59 71 92 112 117 0 +15 20 46 57 79 93 101 117 0 +9 29 45 62 74 94 108 119 128 +8 30 38 63 73 95 110 124 0 +16 29 47 64 69 96 110 125 0 +16 23 48 63 76 94 111 120 0 +7 25 39 52 70 97 108 116 127 +4 26 45 63 67 83 90 121 0 +15 28 39 50 76 88 103 115 0 +15 26 33 58 65 97 102 125 128 +14 31 47 52 77 81 93 120 0 +14 24 37 61 71 82 99 116 0 +4 31 40 54 80 91 107 119 0 +5 32 41 58 77 98 111 124 127 +9 18 49 65 79 85 104 124 0 +10 30 43 60 69 84 112 119 127 +1 18 43 48 73 91 98 121 0 +3 21 46 64 67 86 112 118 0 +5 24 48 55 75 93 105 122 0 +2 32 44 62 80 95 99 118 0 +16 28 41 59 80 83 100 123 0 +11 33 35 53 72 96 109 115 0 +11 25 44 60 78 90 100 117 0 +6 31 35 56 70 95 102 123 126 +12 17 50 54 68 94 106 125 0 +13 29 38 53 78 97 105 121 0 +7 30 49 61 64 81 101 126 0 +1 14 38 0 +2 4 41 0 +3 19 39 0 +5 29 34 0 +6 35 40 0 +7 20 45 0 +8 28 48 0 +9 22 25 0 +10 24 36 0 +11 12 37 0 +13 43 44 0 +15 18 46 0 +16 17 47 0 +21 32 33 0 +23 30 31 0 +26 27 42 0 +1 12 46 0 +2 36 38 0 +3 5 10 0 +4 9 23 0 +6 13 39 0 +7 15 17 0 +8 18 27 0 +11 33 40 0 +14 28 44 0 +16 29 31 0 +19 20 22 0 +21 30 42 0 +24 26 47 0 +25 37 48 0 +32 34 45 0 +8 35 41 0 +12 31 43 0 +1 19 21 0 +2 43 45 0 +3 4 11 0 +5 18 33 0 +6 25 47 0 +7 28 30 0 +9 14 34 0 +10 35 42 0 +13 15 22 0 +16 37 38 0 +17 41 44 0 +20 24 29 0 +18 23 39 0 +12 26 32 0 +27 38 40 0 +15 36 48 0 +2 30 46 0 +1 4 13 0 +3 28 32 0 +5 43 47 0 +6 34 46 0 +7 9 40 0 +8 11 45 0 +10 17 23 0 +14 31 35 0 +16 22 42 0 +19 37 44 0 +20 33 48 0 +21 24 41 0 +25 27 29 0 +26 39 48 0 +19 31 36 0 +1 5 7 0 +2 29 39 0 +3 16 46 0 +4 26 37 0 +6 28 45 0 +8 22 33 0 +9 21 43 0 +10 25 38 0 +11 14 24 0 +12 17 40 0 +13 27 30 0 +15 32 35 0 +18 44 47 0 +20 23 36 0 +34 41 42 0 +1 32 48 0 +2 3 33 0 +4 29 42 0 +5 14 37 0 +6 7 36 0 +8 9 39 0 +10 13 19 0 +11 18 30 0 +12 16 20 0 +15 29 44 0 +17 34 38 0 +6 21 22 0 +23 32 40 0 +24 27 46 0 +25 41 45 0 +7 26 43 0 +28 31 47 0 +20 35 38 0 +1 33 41 0 +2 42 44 0 +3 23 48 0 +4 31 45 0 +5 8 30 0 +9 16 36 0 +10 40 47 0 +11 17 46 0 +12 21 34 0 +13 24 28 0 +14 18 43 0 +15 25 26 0 +19 27 35 0 +22 37 39 0 +1 16 18 0 +2 6 20 0 +3 30 43 0 +4 28 33 0 +5 22 23 44 +7 10 39 41 +8 24 34 37 +9 11 27 32 +12 29 38 47 +13 14 21 40 +15 19 42 45 +17 25 35 36 +21 26 31 46 +12 14 45 48 +1 28 35 37 +2 18 24 31 diff --git a/lib/ldpc/peg/sfpeg2.code b/lib/ldpc/peg/sfpeg2.code new file mode 100644 index 000000000..0082bd378 --- /dev/null +++ b/lib/ldpc/peg/sfpeg2.code @@ -0,0 +1,51 @@ +128 +48 +9 +1 17 34 51 66 81 99 113 127 +2 18 35 50 67 82 100 114 128 +3 19 36 52 68 82 101 115 0 +2 20 36 51 69 83 102 116 0 +4 19 37 53 66 84 103 117 0 +5 21 38 54 70 85 92 114 0 +6 22 39 55 66 85 96 118 0 +7 23 32 56 71 86 103 119 0 +8 20 40 55 72 86 104 120 0 +9 19 41 57 73 87 105 118 0 +10 24 36 56 74 88 106 120 0 +10 17 33 47 75 89 107 121 126 +11 21 42 51 76 87 108 122 0 +1 25 40 58 74 84 109 122 126 +12 22 42 49 77 90 110 123 0 +13 26 43 59 68 89 104 113 0 +13 22 44 57 75 91 106 124 0 +12 23 37 46 78 88 109 113 128 +3 27 34 60 65 87 111 123 0 +6 27 45 61 79 89 98 114 0 +14 28 34 62 72 92 107 122 125 +8 27 42 59 71 92 112 117 0 +15 20 46 57 79 93 101 117 0 +9 29 45 62 74 94 108 119 128 +8 30 38 63 73 95 110 124 0 +16 29 47 64 69 96 110 125 0 +16 23 48 63 76 94 111 120 0 +7 25 39 52 70 97 108 116 127 +4 26 45 63 67 83 90 121 0 +15 28 39 50 76 88 103 115 0 +15 26 33 58 65 97 102 125 128 +14 31 47 52 77 81 93 120 0 +14 24 37 61 71 82 99 116 0 +4 31 40 54 80 91 107 119 0 +5 32 41 58 77 98 111 124 127 +9 18 49 65 79 85 104 124 0 +10 30 43 60 69 84 112 119 127 +1 18 43 48 73 91 98 121 0 +3 21 46 64 67 86 112 118 0 +5 24 48 55 75 93 105 122 0 +2 32 44 62 80 95 99 118 0 +16 28 41 59 80 83 100 123 0 +11 33 35 53 72 96 109 115 0 +11 25 44 60 78 90 100 117 0 +6 31 35 56 70 95 102 123 126 +12 17 50 54 68 94 106 125 0 +13 29 38 53 78 97 105 121 0 +7 30 49 61 64 81 101 126 0 diff --git a/lib/ldpc/peg/sfpeg2.deg b/lib/ldpc/peg/sfpeg2.deg new file mode 100644 index 000000000..fb023b777 --- /dev/null +++ b/lib/ldpc/peg/sfpeg2.deg @@ -0,0 +1,3 @@ +2 +3 4 +.9 .1 diff --git a/lib/ldpc/peg/sfpeg3.alist b/lib/ldpc/peg/sfpeg3.alist new file mode 100644 index 000000000..e2d9e15f9 --- /dev/null +++ b/lib/ldpc/peg/sfpeg3.alist @@ -0,0 +1,180 @@ +48 128 +8 3 +8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +1 17 34 51 66 81 99 113 +2 18 35 50 67 82 100 114 +3 19 36 52 68 82 101 115 +2 20 36 51 69 83 102 116 +4 19 37 53 66 84 103 117 +5 21 38 54 70 85 92 114 +6 22 39 55 66 85 96 118 +7 23 32 56 71 86 103 119 +8 20 40 55 72 86 104 120 +9 19 41 57 73 87 105 121 +10 24 36 56 74 88 106 122 +10 17 33 47 75 89 107 119 +11 21 42 51 76 87 108 123 +1 25 40 58 74 84 109 124 +12 22 42 49 77 90 110 122 +13 26 43 59 68 89 104 113 +13 22 44 57 75 91 106 125 +12 23 37 46 78 88 109 113 +3 27 34 60 65 87 111 126 +6 27 45 61 79 89 98 114 +14 28 34 62 72 92 107 125 +8 27 42 59 71 92 112 117 +15 20 46 57 79 93 101 117 +9 29 45 62 74 94 108 127 +8 30 38 63 73 95 110 125 +16 29 47 64 69 96 110 128 +16 23 48 63 76 94 111 121 +7 25 39 52 70 97 108 116 +4 26 45 63 67 83 90 126 +15 28 39 50 76 88 103 115 +15 26 33 58 65 97 102 127 +14 31 47 52 77 81 93 121 +14 24 37 61 71 82 99 116 +4 31 40 54 80 91 107 122 +5 32 41 58 77 98 111 120 +9 18 49 65 79 85 104 123 +10 30 43 60 69 84 112 123 +1 18 43 48 73 91 98 119 +3 21 46 64 67 86 112 118 +5 24 48 55 75 93 105 128 +2 32 44 62 80 95 99 124 +16 28 41 59 80 83 100 118 +11 33 35 53 72 96 109 115 +11 25 44 60 78 90 100 128 +6 31 35 56 70 95 102 126 +12 17 50 54 68 94 106 120 +13 29 38 53 78 97 105 124 +7 30 49 61 64 81 101 127 +1 14 38 +2 4 41 +3 19 39 +5 29 34 +6 35 40 +7 20 45 +8 28 48 +9 22 25 +10 24 36 +11 12 37 +13 43 44 +15 18 46 +16 17 47 +21 32 33 +23 30 31 +26 27 42 +1 12 46 +2 36 38 +3 5 10 +4 9 23 +6 13 39 +7 15 17 +8 18 27 +11 33 40 +14 28 44 +16 29 31 +19 20 22 +21 30 42 +24 26 47 +25 37 48 +32 34 45 +8 35 41 +12 31 43 +1 19 21 +2 43 45 +3 4 11 +5 18 33 +6 25 47 +7 28 30 +9 14 34 +10 35 42 +13 15 22 +16 37 38 +17 41 44 +20 24 29 +18 23 39 +12 26 32 +27 38 40 +15 36 48 +2 30 46 +1 4 13 +3 28 32 +5 43 47 +6 34 46 +7 9 40 +8 11 45 +10 17 23 +14 31 35 +16 22 42 +19 37 44 +20 33 48 +21 24 41 +25 27 29 +26 39 48 +19 31 36 +1 5 7 +2 29 39 +3 16 46 +4 26 37 +6 28 45 +8 22 33 +9 21 43 +10 25 38 +11 14 24 +12 17 40 +13 27 30 +15 32 35 +18 44 47 +20 23 36 +34 41 42 +1 32 48 +2 3 33 +4 29 42 +5 14 37 +6 7 36 +8 9 39 +10 13 19 +11 18 30 +12 16 20 +15 29 44 +17 34 38 +6 21 22 +23 32 40 +24 27 46 +25 41 45 +7 26 43 +28 31 47 +20 35 38 +1 33 41 +2 42 44 +3 23 48 +4 31 45 +5 8 30 +9 16 36 +10 40 47 +11 17 46 +12 21 34 +13 24 28 +14 18 43 +15 25 26 +19 27 35 +22 37 39 +1 16 18 +2 6 20 +3 30 43 +4 28 33 +5 22 23 +7 39 42 +8 12 38 +9 35 46 +10 27 32 +11 15 34 +13 36 37 +14 41 47 +17 21 25 +19 29 45 +24 31 48 +26 40 44 diff --git a/lib/ldpc/peg/sfpeg3.code b/lib/ldpc/peg/sfpeg3.code new file mode 100644 index 000000000..10064e072 --- /dev/null +++ b/lib/ldpc/peg/sfpeg3.code @@ -0,0 +1,51 @@ +128 +48 +8 +1 17 34 51 66 81 99 113 +2 18 35 50 67 82 100 114 +3 19 36 52 68 82 101 115 +2 20 36 51 69 83 102 116 +4 19 37 53 66 84 103 117 +5 21 38 54 70 85 92 114 +6 22 39 55 66 85 96 118 +7 23 32 56 71 86 103 119 +8 20 40 55 72 86 104 120 +9 19 41 57 73 87 105 121 +10 24 36 56 74 88 106 122 +10 17 33 47 75 89 107 119 +11 21 42 51 76 87 108 123 +1 25 40 58 74 84 109 124 +12 22 42 49 77 90 110 122 +13 26 43 59 68 89 104 113 +13 22 44 57 75 91 106 125 +12 23 37 46 78 88 109 113 +3 27 34 60 65 87 111 126 +6 27 45 61 79 89 98 114 +14 28 34 62 72 92 107 125 +8 27 42 59 71 92 112 117 +15 20 46 57 79 93 101 117 +9 29 45 62 74 94 108 127 +8 30 38 63 73 95 110 125 +16 29 47 64 69 96 110 128 +16 23 48 63 76 94 111 121 +7 25 39 52 70 97 108 116 +4 26 45 63 67 83 90 126 +15 28 39 50 76 88 103 115 +15 26 33 58 65 97 102 127 +14 31 47 52 77 81 93 121 +14 24 37 61 71 82 99 116 +4 31 40 54 80 91 107 122 +5 32 41 58 77 98 111 120 +9 18 49 65 79 85 104 123 +10 30 43 60 69 84 112 123 +1 18 43 48 73 91 98 119 +3 21 46 64 67 86 112 118 +5 24 48 55 75 93 105 128 +2 32 44 62 80 95 99 124 +16 28 41 59 80 83 100 118 +11 33 35 53 72 96 109 115 +11 25 44 60 78 90 100 128 +6 31 35 56 70 95 102 126 +12 17 50 54 68 94 106 120 +13 29 38 53 78 97 105 124 +7 30 49 61 64 81 101 127 diff --git a/lib/ldpc/peg/sfpeg3.deg b/lib/ldpc/peg/sfpeg3.deg new file mode 100644 index 000000000..0fb5a574c --- /dev/null +++ b/lib/ldpc/peg/sfpeg3.deg @@ -0,0 +1,3 @@ +1 +3 +1.0