Home / Research Interests / Algebraic Decoding Home Publications Videos Research Interests   Algorithms     Polynomial Factorization     Algebraic Decoding     Bit-Serial Encoding   Applied Analysis   Games   Complexity   Computer Architecture   Finance   Business   Information Theory Thesis Students Awards Board Memberships K-12 Outreach Education / Employment Biographies Contact Information and Site Credits Site Map The "Berlekamp algorithm" best known to coding theorists is a fast way to invert matrices with constant diagonals. It works over any field, with the finite fields that occur in coding theory being the most popular. Massey's variation on the algorithm, used to synthesize linear feedback shift registers having a specified output sequence, became known as the "Berlekamp-Massey algorithm". The algorithm is also helpful for decoding various classes of algebraic codes. Since the goal is an algorithm whose work and storage requirements will be comparable to or better than n2, the crucial step is to reformulate the problem in a way that avoids thinking about n by n matrices explicitly. This is done via this congruence: (1 + S(z)) (z) (z)   mod z2n+1. Here S(z) is the generating function for the terms along the successive diagonals of the traditional matrix. Its coefficients are the known inputs to the problem. (z) and (z) are the two polynomials (each of degree at most n) that will become the algorithm's outputs. The challenge was to find a faster algorithm to find the coefficients of these polynomials. The crux is an iterative procedure which successively computes polynomials that satisfy the "key equation". See Chapters 7 and 10 of Algebraic Coding Theory, McGraw-Hill, 1968; 3rd edition, World Scientific Press, 2014. Implementations of that algorithm varied greatly in efficiencies. The special purpose hardware implemented in Cyclotomics' GF1 computer was by far the best. For some applications with very high reliability requirements, most of the decoding effort was typically spent calculating the syndromes, S(z). Another Reed-Solomon decoding algorithm patented by Berlekamp and Welch in 1986 bypassed this problem, using parity checks much more easily recomputed by Berlekamp's 1983 Bit-Serial Encoder in lieu of the syndromes. Yet more refinements and improvements were presented in Berlekamp's 1996 paper, "Soft Decision+1 Reed-Solomon Decoding". Some of these algorithms were applied to probabilistic checking of proofs by Madhu Sudan and his colleagues, who also devised ingenious algorithms to implement list decoding in a way which discovers all codewords that lie within some multiple of half the minimum distance. Although significantly slower than Welch-Berlekamp, Sudan's enhanced methods attain significantly improved performance when the code rate is low and the noise level is very high.