Self-Dual Z/(4) Codes: Lengths 1-9

The self-dual Z/(4) codes of lengths up to 9 were classified by Conway and Sloane in
"Self-Dual Codes over the Integers Modulo 4"
J. Comb. Theory A 62 (1993) 31-45.

For completeness, we list these codes here.

For each length n we have the trivial codes having generator matrix 2I. These codes are direct sums of n copies of the trivial code

 
c := [[2]]; 
Any code having c as a direct summand is called trivially decomposable, such codes go unmentioned in the remainder of this listing.

At length 4, we find the first non-trivial self-dual code: d4 whose generator matrix is

 
d4 := [ 
 [ 1, 1, 1, 1 ], 
 [ 2, 2, 0, 0 ], 
 [ 2, 0, 2, 0 ]]; 

There are no non-trivial codes of length 5, but at length 6 there is one: d6, whose generator matrix is

 
d6 := [ 
 [ 1, 1, 1, 0, 1, 0 ], 
 [ 1, 1, 0, 1, 0, 1 ], 
 [ 2, 2, 0, 0, 0, 0 ], 
 [ 2, 0, 2, 2, 0, 0 ]]; 

At length 7, we have a single non-trivial self-dual code, e7.

 
e7 := [ 
 [ 1, 1, 1, 0, 1, 0, 0 ], 
 [ 1, 1, 0, 1, 0, 1, 0 ], 
 [ 1, 0, 1, 1, 0, 0, 1 ], 
 [ 0, 2, 2, 2, 0, 0, 0 ]]; 

At length 8, we find the first non-trivial direct sum d4+d4. Also, length 8 is the first possible length where Type II codes can be found. Closely related to d4+d4 is 2d4, which is a Type II code. Additionally there are codes with labels d8 and e8 each of which comes in a Type I and a Type II version, and a code (of Type II) labelled f, whose associated binary code has no weight 4 vectors.

The following table compares the nomenclatures for these codes as given in the Conway and Sloane paper versus the current work.

current Conway & Sloane
d4+d4 $ D^\oplus_4 \oplus D^\oplus_4 $
d8I $ D^\oplus_8 $
e8I $ E_8 $
f $ K_8 $
2d4 $ K^{\prime}_8 $
d8II $ O_8 $
e8II $ Q_8 $

Generator matrices for the codes follow:

 
d4+d4 := [ 
 [ 1, 1, 1, 1, 0, 0, 0, 0 ], 
 [ 2, 2, 0, 0, 0, 0, 0, 0 ], 
 [ 2, 0, 2, 0, 0, 0, 0, 0 ], 
 [ 0, 0, 0, 0, 1, 1, 1, 1 ], 
 [ 0, 0, 0, 0, 2, 2, 0, 0 ], 
 [ 0, 0, 0, 0, 2, 0, 2, 0 ]]; 
 
2d4 := [ 
 [ 1, 1, 1, 0, 0, 0, 1, 2 ], 
 [ 0, 0, 0, 1, 1, 1, 2, 1 ], 
 [ 2, 2, 0, 0, 0, 0, 0, 0 ], 
 [ 2, 0, 2, 0, 0, 0, 0, 0 ], 
 [ 0, 0, 0, 2, 2, 0, 0, 0 ], 
 [ 0, 0, 0, 2, 0, 2, 0, 0 ]]; 
 
d8I := [ 
 [ 1, 1, 1, 0, 0, 1, 0, 0 ], 
 [ 1, 1, 0, 1, 0, 2, 1, 0 ], 
 [ 1, 1, 0, 0, 1, 2, 2, 1 ], 
 [ 2, 2, 0, 0, 0, 0, 0, 0 ], 
 [ 2, 0, 2, 2, 2, 0, 0, 0 ]]; 
 
e8I := [ 
 [ 1, 1, 1, 0, 1, 0, 0, 0 ], 
 [ 1, 1, 0, 1, 2, 1, 0, 0 ], 
 [ 1, 0, 1, 1, 2, 2, 1, 0 ], 
 [ 0, 1, 1, 1, 2, 2, 2, 1 ]]; 
 
f := [ 
 [ 1, 1, 1, 1, 1, 1, 1, 1 ], 
 [ 2, 2, 0, 0, 0, 0, 0, 0 ], 
 [ 2, 0, 2, 0, 0, 0, 0, 0 ], 
 [ 2, 0, 0, 2, 0, 0, 0, 0 ], 
 [ 2, 0, 0, 0, 2, 0, 0, 0 ], 
 [ 2, 0, 0, 0, 0, 2, 0, 0 ], 
 [ 2, 0, 0, 0, 0, 0, 2, 0 ]]; 
 
d8II := [ 
 [ 1, 1, 1, 0, 0, 1, 0, 2 ], 
 [ 1, 1, 0, 1, 0, 2, 1, 0 ], 
 [ 1, 1, 0, 0, 1, 0, 2, 1 ], 
 [ 2, 2, 0, 0, 0, 0, 0, 0 ], 
 [ 2, 0, 2, 2, 2, 0, 0, 0 ]]; 
 
e8II := [ 
 [ 1, 1, 1, 0, 1, 0, 2, 0 ], 
 [ 1, 1, 0, 1, 2, 1, 0, 0 ], 
 [ 1, 0, 1, 1, 0, 2, 1, 0 ], 
 [ 0, 1, 1, 1, 2, 2, 2, 1 ]]; 

There are no codes of length 9 that aren't trivially decomposable.


fields@math.uic.edu