| 
									
										
										
										
											2016-03-26 02:47:07 +00:00
										 |  |  | #!/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(); | 
					
						
							| 
									
										
										
										
											2016-07-05 21:06:04 +00:00
										 |  |  | filename=arg_list{1}; | 
					
						
							| 
									
										
										
										
											2016-03-26 02:47:07 +00:00
										 |  |  | 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 |