Release Notes for LDPC Software
These notes describe all the public releases of this software. Old
and future releases can be obtained via
Current release of 2001-05-04.
Changes and new features regarding programs and associated
documentation and examples:
Changes and new features regarding program modules and other internals:
- 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
ex-ham7a, which still
demonstrates this facility.
- 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.
- 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.
- All programs now allow a file name argument to be "-", which specifies
standard input or standard output, as appropriate. The
ex-ldpc36-5000a example has been
changed to use this facility in order to avoid creating lots of files.
- Channels with noise from a logistic distribution (AWLN) have been
implemented. For details,
see the channel documentation.
- The make-gen 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
discussion of linear dependence in parity check
matrices has changed slightly as a result.
- The messages displayed by the decode
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 -t option is specified now includes the number of
bits changed in each block.
- A new -T option to decode
detailed information on decoding
has been added.
- Doing a make clean will now remove the files created
by running the examples.
- The files created by the examples now
start with "ex-" and contain a ".", to make them easier to
identify for cleanup, and the saved output file now ends in
"-out" rather than ".out".
- The scripts for the examples now use the -v option of set
rather than -x, so that the command lines are echoed
faithfully as they are read.
- Two new examples have been added:
ex-dep demonstrates what happens when parity check matrices
have redundant row, and ex-wrong-model investigates what
happens when the wrong model is used to decode.
The following bugs were fixed:
- Instructions have been added on
how to modify the programs, and some
code has been reorganized to facilitate modifications.
- 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
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 make-gen.
- New routines
been added, analogous to the previous routines for copying columns.
- 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 -T option is used.
There were also numerous minor cleanups of program code and documentation.
- A problem with print-gen prevented the -d option from working
in most cases. The documentation was also fixed to note what
the L and U matrices printed will look like.
- The documentation for
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.
- In decode.c, a variable declared to be float was printed
using "%f", which strangely didn't work with one compiler.
It's now declared as double.
Old release of 2000-03-19.
This was the first public release.
Back to index for LDPC software