Magma source code for the tables in the paper "DNA codes over two noncommutative rings of order four" joint work with Dong Eun Ohk.
////////////////////////////////////
C6 := LinearCode<GF(2),6
|
[1,1,0,0,0,0],[0,0,1,1,0,0],[0,0,0,0,1,1]>;
G6 := Sym(6);
P6 := C6^G6;
U6:=UniverseCode(GF(2), 6);
CwordRev6 := function(x)
return U6![x[6-i] : i in [0..5]];
end function;
k:=2;
i:=1;
while i le 15 do
Minimum({Distance(u,CwordRev6(v)) : u,v in P6[i] | Weight(u) eq k and Weight(v) eq k});
i +:= 1;
end while;
// Can change k:=2 into k:=4 , k:=6 to run the same algorithm
// For n=7 and 8 we have a similar code as follows.
////////////////////////////////////
C7 := LinearCode
[1,1,0,0,0,0,0],[0,0,1,1,0,0,0],[0,0,0,0,1,1,0]>;
G7 := Sym(7);
P7 := C7^G7;
U7:=UniverseCode(GF(2), 7);
CwordRev7 := function(x)
return
U7![x[7-i] : i in [0..6]];
end function;
k:=2;
i:=1;
while i le 105 do
Minimum({Distance(u,CwordRev7(v))
: u,v in P7[i] | Weight(u) eq k and Weight(v) eq k});
i +:= 1;
end while;
////////////////////////////////////
C8 := LinearCode
[1,1,0,0,0,0,0,0],[0,0,1,1,0,0,0,0],[0,0,0,0,1,1,0,0]>;
G8 := Sym(8);
P8 := C8^G8;
U8:=UniverseCode(GF(2), 8);
CwordRev8 := function(x)
return
U8![x[8-i] : i in [0..7]];
end function;
k:=2;
i:=1;
while i le 420 do
Minimum({Distance(u,CwordRev8(v))
: u,v in P8[i] | Weight(u) eq k and Weight(v) eq k});
i +:= 1;
end while;
////////////////////////////////////
C8 := LinearCode
[1,1,1,1,0,0,0,0],[0,0,0,0,1,1,0,0],[0,0,0,0,0,0,1,1]>;
G8 := Sym(8);
P8 := C8^G8;
U8:=UniverseCode(GF(2), 8);
CwordRev8 := function(x)
return
U8![x[8-i] : i in [0..7]];
end function;
k:=2;
i:=1;
while i le 210 do
Minimum({Distance(u,CwordRev8(v))
: u,v in P8[i] | Weight(u) eq k and Weight(v) eq k});
i +:= 1;
end while;
////////////////////////////////////
C8 := LinearCode
[1,1,1,1,0,0,0,0],[0,0,1,1,1,1,0,0],[0,0,0,0,0,0,1,1]>;
G8 := Sym(8);
P8 := C8^G8;
U8:=UniverseCode(GF(2), 8);
CwordRev8 := function(x)
return
U8![x[8-i] : i in [0..7]];
end function;
k:=4;
i:=1;
while i le 420 do
Minimum({Distance(u,CwordRev8(v))
: u,v in P8[i] | Weight(u) eq k and Weight(v) eq k});
i +:= 1;
end while;
////////////////////////////////////
C8 := LinearCode
[1,1,0,0,0,0,0,0],[0,0,1,1,0,0,0,0],[0,0,0,0,1,1,0,0],[0,0,0,0,0,0,1,1]>;
G8 := Sym(8);
P8 := C8^G8;
U8:=UniverseCode(GF(2), 8);
CwordRev8 := function(x)
return
U8![x[8-i] : i in [0..7]];
end function;
k:=2;
i:=1;
while i le 105 do
Minimum({Distance(u,CwordRev8(v))
: u,v in P8[i] | Weight(u) eq k and Weight(v) eq k});
i +:= 1;
end while;
//// The end