allocatemem(); allocatemem(); allocatemem(); allocatemem(); allocatemem(); W=[[-1, 0; -1, 1], [-1, 0; 0, -1], [-1, 3; -1, 2], [-1, 3; 0, 1], [-2, 3; -1, 1], [-2, 3; -1, 2], [1, -3; 0, -1], [1, -3; 1, -2], [1, 0; 0, 1], [1, 0; 1, -1], [2, -3; 1, -1], [2, -3; 1, -2]]; R=[[1,0]~, [0,1]~, [1,1]~, [2,1]~, [3,1]~, [3,2]~]; GRAM=[2, -3; -3, 6]; rho=sum(k=1,#R,R[k]/2); o=2^3*7*3; cardG=12096; cardConjG=12; A=vector(cardConjG); C=vector(cardConjG); A[1]=[o/3,o]; C[1]=56; A[2]=[o/4,o]; C[2]=378; A[3]=[o/2,o]; C[3]=315; A[4]=[o/6,o/6]; C[4]=2016; A[5]=[o/2,5*o/8]; C[5]=1512; A[6]=[o/7,o/7]; C[6]=1728; A[7]=[o/3,o/2]; C[7]=504; A[8]=[o/4,o/2]; C[8]=378; A[9]=[o,o]; C[9]=1; A[10]=[o/12,3*o/12]; C[10]=3024; A[11]=[o/8,o/8]; C[11]=1512; A[12]=[o/3,o/3]; C[12]=672; z=Mod(x,polcyclo(o)); RM=vector(cardConjG,k,[]); SM=vector(cardConjG,k,[]); for(s=1,cardConjG, for(k=1, #R, if( Mod(A[s]*R[k],o), SM[s]=concat(SM[s],[R[k]]), RM[s]=concat(RM[s],[R[k]]) ))) ; rhoM=vector( cardConjG,s,sum(j=1,#RM[s],1/2*((RM[s]))[j])); WM=vector(cardConjG); for(s=1,cardConjG , WM[s]=[]); for(s=1, cardConjG, for(k=1,#W, if( prod(j=1,#RM[s], 0^( setminus( Set( [W[k]^(-1)*RM[s][j] ]), Set(R))!=[])) ==1, WM[s]=concat(WM[s], [k] ), ) )); D=vector(cardConjG); for(s=1,cardConjG,D[s]=prod(i=1,#SM[s], (1-z^(-A[s]*SM[s][i])) ) ); Q(s,lambda)= prod(j=1,#RM[s], lambda~*GRAM*RM[s][j] ) ; Trace(s,lambda)= sum(i=1,#WM[s],matdet(W[WM[s][i]])*z^(A[s]*W[WM[s][i]]*lambda)*z^(A[s]*(W[WM[s][i]]*rho-rho))*Q(s,W[WM[s][i]]*(lambda+rho))*Q(s,rhoM[s])^(-1) )*D[s]^(-1); m(a,b)=lift( (cardG)^(-1)*sum(s=1,cardConjG,C[s]* Trace(s,[2*a+3*b,a+2*b]~))); M(a,b)=m((a-b)/2-1,b/2-1); listeres(v)=for(j=3,v,for(i=1,floor((j-1)/2),write(dim_G2,[2*(j-i),2*i, M(2*(j-i),2*i)]))); dimSL2(k)=lift(Mod(k-1,2))*max(0,(floor(k/12)-if(Mod(k-2,12),0,1))); S1(k)=dimSL2(k+1); listeStres(v)=for(j=3,v,for(i=1,floor((j-1)/2),write(dim_StG2,[2*(j-i),2*i, M(2*(j-i),2*i)-0^(j-2*i-1)*S1(2*i+1)-0^(i-1)*S1(2*(j-i)+1)*0^(lift(Mod(j-i,2)))-0^(2*(j-i)-4)-0^(lift(Mod(j-i+1,2)))*S1(j-i)*S1(i+j)])));