#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<<"****************************************************"<