Transreceived packages use forward error correction (FEC) with matrix
multiplication in a Galois field of size P (GF(P)) and contain at least a portion
of K rows of matrix B having elements Bk,m in M columns. Packages include
matrix C having elements Cn,m for FEC for the K rows. Matrix C has 0
to (N-1)th rows redundant with matrix B data. Elements Cn,m are computed
by XOR'ing GExp[(GLog[An,k]+GLog[Bk,m]) mod (P-1)] for k
from 0 to (K-1). Matrix A has elements An,k with N rows and K columns.
GExp and GLog are one-dimensional arrays. Matrix A is chosen so up to N rows of
B and C (total) can be lost, and B can be recovered. An inverse matrix D is computed
from A with the rows of B and C. B is reconstructed from D and the received rows
of B and C using another matrix multiplication.