## Direct Product of Two Codes

Let A_{1} be a (linear) orthogonal array OA(*M*_{1}, *s*_{1}, *S*_{b}, *k*_{1}) and let A_{2} be a (linear) OA(*M*_{2}, *s*_{2}, *S*_{b}, *k*_{2}). Then the direct product or direct sum of A_{1} and A_{2} is a (linear) OA(*M*_{1}*M*_{2}, *s*_{1} + *s*_{2}, *S*_{b}, *k*) with

*k*= min{

*k*

_{1},

*k*

_{2}}.

Correspondingly, given two (linear) codes C_{1} and C_{2} with parameters (*s*_{1}, *N*_{1}, *d*_{1}) and (*s*_{1}, *N*_{2}, *d*_{2}), a new (linear) (*s*_{1} + *s*_{2}, *N*_{1}*N*_{2}, *d*)-code with *d* = min{*d*_{1}, *d*_{2}} can be obtained.

The (*u*, *u* + *v*)-construction is always at least as good as the direct product.

### Construction for Orthogonal Arrays

The new orthogonal array is defined by the direct product of the original OAs. To be more specific, the runs of the new OA A are given by the multi-set

_{1}⊗A

_{2}:= {(

*,*

**x***) :*

**y***∈ A*

**x**_{1},

*∈ A*

**y**_{2}} ⊆

*S*

_{b}

^{s1+s2}.

If the original OAs are linear the new OA can be constructed as follows: Let **H**_{i} be the *m*_{i}×*s*_{i} generator matrices of the original OAs. Then a generator matrix of the new OA is given by

### Construction for Codes

Interestingly, the construction for codes is identical to the construction for orthogonal arrays described above. In other words,

_{1}⊗A

_{2}= (A

_{1}

^{⊥}⊗A

_{2}

^{⊥})

^{⊥}.

### See Also

Generalization for arbitrary OOAs

Corresponding result for nets

The direct product is a special case of construction X4

[1, Section 2.9 and Section 1.3, Problem (17)]

### References

[1] | F. Jessie MacWilliams and Neil J. A. Sloane.The Theory of Error-Correcting Codes.North-Holland, Amsterdam, 1977. |

### Copyright

Copyright © 2004, 2005, 2006, 2007, 2008, 2009, 2010 by Rudolf Schürer and Wolfgang Ch. Schmid.

Cite this as: Rudolf Schürer and Wolfgang Ch. Schmid. “Direct Product of Two Codes.”
From MinT—the database of optimal net, code, OA, and OOA parameters.
Version: 2008-04-04.
http://mint.sbg.ac.at/desc_CProduct.html