allocatemem(); allocatemem(); allocatemem(); allocatemem(); allocatemem(); allocatemem(); allocatemem(); allocatemem(); allocatemem(); n=4; Sn=vector(n!,X,matrix(n,n)); for(i=0,n!-1,for(j=1,n,Sn[n!-i][j,(numtoperm(n,i)[j])]=1)); base2(i)=concat(vector(n-#binary(i)),binary(i)); E=vector(2^n,X,matrix(n,n)); for(i=1,2^n, for(j=1,n, E[i][j,j]= (-1)^(base2(i-1)[j]) ) ); W=vector(#Sn*#E); for( j=1,#E, for(i=1,#Sn, W[((j-1)*#Sn)+i]=E[j]*Sn[i] )); R=[]; for(j=1,n, R=concat(R, [vectorv(n, i, i==j)] )); for(j=1,n-1, for(k=j+1,n, R=concat(R, [vectorv(n, i, (-1)^(i==k)* 0^(i!=j&& i!=k) )] ) )); for(j=1,n-1, for(k=j+1,n, R=concat(R, [vectorv(n, i, 0^(i!=j&& i!=k) )] ) )); rho=sum(k=1,#R, 1/2*(R[k]) ); o=2^3*3^2*5*7; cardConjG=130; C=vector(cardConjG); A=vector(cardConjG); z=Mod(x,polcyclo(2520)); C[1]=cardG/(696729600); A[1]=[o,o,o,o]; C[2]=cardG/(184320 ) ; A[2]=[o,o,o,o/2]; C[3]=cardG/(311040 ); A[3]=[o,o,o,o/3]; C[4]=cardG/(221184 ); A[4]=[o,o,o/2,o/2]; C[5]=cardG/(6144 ); A[5]=[o,o,o/2,o/2]; C[6]=cardG/(1152 ); A[6]=[o,o,o/2,o/3]; C[7]=cardG/(2592 ); A[7]=[o,o,o/3,o/3]; C[8]=cardG/(768 ); A[8]=[o,o,o/2,o/4]; C[9]=cardG/(1200 ); A[9]=[o,o,o/5,2*o/5]; C[10]=cardG/(6912 ); A[10]=[o,o,o/2,o/6]; C[11]=cardG/(18432 ); A[11]=[o,o,o/4,o/4]; C[12]=cardG/(184320 ); A[12]=[o/2,o/2,o/2,o]; C[13]=cardG/(7776 ); A[13]=[o/3,o/3,o/3,o]; C[14]=cardG/(96); A[14]=[o,o/2,o/3,o/4]; C[15]=cardG/(1024); A[15]=[o/4,o/4,o/2,o]; C[16]=cardG/(128 ); A[16]=[o/4,o/4,o/2,o]; C[17]=cardG/(80 ); A[17]=[o,o/2,o/5,2*o/5]; C[82]= cardG/(60 ); A[82]=[o,o/3,o/5,2*o/5]; C[18]=cardG/(432 ); A[18]=[o,o/2,o/3,o/6]; C[19]=cardG/(48 ); A[19]=[o,o/2,o/3,o/6]; C[20]=cardG/(28 ); A[20]=[o,o/7,2*o/7,3*o/7]; C[21]=cardG/(768 ); A[21]=[o/2,o/2,o,o/4]; C[22]=cardG/(288 ); A[22]=[o/3,o/3,o,o/2]; C[23]=cardG/(6912 ); A[23]=[o/2,o/2,o,o/3]; C[24]=cardG/(80 ); A[24]=[o,o/2,o/10,3*o/10]; C[25]=cardG/(64 ); A[25]=[o,o/2,o/8,3*o/8]; C[26]=cardG/(1152 ); A[26]=[o/2,o/2,o,o/6]; C[27]=cardG/(216 ) ; A[27]=[o,o/2,o/3,o/6]; C[28]=cardG/(128) ; A[28]=[o,o/4,o/8,3*o/8]; C[29]=cardG/(288 ) ; A[29]=[o/6,o/6,o,o/2]; C[30]=cardG/(96 ); A[30]=[o,o/2,o/4,o/6]; C[31]=cardG/(576 ); A[31]=[o/4,o/4,o,o/3]; C[32]=cardG/(144); A[32]=[o,o/3,o/12,5*o/12]; C[33]=cardG/(108 ); A[33]=[o,o/9,2*o/9,4*o/9]; C[34]=cardG/(864 ); A[34]=[o/6,o/6,o,o/3]; C[35]=cardG/(696729600 ); A[35]=[o/2,o/2,o/2,o/2]; C[36]=cardG/(2*54 ); A[36]=[o/3,o/9,2*o/9,4*o/9]; C[37]=cardG/(2*54 ); A[37]=[-o/3,o/9,2*o/9,4*o/9]; C[38]=cardG/(18432 ); A[38]=[o/2,o/2,o/4,o/4]; C[39]=cardG/(2*600 ); A[39]=[o/5,o/5,2*o/5,2*o/5]; C[80]=cardG/(2*600 ); A[80]=[-o/5,o/5,2*o/5,2*o/5]; C[40]=cardG/(2*864 ); A[40]=[o/3,o/3,o/2,o/6]; C[41]=cardG/(2*864 ); A[41]=[-o/3,o/3,o/2,o/6]; C[42]=cardG/(2*155520 ); A[42]=[o/3,o/3,o/3,o/3]; C[43]=cardG/(2*155520 ); A[43]=[-o/3,o/3,o/3,o/3]; C[44]=cardG/(128 ); A[44]=[o/2,o/4,o/8,3*o/8]; C[45]=cardG/(28 ); A[45]=[o/2,o/14,3*o/14,5*o/14]; C[46]=cardG/(1200 ); A[46]=[o/2,o/2,o/10,3*o/10]; C[47]=cardG/(2592 ); A[47]=[o/2,o/2,o/6,o/6]; C[48]=cardG/(311040 ); A[48]=[o/2,o/2,o/2,o/6]; C[49]=cardG/(2*72 ); A[49]=[o/4,o/4,o/12,5*o/12]; C[81]=cardG/(2*72 ); A[81]=[-o/4,o/4,o/12,5*o/12]; C[50]=cardG/(60 ); A[50]=[o/2,o/6,o/10,3*o/10]; C[51]=cardG/(2*192); A[51]=[o/8,o/8,3*o/8,3*o/8]; C[52]=cardG/(2*192); A[52]=[-o/8,o/8,3*o/8,3*o/8]; C[53]=cardG/(576 ); A[53]=[o/4,o/4,o/2,o/6]; C[54]=cardG/(2*46080 ); A[54]=[o/4,o/4,o/4,o/4]; C[55]=cardG/(2*46080 ); A[55]=[-o/4,o/4,o/4,o/4]; C[56]=cardG/(2*288 ); A[56]=[o/3,o/3,o/12,5*o/12]; C[57]=cardG/(2*288 ); A[57]=[-o/3,o/3,o/12,5*o/12]; C[58]=cardG/(2*1728 ); A[58]=[o/3,o/3,o/6,o/6]; C[59]=cardG/(2*1728 ); A[59]=[-o/3,o/3,o/6,o/6]; C[60]=cardG/(108 ); A[60]=[o/2,o/18,5*o/18, 7*o/18]; C[61]=cardG/(144 ); A[61]=[o/2,o/6,o/12,5*o/12]; C[62]=cardG/(7776 ); A[62]=[o/6,o/6,o/6,o/2]; C[63]=cardG/(2*30 ); A[63]=[o/30, 7*o/30, 11*o/30, 13*o/30]; C[64]=cardG/(2*30 ); A[64]=[-o/30,7*o/30,11*o/30,13*o/30]; C[65]=cardG/(2*24 ); A[65]=[o/24,5*o/24,7*o/24,11*o/24]; C[66]=cardG/(2*24 ); A[66]=[-o/24,5*o/24,7*o/24,11*o/24]; C[67]=cardG/(2*20); A[67]=[o/20,3*o/20,7*o/20,11*o/20]; C[68]=cardG/(2*20); A[68]=[-o/20,3*o/20,7*o/20,11*o/20]; C[69]=cardG/(2*288 ); A[69]=[o/12,o/12,5*o/12,5*o/12]; C[70]=cardG/(2*288 ); A[70]=[-o/12,o/12,5*o/12,5*o/12]; C[71]=cardG/(2*54 ); A[71]=[o/6,o/18,5*o/18,7*o/18]; C[72]=cardG/(2*54 ); A[72]=[-o/6,o/18,5*o/18,7*o/18]; C[73]=cardG/(2*30 ); A[73]=[o/15,2*o/15,4*o/15,7*o/15]; C[74]=cardG/(2*30 ); A[74]=[-o/15,2*o/15,4*o/15,7*o/15]; C[75]=cardG/(2*600 ); A[75]=[o/10, o/10,3*o/10,3*o/10]; C[76]=cardG/(2*600 ); A[76]=[-o/10, o/10,3*o/10,3*o/10]; C[77]=cardG/(2*288 ); A[77]=[o/6,o/6,o/12,5*o/12]; C[78]=cardG/(2*288 ); A[78]=[-o/6,o/6,o/12,5*o/12]; C[83]=cardG/(2*155520 ); A[83]=[o/6,o/6,o/6,o/6]; C[79]=cardG/(2*155520 ); A[79]=[-o/6,o/6,o/6,o/6]; C[84]=cardG/(5806080); A[84]=[o,o,o,o/2]; C[85]=cardG/(18432); A[85]=[o,o,o/2,o/2]; C[86]=cardG/(8640); A[86]=[o,o,o/2,o/3]; C[87]=cardG/(15360); A[87]=[o,o,o/2,o/4]; C[88]=cardG/(18432); A[88]=[o/2,o/2,o/2,o]; C[89]=cardG/(576); A[89]=[o/2,o/2,o/3,o]; C[90]=cardG/(432); A[90]=[o/3,o/3,o/2,o]; C[91]=cardG/(4608); A[91]=[o/2,o/2,o/4,o]; C[92]=cardG/(256); A[92]=[o/2,o/2,o/4,o]; C[93]=cardG/(192); A[93]=[o/4,o/3,o/2,o]; C[94]=cardG/(120); A[94]=[o/5,2*o/5,o/2,o]; C[95]=cardG/(144); A[95]=[o/6,o/3,o/2,o]; C[96]=cardG/(384); A[96]=[o/8,3*o/8,o/2,o]; C[97]=cardG/(576); A[97]=[o/2,o/2,o/6,o]; C[98]=cardG/(576); A[98]=[o/6,o/4,o/2,o]; C[99]=cardG/(1536); A[99]=[o/4,o/4,o/2,o]; C[100]=cardG/(5806080); A[100]=[o/2,o/2,o/2,o/2]; C[101]=cardG/(40); A[101]=[o/5,2*o/5,o/4,o/2]; C[102]=cardG/(288); A[102]=[o/3,o/3,o/6,o/2]; C[103]=cardG/(28); A[103]=[o/7,2*o/7,3*o/7,o/2]; C[104]=cardG/(64); A[104]=[o/8,3*o/8,o/4,o/2]; C[105]=cardG/(16); A[105]=[o/8,3*o/8,o/4,o/2]; C[106]=cardG/(1536); A[106]=[o/2,o/2,o/4,o/4]; C[107]=cardG/(576); A[107]=[o/2,o/2,o/3,o/4]; C[108]=cardG/(15360); A[108]=[o/2,o/2,o/2,o/4]; C[109]=cardG/(144); A[109]=[o/2,o/2,o/6,o/3]; C[110]=cardG/(60); A[110]=[o/5,2*o/5,o/3,o/2]; C[111]=cardG/(2592); A[111]=[o/3,o/3,o/3,o/2]; ; C[112]=cardG/(24); A[112]=[o/12,5*o/12,o/4,o/2]; C[113]=cardG/(120); A[113]=[o/2,o/2,o/10,3*o/10]; C[114]=cardG/(48); A[114]=[o/8,3*o/8,o/3,o/2]; C[115]=cardG/(384); A[115]=[o/2,o/2,o/8,3*o/8]; C[116]=cardG/(192); A[116]=[o/2,o/2,o/4,o/6]; C[117]=cardG/(8640); A[117]=[o/2,o/2,o/2,o/6]; C[118]=cardG/(40); A[118]=[o/10,3*o/10,o/4,o/2]; C[119]=cardG/(48); A[119]=[o/8,3*o/8,o/6,o/2]; C[120]=cardG/(432); A[120]=[o/2,o/2,o/6,o/6]; C[121]=cardG/(72); A[121]=[o/6,o/4,o/3,o/2]; C[122]=cardG/(768); A[122]=[o/4,o/4,o/4,o/2]; C[123]=cardG/(48); A[123]=[o/12,5*o/12,o/3,o/2]; C[124]=cardG/(36); A[124]=[o/9,2*o/9,4*o/9,o/2]; C[125]=cardG/(288); A[125]=[o/6,o/6,o/3,o/2]; C[126]=cardG/(36); A[126]=[o/18,5*o/18,7*o/18,o/2]; C[127]=cardG/(28); A[127]=[o/14,3*o/14,5*o/14,o/2]; C[128]=cardG/(48); A[128]=[o/12,5*o/12,o/6,o/2]; C[129]=cardG/(60); A[129]=[o/10,3*o/10,o/6,o/2]; C[130]=cardG/(2592); A[130]=[o/6,o/6,o/6,o/2]; CardG=sum(i=1,cardConjG,C[i]); RM=vector(cardConjG); for(k=1,cardConjG, RM[k]=[]); SM=vector(cardConjG); for(k=1,cardConjG, SM[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~* 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,c,d)=lift( (CardG)^(-1)*sum(s=1,cardConjG,C[s]* Trace(s,[a,b,c,d]~)));