A low-density parity-check code is a code specified by a parity-check matrix with the following properties : each column contains a small fixed numberj > 3 of I’s and each row contains a small fixed number k > j of 1’s. The typical minimum distance of these codes increases linearly with block length for a fixed rate and fixed j. When used with maximum likelihood decoding on a snfhciently quiet binary-input symmetric channel, the typical probability of decoding error decreases exponentially with block length for a fixed rate and fixedj. A simple but nonoptimum decoding scheme operating directly from the channel a posteriori probabilities is described. Both the equipment complexity and the data-handling capacity in bits per second of this decoder increase approximately linearly with block length. equations. We call the set of digits contained in a paritycheck equation a parity-check set. For example, the first parity-check set in Fig. 1 is the set of digits (1,2,3,5). The use of parity-check codes makes coding (as distinguished from decoding) relatively simple to implement. Also, as Elias  has shown, if a typical parity-check code of long block length is used on a binary symmetric channel, and if the code rate is between critical rate and channel capacity, then the probability of decoding error will be almost as small as that for the best possible code of that rate and block length.