245 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			245 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| 
								 | 
							
								<HTML><HEAD>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<TITLE>Release Notes for LDPC-codes Software</TITLE>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</HEAD><BODY>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<H1>Release Notes for LDPC-codes Software</H1>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								These notes describe all the stable public releases of this software.  Old
							 | 
						||
| 
								 | 
							
								and future releases can be obtained via
							 | 
						||
| 
								 | 
							
								<BLOCKQUOTE>
							 | 
						||
| 
								 | 
							
								<A HREF="http://www.cs.toronto.edu/~radford/ldpc.software.html">
							 | 
						||
| 
								 | 
							
								<TT>http://www.cs.toronto.edu/~radford/ldpc.software.html</TT></A>
							 | 
						||
| 
								 | 
							
								</BLOCKQUOTE>
							 | 
						||
| 
								 | 
							
								The current development version is now maintained at 
							 | 
						||
| 
								 | 
							
								<BLOCKQUOTE>
							 | 
						||
| 
								 | 
							
								<A HREF="http://github.com/radfordneal/LDPC-codes">
							 | 
						||
| 
								 | 
							
								<TT>http://github.com/radfordneal/LDPC-code</TT></A>
							 | 
						||
| 
								 | 
							
								</BLOCKQUOTE>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<H2>Version of 2012-02-11.</H2>
							 | 
						||
| 
								 | 
							
								This version has a few bug fixes and some minor new features. The major
							 | 
						||
| 
								 | 
							
								change is that a source repository for the software is now hosted
							 | 
						||
| 
								 | 
							
								at github.com, making it easier for people to create and release
							 | 
						||
| 
								 | 
							
								their own versions of this software.
							 | 
						||
| 
								 | 
							
								<OL>
							 | 
						||
| 
								 | 
							
								<LI> Changed the copyright notice (in the file COPYRIGHT, and elsewhere)
							 | 
						||
| 
								 | 
							
								     to remove the requirement that my web site be referenced.  (Nowadays,
							 | 
						||
| 
								 | 
							
								     I think users should have no problem finding the sources using a 
							 | 
						||
| 
								 | 
							
								     search engine.)
							 | 
						||
| 
								 | 
							
								<LI> Included a copy of the nrand48 routine from the GNU C library
							 | 
						||
| 
								 | 
							
								     in the rand.c module, to ensure that it is always available
							 | 
						||
| 
								 | 
							
								     and always the same.  (This isn't so on some versions of cygwin.)
							 | 
						||
| 
								 | 
							
								<LI> Added a -f option to encode and decode that forces flushing
							 | 
						||
| 
								 | 
							
								     after writing each block.  Useful for allowing encode or
							 | 
						||
| 
								 | 
							
								     decode to be used as a server, reading and writing blocks
							 | 
						||
| 
								 | 
							
								     from named pipes.
							 | 
						||
| 
								 | 
							
								<LI> Added a -z option for pchk-to-alist to suppress output of 0
							 | 
						||
| 
								 | 
							
								     row and column indexes that pad up to the maximum number used.
							 | 
						||
| 
								 | 
							
								<LI> Documented the previously undocumented -t options for pchk-to-alist
							 | 
						||
| 
								 | 
							
								     and alist-to-pchk.
							 | 
						||
| 
								 | 
							
								<LI> Changed alist-to-pchk so that it no longer requires zero indexes
							 | 
						||
| 
								 | 
							
								     that pad out to the maximum needed for a row or column (thanks
							 | 
						||
| 
								 | 
							
								     to Monica Kolb for suggesting this).
							 | 
						||
| 
								 | 
							
								<LI> Changed mod2word type in mod2dense.c to uint32_t, to avoid
							 | 
						||
| 
								 | 
							
								     wasted space when long is 64 bits (thanks to Mathieu Cunche 
							 | 
						||
| 
								 | 
							
								     and Vincent Roca for suggesting this).
							 | 
						||
| 
								 | 
							
								<LI> Fixed bug in distrib.c affecting distributions with a single 
							 | 
						||
| 
								 | 
							
								     number (thanks to Mike Vicuna for pointing it out).
							 | 
						||
| 
								 | 
							
								<LI> Fixed bug in -t option for pchk-to-alist (thanks to Andrea Fontana
							 | 
						||
| 
								 | 
							
								     for reporting this).
							 | 
						||
| 
								 | 
							
								<LI> Fixed references in the documentation to mod2sparse_multvec
							 | 
						||
| 
								 | 
							
								     that should be to mod2sparse_mulvec (thanks to Andrea Fontana
							 | 
						||
| 
								 | 
							
								     for reporting this).
							 | 
						||
| 
								 | 
							
								</OL>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<H2>Version of 2006-02-08.</H2>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The copyright notice has been changed in this release to no longer
							 | 
						||
| 
								 | 
							
								restrict use to purposes of research or education.  The new copyright
							 | 
						||
| 
								 | 
							
								notice can be read <A HREF="index.html#copyright">here</A>.  It is now
							 | 
						||
| 
								 | 
							
								possible to create LDPC codes with varying numbers of checks per bit
							 | 
						||
| 
								 | 
							
								(an extension based on work by Peter Junteng Liu).  New programs for
							 | 
						||
| 
								 | 
							
								converting to and from the <A
							 | 
						||
| 
								 | 
							
								HREF="http://www.inference.phy.cam.ac.uk/mackay/codes/alist.html">alist
							 | 
						||
| 
								 | 
							
								format</A> for parity check matrices, used by David MacKay and others,
							 | 
						||
| 
								 | 
							
								have also been added.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<P>The following new features have been added:
							 | 
						||
| 
								 | 
							
								<OL>
							 | 
						||
| 
								 | 
							
								<LI> The <A HREF="pchk.html#make-ldpc"><TT>make-ldpc</TT></A> program can
							 | 
						||
| 
								 | 
							
								     new create LDPC codes with varying numbers of checks per bit.  The
							 | 
						||
| 
								 | 
							
								     <A HREF="examples.html">examples</A> now include a code of this sort.
							 | 
						||
| 
								 | 
							
								<LI> New programs <A HREF="pchk.html#pchk-to-alist"><TT>pchk-to-alist</TT></A> 
							 | 
						||
| 
								 | 
							
								     and <A HREF="pchk.html#alist-to-pchk"><TT>alist-to-pchk</TT></A> have
							 | 
						||
| 
								 | 
							
								     been added, which convert to and from <A
							 | 
						||
| 
								 | 
							
								     HREF="http://www.inference.phy.cam.ac.uk/mackay/codes/alist.html">alist
							 | 
						||
| 
								 | 
							
								     format</A>.
							 | 
						||
| 
								 | 
							
								<LI> A <A HREF="run-examples"><TT>run-examples</TT></A> script has been 
							 | 
						||
| 
								 | 
							
								     added, which runs all the <A HREF="examples.html">examples</A> and 
							 | 
						||
| 
								 | 
							
								     compares with the saved output that I obtained.
							 | 
						||
| 
								 | 
							
								</OL>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<H2>Version of 2001-11-18.</H2>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This is a minor release, whose main purpose is fixing bug (1) below.
							 | 
						||
| 
								 | 
							
								Also, this release has been tested and found to work with the <A
							 | 
						||
| 
								 | 
							
								HREF="http://www.cygwin.com">cygwin</A> Unix environment that runs
							 | 
						||
| 
								 | 
							
								under Microsoft Windows.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<P>The following new feature has been added:
							 | 
						||
| 
								 | 
							
								<OL>
							 | 
						||
| 
								 | 
							
								<LI> A new <B>-t</B> option has been added to 
							 | 
						||
| 
								 | 
							
								     <A HREF="pchk.html#print-pchk"><TT>print-pchk</TT></A>, which 
							 | 
						||
| 
								 | 
							
								     causes it to print the transpose of the parity check matrix.
							 | 
						||
| 
								 | 
							
								</OL>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The following program module change was made:
							 | 
						||
| 
								 | 
							
								<OL>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<LI> The behaviour of <A
							 | 
						||
| 
								 | 
							
								     HREF="mod2dense.html#invert_selected">mod2dense_invert_selected</A>
							 | 
						||
| 
								 | 
							
								     has been changed when the matrix has dependent rows.  The result returned 
							 | 
						||
| 
								 | 
							
								     contains the inverse of a sub-matrix in its initial columns.  The contents
							 | 
						||
| 
								 | 
							
								     of the remaining columns up to the number of rows was previously undefined,
							 | 
						||
| 
								 | 
							
								     but these columns are now set to contain zeros.  This was done to fix
							 | 
						||
| 
								 | 
							
								     bug (1) below.
							 | 
						||
| 
								 | 
							
								</OL>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The following bugs were fixed:
							 | 
						||
| 
								 | 
							
								<OL>
							 | 
						||
| 
								 | 
							
								<LI> A bug has been fixed in 
							 | 
						||
| 
								 | 
							
								     <A HREF="encoding.html#make-gen"><TT>make-gen</TT></A>
							 | 
						||
| 
								 | 
							
								     which sometimes 
							 | 
						||
| 
								 | 
							
								     produced invalid `dense' or `mixed' generator matrices when the parity 
							 | 
						||
| 
								 | 
							
								     check matrix had redundant rows.
							 | 
						||
| 
								 | 
							
								     The `sparse' generator matrices were not affected.  The output of the 
							 | 
						||
| 
								 | 
							
								     <A HREF="ex-dep"><TT>ex-dep</TT></A> example has changed slightly as a 
							 | 
						||
| 
								 | 
							
								     result.
							 | 
						||
| 
								 | 
							
								<LI> The open mode for reading the file of random numbers has been changed from
							 | 
						||
| 
								 | 
							
								     "r" to "rb", for compatibility with non-Unix systems.
							 | 
						||
| 
								 | 
							
								<LI> <A HREF="mod2sparse.html#copy"><TT>mod2sparse_copy</TT></A> has
							 | 
						||
| 
								 | 
							
								     been fixed so that it copies the <B>lr</B> and <B>pr</B> fields
							 | 
						||
| 
								 | 
							
								     of entries.
							 | 
						||
| 
								 | 
							
								<LI> The "set -v -e" in the command files for the examples has 
							 | 
						||
| 
								 | 
							
								     been replaced by two commands, "set -e" and "set -v", since some 
							 | 
						||
| 
								 | 
							
								     shells can't set two options at once.
							 | 
						||
| 
								 | 
							
								</OL>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								A few minor fixes to the documentation have also been made.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<H2>Version of 2001-05-04.</H2>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Changes and new features regarding programs and associated
							 | 
						||
| 
								 | 
							
								documentation and examples:
							 | 
						||
| 
								 | 
							
								<OL>
							 | 
						||
| 
								 | 
							
								<LI> Warnings have been added to the documentation about the dangers of
							 | 
						||
| 
								 | 
							
								     using zero codewords for testing (due to the possibility of the decoder
							 | 
						||
| 
								 | 
							
								     accidently being non-symmetric).  The examples have been changed to
							 | 
						||
| 
								 | 
							
								     not use zero codewords, except for 
							 | 
						||
| 
								 | 
							
								     <A HREF="ex-ham7a"><TT>ex-ham7a</TT></A>, which still
							 | 
						||
| 
								 | 
							
								     demonstrates this facility.
							 | 
						||
| 
								 | 
							
								<LI> Decoding by probability propagation has been changed so that if
							 | 
						||
| 
								 | 
							
								     a probability ratio gets set to NaN ("not a number", the result of 
							 | 
						||
| 
								 | 
							
								     infinite but conflicting evidence from different sources), the probability 
							 | 
						||
| 
								 | 
							
								     ratio is changed to 1, in hopes that something sensible may result.
							 | 
						||
| 
								 | 
							
								<LI> The decoding procedures have been changed to decode a bit to a 1 if
							 | 
						||
| 
								 | 
							
								     there is a tie, so that any resulting asymmetry in decoding will 
							 | 
						||
| 
								 | 
							
								     make zero decoding less, rather than more, likely.  See point (1) above.
							 | 
						||
| 
								 | 
							
								<LI> All programs now allow a file name argument to be "-", which specifies
							 | 
						||
| 
								 | 
							
								     standard input or standard output, as appropriate.  The 
							 | 
						||
| 
								 | 
							
								     <A HREF="ex-ldpc36-5000a"><TT>ex-ldpc36-5000a</TT></A> example has been
							 | 
						||
| 
								 | 
							
								     changed to use this facility in order to avoid creating lots of files.
							 | 
						||
| 
								 | 
							
								<LI> Channels with noise from a logistic distribution (AWLN) have been
							 | 
						||
| 
								 | 
							
								     implemented.  For details,
							 | 
						||
| 
								 | 
							
								     see the <A HREF="channel.html">channel documentation</A>.
							 | 
						||
| 
								 | 
							
								<LI> The <B>make-gen</B> program for "dense" or "mixed" options was modified 
							 | 
						||
| 
								 | 
							
								     so that when some parity checks are redundant, others are not declared 
							 | 
						||
| 
								 | 
							
								     redundant when they aren't.  This makes the result compatible with
							 | 
						||
| 
								 | 
							
								     what is obtained with the "sparse" option.  The example in the 
							 | 
						||
| 
								 | 
							
								     <A HREF="dep-H.html">discussion of linear dependence in parity check 
							 | 
						||
| 
								 | 
							
								     matrices</A> has changed slightly as a result.
							 | 
						||
| 
								 | 
							
								<LI> The messages displayed by the <A HREF="decoding.html#decode">decode</A> 
							 | 
						||
| 
								 | 
							
								     program have changed slightly: The block size is no longer displayed,
							 | 
						||
| 
								 | 
							
								     and the percentage of bits changed is now shown.  The data output
							 | 
						||
| 
								 | 
							
								     when the <B>-t</B> option is specified now includes the number of
							 | 
						||
| 
								 | 
							
								     bits changed in each block.  
							 | 
						||
| 
								 | 
							
								<LI> A new <B>-T</B> option to <A HREF="decoding.html#decode">decode</A> 
							 | 
						||
| 
								 | 
							
								     for displaying
							 | 
						||
| 
								 | 
							
								     <A HREF="decode-detail.html">detailed information on decoding</A>
							 | 
						||
| 
								 | 
							
								     has been added.
							 | 
						||
| 
								 | 
							
								<LI> Doing a <B>make clean</B> will now remove the files created 
							 | 
						||
| 
								 | 
							
								     by running the <A HREF="examples.html">examples</A>.
							 | 
						||
| 
								 | 
							
								<LI> The files created by the <A HREF="examples.html">examples</A> now
							 | 
						||
| 
								 | 
							
								     start with "<TT>ex-</TT>" and contain a ".", to make them easier to 
							 | 
						||
| 
								 | 
							
								     identify for cleanup, and the saved output file now ends in 
							 | 
						||
| 
								 | 
							
								     "<TT>-out</TT>" rather than "<TT>.out</TT>".
							 | 
						||
| 
								 | 
							
								<LI> The scripts for the examples now use the <B>-v</B> option of <B>set</B>
							 | 
						||
| 
								 | 
							
								     rather than <B>-x</B>, so that the command lines are echoed 
							 | 
						||
| 
								 | 
							
								     faithfully as they are read.
							 | 
						||
| 
								 | 
							
								<LI> Two new <A HREF="examples.html">examples</A> have been added:
							 | 
						||
| 
								 | 
							
								     <TT>ex-dep</TT> demonstrates what happens when parity check matrices
							 | 
						||
| 
								 | 
							
								     have redundant row, and <TT>ex-wrong-model</TT> investigates what
							 | 
						||
| 
								 | 
							
								     happens when the wrong model is used to decode.
							 | 
						||
| 
								 | 
							
								</OL>
							 | 
						||
| 
								 | 
							
								Changes and new features regarding program modules and other internals:
							 | 
						||
| 
								 | 
							
								<OL>
							 | 
						||
| 
								 | 
							
								<LI> Instructions have been added on 
							 | 
						||
| 
								 | 
							
								     <A HREF="modify.html">how to modify the programs</A>, and some
							 | 
						||
| 
								 | 
							
								     code has been reorganized to facilitate modifications.
							 | 
						||
| 
								 | 
							
								<LI> The makefile has been made trivial, simply recompiling everything
							 | 
						||
| 
								 | 
							
								     from scratch every time.  This is simpler and less error prone
							 | 
						||
| 
								 | 
							
								     than putting in dependencies.
							 | 
						||
| 
								 | 
							
								     Compiling all the programs takes only about five seconds on a 
							 | 
						||
| 
								 | 
							
								     modern PC.
							 | 
						||
| 
								 | 
							
								<LI> The 
							 | 
						||
| 
								 | 
							
								 <A HREF="mod2dense.html#invert_selected"><TT>mod2dense_invert_selected</TT></A>
							 | 
						||
| 
								 | 
							
								     procedure has been changed
							 | 
						||
| 
								 | 
							
								     to take an additional argument in which a permutation of rows is
							 | 
						||
| 
								 | 
							
								     returned.  This extension is needed in order for the result when
							 | 
						||
| 
								 | 
							
								     the matrix is not of full rank to include as many rows as possible,
							 | 
						||
| 
								 | 
							
								     as needed for the above modification of <B>make-gen</B>.
							 | 
						||
| 
								 | 
							
								<LI> New routines 
							 | 
						||
| 
								 | 
							
								     <A HREF="mod2dense.html#copyrows"><TT>mod2dense_copyrows</TT></A> and 
							 | 
						||
| 
								 | 
							
								     <A HREF="mod2sparse.html#copyrows"><TT>mod2sparse_copyrows</TT></A> have
							 | 
						||
| 
								 | 
							
								     been added, analogous to the previous routines for copying columns.
							 | 
						||
| 
								 | 
							
								<LI> The decoding procedures have been changed to always return the bit
							 | 
						||
| 
								 | 
							
								     probabilities (previously, one could pass a null pointer to suppress
							 | 
						||
| 
								 | 
							
								     this).  This makes things simpler, and facilitates the production of
							 | 
						||
| 
								 | 
							
								     detailed trace output when the <B>-T</B> option is used.
							 | 
						||
| 
								 | 
							
								</OL>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The following bugs were fixed:
							 | 
						||
| 
								 | 
							
								<OL>
							 | 
						||
| 
								 | 
							
								<LI> A problem with <B>print-gen</B> prevented the <B>-d</B> option from working
							 | 
						||
| 
								 | 
							
								     in most cases.  The documentation was also fixed to note what
							 | 
						||
| 
								 | 
							
								     the <B>L</B> and <B>U</B> matrices printed will look like.
							 | 
						||
| 
								 | 
							
								<LI> The documentation for 
							 | 
						||
| 
								 | 
							
								     <A HREF="mod2sparse.html#copycols"><TT>mod2sparse_copycols</TT></A> and
							 | 
						||
| 
								 | 
							
								     <A HREF="mod2dense.html#copycols"><TT>mod2dense_copycols</TT></A>
							 | 
						||
| 
								 | 
							
								     was ambiguous.  It has been clarified.  The dense and sparse 
							 | 
						||
| 
								 | 
							
								     implementations were inconsistent.  The sparse version has been changed
							 | 
						||
| 
								 | 
							
								     to match the dense version, which was and is the only version actually
							 | 
						||
| 
								 | 
							
								     used in the LDPC software.
							 | 
						||
| 
								 | 
							
								<LI> In <TT>decode.c</TT>, a variable declared to be <TT>float</TT> was printed
							 | 
						||
| 
								 | 
							
								     using "<TT>%f</TT>", which strangely didn't work with one compiler.  
							 | 
						||
| 
								 | 
							
								     It's now declared as <TT>double</TT>.
							 | 
						||
| 
								 | 
							
								</OL>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								There were also numerous minor cleanups of program code and documentation.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<H2>Version of 2000-03-19.</H2>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This was the first public release.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<HR>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<A HREF="index.html">Back to index for LDPC software</A>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</BODY></HTML>
							 |