# Software for Low Density Parity Check Codes

Radford M. Neal, Dept. of Statistics and Dept. of Computer Science, University of Toronto

Version of 2006-02-08.

This collection of programs and modules, written in C, is intended to support research and education concerning Low Density Parity Check (LDPC) codes. (Note, however, that the copyright notice no longer restricts use to these purposes). These codes were invented by Robert Gallager in the early 1960's, and re-invented and shown to have very good performance by David MacKay and myself in the mid-1990's. The decoding algorithm for LDPC codes is related to that used for Turbo codes, and to probabilistic inference methods used in other fields. Variations on LDPC and Turbo codes are currently the best practical codes known, in terms of their ability to transmit data at rates approaching channel capacity with very low error probability.

## Index to Documentation

Download and installation instructions

> How to get and compile the programs and modules.

Release notes

> A log of changes made in each release of this software.

Software and program usage documentation

> General documentation on the methods implemented, and details of program usage.

Examples of program usage

> Examples using simple Hamming codes, and using more interesting LDPC codes.

How to modify the programs

> Notes on how to add new channel types, new decoding methods, etc.

Module documentation

> Modules used by the programs for modulo-2 matrix operations and random number generation.

References

> Classic and more recent papers on LDPC codes and related topics.

## Copyright and Lack of Warranty

This software and documentation is copyright © 1995, 1996, 2000, 2001, 2006 by Radford M. Neal.

Permission is granted for anyone to copy, use, modify, or distribute these programs and accompanying documents for any purpose, provided this copyright notice is retained and prominently displayed, along with a note saying that the original programs are available from Radford Neal's web page, and note is made of any changes made to these programs. These programs and documents are distributed without any warranty, express or implied. As the programs were written for research purposes only, they have not been tested to the degree that would be advisable in any important application. All use of these programs is entirely at the user's own risk.