Patent ID: 7047480

Claim:
A computer readable medium having computer executable instructions thereon that, when executed by a computer, perform a method comprising deriving a matrix C for a transmission package that is capable of being transmitted or received, the transmission package also including K blocks of data in a matrix B, wherein: the matrix B includes elements B k,m ; the matrix C includes elements C n,m for forward error correction for the K blocks of data, with K being an integer; the kth row of matrix B is a binary expression of one block of the data and has a value from 0 to (K−1); the m is a matrix column number and has a value from 0 to (M−1); the M is the number of symbols in each block of the data; the nth row of matrix C is a binary expression of one redundant block of the data and has a value from 0 to (N−1); a matrix A has elements A n,k with N rows and K columns; a function GExp maps integer values; a function GLog maps integer values; the elements of the matrices are from a Galois field of size P, with P being an integer; and the method further comprises computer-implemented actions of: forming one-dimensional arrays glog with P elements and gexp with 4P−5 elements, wherein, for a Galois field having a size P (GF(P)): j is an integer having a value from 0 to P−1; glog(j)=GLog(j), if j≠0; glog(j)=(2P−3), if j=0; j is an integer having a value from 0 to 4P−6 gexp(j)=GExp(j mod P−1), if j<(2P−3); and gexp(j)=0, if j≧(2P−3); evaluating C n,m by substituting GLog and GExp by respective lookups in the array glog and in the array gexp and removing the modulo as: C n , m = XOR k = 0 K - 1 ⁢ ⁢ g ⁢ ⁢ exp ⁡ [ g ⁢ ⁢ log ⁡ [ A n , k ] + g ⁢ ⁢ log ⁡ [ B k , m ] ] .