An infinite family of binary error correcting codes which is defined recursively.

Let D_{1} be a [*n, k*_{1}, d_{1}] code and D_{2} be a [*n, k*_{2}, d_{2}] code (where n denotes the length of a codeword, k the dimension of the code, and d the minimum distance between codewords). Then define C = {**u**|**u**+**v** | **u** in D_{1} and **v** in D_{2}}

*Note: *|* denotes concatentation, then the symbol for "such that"*

If G_{i} is the generator matrix for the code D_{i}, then the generator matrix of C is
G= |G_{1} G_{1}|

|0 G_{2}|

This is how we recursively define the code:

G(r,m) = |G(r,m-1) G(r,m-1) |

| 0 G(r-1,m-1) |

with base cases:

G(0,m)=[1 1 1 1 ... 1] the binary repetition code of length m.

G(m,m)=I_{m} the mxm identity matrix.

My apologies for the bad symbol formatting, but I discovered shortly after beginning that I couldn't view the HTML symbols in my browser. I tried other computers, and many of them couldn't register the symbols, so I decided to go with ASCII, and it doesn't look so nice. If there's any question about what I was trying to do, just /msg me.