/***the five 12-dimensional Eisenstein lattices given***/ /***in MAGMA-Code via Gram matrices; factor 1/3 taken***/ /***out of the matrix-coeff. for better readability ***/ /***the Gram matrices for the lattices in dim 4 and ***/ /***8 can be taken from Gram02 ***/ d:=3; S:=QuadraticField(-d); Gram02:=1/3*Matrix(S,[ [ 6, -w + 3, -w + 3, w + 3, 0, 0, 0, 0, 0, 0, 0, 0], [ w + 3, 6, w + 3, w + 3, 0, 0, 0, 0, 0, 0, 0, 0], [ w + 3, -w + 3, 6, w + 3, 0, 0, 0, 0, 0, 0, 0, 0], [-w + 3, -w + 3, -w + 3, 6, 0, 0, 0, 0, 0, 0, 0, 0], [ 0, 0, 0, 0, 6, w - 3, -w + 3, -w + 3, 0, 0, 0, 0], [ 0, 0, 0, 0, -w - 3, 6, -w - 3, w - 3, 0, 0, 0, 0], [ 0, 0, 0, 0, w + 3, w - 3, 6, -w + 3, 0, 0, 0, 0], [ 0, 0, 0, 0, w + 3, -w - 3, w + 3, 6, 0, 0, 0, 0], [ 0, 0, 0, 0, 0, 0, 0, 0, 6, w + 3, w - 3, w - 3], [ 0, 0, 0, 0, 0, 0, 0, 0, -w + 3, 6, w - 3, w - 3], [ 0, 0, 0, 0, 0, 0, 0, 0, -w - 3, -w - 3, 6, -w + 3], [ 0, 0, 0, 0, 0, 0, 0, 0, -w - 3, -w - 3, w + 3, 6]]); /***Gram02 corresponds to the real 3E8 lattice***/ /***#Aut=2^22 * 3^16 * 5^3***/ Gram11:=1/3*Matrix(S,[ [ 6, w + 3, 0, 0, 0, 0, 0, 0, 0, -w + 3, 2*w, 2*w], [ -w + 3, 6, 0, 0, 0, 0, 0, 0, 0, -2*w, 2*w, 2*w], [ 0, 0, 6, -w + 3, 0, 0, 0, 0, 0, 0, -w - 3, 0], [ 0, 0, w + 3, 6, 0, 0, 0, 0, 0, 0, 0, 0], [ 0, 0, 0, 0, 6, w - 3, -w + 3, 0, 0, -w - 3, w - 3, -w - 3], [ 0, 0, 0, 0, -w - 3, 6, -w - 3, 0, 0, w + 3, -w + 3, w + 3], [ 0, 0, 0, 0, w + 3, w - 3, 6, 0, 0, -w - 3, w - 3, -w - 3], [ 0, 0, 0, 0, 0, 0, 0, 6, -w + 3, -w - 3, 0, -w - 3], [ 0, 0, 0, 0, 0, 0, 0, w + 3, 6, 0, 0, -w - 3], [ w + 3, 2*w, 0, 0, w - 3, -w + 3, w - 3, w - 3, 0, 12, -2*w, w + 3], [ -2*w, -2*w, w - 3, 0, -w - 3, w + 3, -w - 3, 0, 0, 2*w, 12, 2*w + 6], [ -2*w, -2*w, 0, 0, w - 3, -w + 3, w - 3, w - 3, w - 3, -w + 3, -2*w + 6, 12]]); /***Gram11 corresponds to the real 4E6 lattice***/ /***#Aut=2^16 * 3^17***/ Gram18:=1/3*Matrix(S,[ [ 6, w + 3, 0, 0, 0, 0, 0, 0, -w - 3, -w - 3, w + 3, -w + 3], [-w + 3, 6, 0, 0, 0, 0, 0, 0, -w - 3, -w - 3, -w + 3, -2*w], [ 0, 0, 6, w + 3, 0, 0, 0, 0, w - 3, -w - 3, w - 3, 0], [ 0, 0, -w + 3, 6, 0, 0, 0, 0, w - 3, 0, 0, 0], [ 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, w + 3], [ 0, 0, 0, 0, 0, 6, -w + 3, 0, w - 3, 2*w, 0, 0], [ 0, 0, 0, 0, 0, w + 3, 6, 0, w - 3, 0, w + 3, -w - 3], [ 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, w - 3, -w + 3], [ w - 3, w - 3, -w - 3, -w - 3, 0, -w - 3, -w - 3, 0, 12, w + 3, 0, 2*w], [ w - 3, w - 3, w - 3, 0, 0, -2*w, 0, 0, -w + 3, 12, 0, 0], [-w + 3, w + 3, -w - 3, 0, 0, 0, -w + 3, -w - 3, 0, 0, 12, -w - 3], [ w + 3, 2*w, 0, 0, -w + 3, 0, w - 3, w + 3, -2*w, 0, w - 3, 12]]); /***Gram18 corresponds to the real 6D4 lattice***/ /***#Aut=2^21 * 3^9 * 5***/ Gram21:=1/3*Matrix(S,[ [ 6, 0, 0, 0, 0, w + 3, w + 3, w + 3, w + 3, w + 3, 0, 0], [ 0, 6, 0, 0, 0, w + 3, w + 3, -w + 3, w - 3, 0, w + 3, -w + 3], [ 0, 0, 6, 0, 0, 0, 0, 0, 0, -w - 3, -w - 3, 0], [ 0, 0, 0, 6, 0, -w - 3, 0, w + 3, w + 3, 2*w, -w - 3, -w - 3], [ 0, 0, 0, 0, 6, -w + 3, w - 3, -w + 3, 0, w - 3, 0, -w - 3], [ -w + 3, -w + 3, 0, w - 3, w + 3, 12, -w + 3, -w + 3, w - 3, -w - 3, 6, -3*w + 3], [ -w + 3, -w + 3, 0, 0, -w - 3, w + 3, 12, -2*w, 2*w, 6, w + 3, w + 3], [ -w + 3, w + 3, 0, -w + 3, w + 3, w + 3, 2*w, 12, 0, 2*w, w - 3, -w - 3], [ -w + 3, -w - 3, 0, -w + 3, 0, -w - 3, -2*w, 0, 12, 6, -w - 3, w - 3], [ -w + 3, 0, w - 3, -2*w, -w - 3, w - 3, 6, -2*w, 6, 12, 2*w, 4*w], [ 0, -w + 3, w - 3, w - 3, 0, 6, -w + 3, -w - 3, w - 3, -2*w, 12, -2*w + 6], [ 0, w + 3, 0, w - 3, w - 3, 3*w + 3, -w + 3, w - 3, -w - 3, -4*w, 2*w + 6, 12]]); /***Gram21 corresponds to the real 12A2 lattice***/ /***#Aut=2^7 * 3^15 * 5 * 11***/ Gram24:=1/3*Matrix(S,[ [ 12, -6, -2*w + 6, w - 3, -w - 3, -2*w - 6, -6, w - 3, w + 3, 0, 2*w, 2*w - 6], [ -6, 12, 2*w - 6, -w - 3, 6, 2*w + 6, -w + 3, -w - 3, -2*w - 6, 3*w - 3, -w + 3, -w + 3], [ 2*w + 6, -2*w - 6, 12, w - 3, -w - 3, -3*w - 3, w - 3, 0, 2*w, -2*w, 2*w - 6, 2*w - 6], [ -w - 3, w - 3, -w - 3, 12, w + 3, 0, 6, 0, 6, 0, -w - 3, 6], [ w - 3, 6, w - 3, -w + 3, 12, 6, -w + 3, -3*w - 3, -w - 3, 3*w - 3, -w - 3, -w + 3], [ 2*w - 6, -2*w + 6, 3*w - 3, 0, 6, 12, -w + 3, -2*w, w - 3, 2*w, -2*w, -3*w + 3], [ -6, w + 3, -w - 3, 6, w + 3, w + 3, 12, -w - 3, w + 3, w - 3, 0, 6], [ -w - 3, w - 3, 0, 0, 3*w - 3, 2*w, w - 3, 12, -w - 3, -2*w, -2*w, 0], [ -w + 3, 2*w - 6, -2*w, 6, w - 3, -w - 3, -w + 3, w - 3, 12, -w + 3, 0, 0], [ 0, -3*w - 3, 2*w, 0, -3*w - 3, -2*w, -w - 3, 2*w, w + 3, 12, -2*w, -w - 3], [ -2*w, w + 3, -2*w - 6, w - 3, w - 3, 2*w, 0, 2*w, 0, 2*w, 12, -w + 3], [-2*w - 6, w + 3, -2*w - 6, 6, w + 3, 3*w + 3, 6, 0, 0, w - 3, w + 3, 12]]); /***Gram02 corresponds to the real Leech lattice***/ /***#Aut=2^14 * 3^8 * 5^2 * 7 * 11 *13***/ mass:=1032508093/67774344416722944000; /***the mass of the genus of 12d Eisenstein lattices***/ /***helpful function, whicht returns the corresponding real- and imaginary-part ***/ /***24-dim matrices, which have to be invariant which respect to the Automorphism***/ /***group; use: "A,B:=MakeRealMatrices(GramXY);" remark: B is scaled by d=3 ***/ /***then use "AutomorphismGroup([MatrixRing(Integers(),24) ! A,B]);", to get the ***/ /***Automorphism groups ***/ MakeRealMatrices:=function(VGRAMST) RealGRAMST:=ScalarMatrix(Rationals(),24,0); ImGRAMST:=ScalarMatrix(Rationals(),24,0); for j:=0 to 11 do for k:=0 to 11 do RealGRAMST[1+j,1+k]:=VGRAMST[1+j,1+k][1]; RealGRAMST[13+j,13+k]:=1*VGRAMST[1+j,1+k][1]; RealGRAMST[1+j,13+k]:=(1/2)*VGRAMST[1+j,1+k][1]+(1/2)*d*VGRAMST[1+j,1+k][2]; RealGRAMST[13+j,1+k]:=(1/2)*VGRAMST[1+j,1+k][1]-(1/2)*d*VGRAMST[1+j,1+k][2]; end for; end for; for j:=0 to 11 do for k:=0 to 11 do ImGRAMST[1+j,1+k]:=VGRAMST[1+j,1+k][2]; ImGRAMST[13+j,13+k]:=1*VGRAMST[1+j,1+k][2]; ImGRAMST[1+j,13+k]:=(1/2)*VGRAMST[1+j,1+k][2]-(1/2)*VGRAMST[1+j,1+k][1]; ImGRAMST[13+j,1+k]:=(1/2)*VGRAMST[1+j,1+k][2]+(1/2)*VGRAMST[1+j,1+k][1]; end for; end for; ImGRAMST:=d*ImGRAMST; return RealGRAMST,ImGRAMST; end function; /***end of the helpful function***/