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<GF(2),7 |

[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<GF(2),8 |

[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<GF(2),8 |

[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<GF(2),8 |

[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<GF(2),8 |

[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