% Formules de Gross pour S08 allocatemem(3000000000) 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)); E1= vector(2^n,X,matrix(n,n)); for(i=1,2^n, if(Mod(sum(k=1,n, base2(i-1)[k]),2), ,for(j=1,n, E1[i][j,j]= (-1)^(base2(i-1)[j])) )); E= eval(setminus(Set(E1), Set(matrix(n,n)) )); W=vector(#Sn*#E); for( j=1,#E, for(i=1,#Sn, W[((j-1)*#Sn)+i]=E[j]*Sn[i] )); v=vector(3); v[1]=vector(6,i,vector(4,i,i==1)); for(i=1,3, v[1][i][i+1]=-1; v[1][i+3][i+1]=1); v[2]=vector(4,i,vector(4,i,i==2)); for(i=1,2, v[2][i][i+2]=-1; v[2][i+2][i+2]=1); v[3]=vector(2,i,vector(4,i,i==3)); for(i=1,1, v[3][i][i+3]=-1; v[3][i+1][i+3]=1); R=concat(v[1], concat(v[2],v[3])); rho=(1/2)*sum(i=1,#R,R[i]); racinespositives(l) = local(a=(1/2)*sum(i=1,4,l[i]), b, rp=[], RP=[], j=vector(12),J,l1,l2,l3) ; a=floor(a); for(i=0,a, b=l[1]-i ; for(j1=0,b, for(j2=0, b-j1, j3=b-j1-j2; for(j4=0,i, for(j5=0,i-j4, j6=i-j4-j5 ; j=[j1,j2,j3,j4,j5,j6] ; l1=l-sum(i=1,6,j[i]*v[1][i]) ; if(l1[2] >=0, rp=concat(rp,[j]) ) ))))); if(rp==[], rp=[vector(6)]); for(k=1,#rp, J=rp[k] ; l1=l-sum(i=1,6,J[i]*v[1][i]) ; a=(1/2)*sum(i=2,4,l1[i]); a=floor(a); for(i=0,a, b=l1[2]-i ; for(j7=0,b, j8=b-j7 ; for(j9=0,i, j10=i-j9 ; j=concat(J,[j7,j8,j9,j10]) ; l2=l1-sum(i=1,4, j[i+6]*v[2][i]) ; if(l2[3]>=0, RP=concat(RP,[j]) ) )) )) ;rp=RP; RP=[]; if(rp==[], rp=[vector(10)]) ; for(k=1,#rp, J=rp[k] ; l2=l-sum(i=1,6,J[i]*v[1][i])-sum(i=1,4,J[i+6]*v[2][i]) ; a=(1/2)*sum(i=3,4,l2[i]); a=floor(a) ; b=l2[3]-a ; j=concat(J,[b,a]) ; l3=l2-sum(i=1,2,j[i+10]*v[3][i]) ; if((b>=0)*(a>=0)*(l3==0), RP=concat(RP,[j])) ); RP P(q,l) = local(rp=racinespositives(l)) ; sum(i=1,#rp,q^(-sum(j=1,#rp[i],rp[i][j]))) d(q,l,m) = q^((l-m)*rho~)* sum(i=1,#W, matdet(W[i])*P(q, (l+rho)*W[i]-(m+rho))) % Formules de Gross pour S07 allocatemem(3000000000) n=3; 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] )); v=vector(3); v[1]=vector(5,i,vector(3,i,i==1)); for(i=1,2,v[1][i][i+1]=-1; v[1][i+3][i+1]=1); v[2]=vector(3,i,vector(3,i,i==2)); for(i=1,1,v[2][i][i+2]=-1; v[2][i+2][i+2]=1); v[3]=[vector(3,j,j==3)]; R=concat(v[1], concat(v[2],v[3])); rhov=(1/2)*sum(i=1,#R,R[i]) ; rho=rhov+vector(3,i,1/2); racinespositives(l) = local(a=sum(i=1,3,l[i]), b, rp=[], RP=[], j=vector(9),J,l1,l2,l3) ; for(i=0,a, b=l[1]-i ; for(j1=0,b, j2=b-j1; for(j3=0,i, for(j4=0,i-j3, j5=(i-j3-j4) ; j=[j1,j2,j3,j4,j5] ; l1=l-sum(i=1,5,j[i]*v[1][i]) ; if((sum(i=2,3,l1[i])>=0)*(l1[2] >=0)*(b>=0), rp=concat(rp,[j]) ) )))); if(rp==[], rp=[vector(5)]); for(k=1,#rp, J=rp[k] ; l1=l-sum(i=1,5,J[i]*v[1][i]) ; a=sum(i=2,3,l1[i]); for(i=0,a, b=l1[2]-i ; j6=b ; for(j7=0,i, j8=i-j7 ; j=concat(J,[j6,j7,j8]) ; l2=l1-sum(i=1,3, j[i+5]*v[2][i]) ; if((l2[3]>=0)*(b>=0), RP=concat(RP,[j]) ) )) ) ;rp=RP; RP=[]; if(rp==[], rp=[vector(8)]) ; for(k=1,#rp, J=rp[k] ; l2=l-sum(i=1,5,J[i]*v[1][i])-sum(i=1,3,J[i+5]*v[2][i]) ; a=l2[3]; j=concat(J,[a]) ; l3=l2-j[9]*v[3][1] ; if((a>=0)*(l3==0), RP=concat(RP,[j]))); RP P(q,l) = local(rp=racinespositives(l)) ; sum(i=1,#rp,q^(-sum(j=1,#rp[i],rp[i][j]))) d(q,l,m) = q^((l-m)*rho~)* sum(i=1,#W, matdet(W[i])*P(q, (l+rhov)*W[i]-(m+rhov))) % Formules de Gross pour S09 allocatemem(3000000000) 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] )); v=vector(4); v[1]=vector(7,i,vector(4,i,i==1)); for(i=1,3,v[1][i][i+1]=-1; v[1][i+4][i+1]=1); v[2]=vector(5,i,vector(4,i,i==2)); for(i=1,2,v[2][i][i+2]=-1; v[2][i+3][i+2]=1); v[3]=vector(3,i,vector(4,i,i==3)); for(i=1,1,v[3][i][i+3]=-1; v[3][i+2][i+3]=1); v[4]=[vector(4,j,j==4)]; R=concat(v[1], concat(v[2],concat(v[3],v[4]))); rhov=(1/2)*sum(i=1,#R,R[i]) ; rho=rhov+vector(4,i,1/2); racinespositives(l) = local(a=sum(i=1,4,l[i]), b, rp=[], RP=[], j,J,l1,l2,l3,l4) ; for(i=0,a, b=l[1]-i ; for(j1=0,b, for(j2=0,b-j1, j3=b-j1-j2 ; for(j4=0,i, for(j5=0,i-j4, for(j6=0, i-j4-j5, j7=(i-j4-j5-j6) ; j=[j1,j2,j3,j4,j5,j6,j7] ; l1=l-sum(i=1,7,j[i]*v[1][i]) ; if((sum(i=2,4,l1[i])>=0)*(l1[2]>=0)*(b>=0), rp=concat(rp,[j]) ) )))))); if(rp==[], rp=[vector(7)]); for(k=1,#rp, J=rp[k] ; l1=l-sum(i=1,7,J[i]*v[1][i]) ; a=sum(i=2,4,l1[i]); for(i=0,a, b=l1[2]-i ; for(j8=0,b , j9=b-j8 ; for(j10=0,i, for(j11=0,i-j10, j12=i-j10-j11 ; j=concat(J,[j8,j9,j10,j11,j12]) ; l2=l1-sum(i=1,5, j[i+7]*v[2][i]) ; if((sum(i=3,4,l2[i])>=0)*(l2[3]>=0)*(b>=0), RP=concat(RP,[j]) ) )) ))) ;rp=RP; RP=[]; if(rp==[], rp=[vector(12)]) ; for(k=1,#rp, J=rp[k] ; l2=l-sum(i=1,7,J[i]*v[1][i])-sum(i=1,5, J[i+7]*v[2][i]) ; a=sum(i=3,4,l2[i]); for(i=0,a, b=l2[3]-i ; j13=b ; for(j14=0,i, j15=i-j14 ; j=concat(J,[j13,j14,j15]) ; l3=l2-sum(i=1,3, j[i+12]*v[3][i]) ; if((l3[4]>=0)*(b>=0), RP=concat(RP,[j]) ) )) ) ;rp=RP; RP=[]; if(rp==[], rp=[vector(15)]) ; for(k=1,#rp, J=rp[k] ; l3=l-sum(i=1,7,J[i]*v[1][i])-sum(i=1,5, J[i+7]*v[2][i])-sum(i=1,3,J[i+12]*v[3][i]) ; a=l3[4]; j=concat(J,[a]) ; l4=l3-j[16]*v[4][1] ; if((a>=0)*(l4==0), RP=concat(RP,[j]))); RP P(q,l) = local(rp=racinespositives(l)) ; sum(i=1,#rp,q^(-sum(j=1,#rp[i],rp[i][j]))) d(q,l,m) = q^((l-m)*rho~)* sum(i=1,#W, matdet(W[i])*P(q, (l+rhov)*W[i]-(m+rhov))) % Formules de Gross pour Sp6 allocatemem(3000000000) n=3; 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] )); v=vector(3); v[1]=vector(5,i,vector(3,i,i==1)); for(i=1,2,v[1][i][i+1]=-1; v[1][i+3][i+1]=1); v[1][3]=2*v[1][3] ; v[2]=vector(3,i,vector(3,i,i==2)); for(i=1,1,v[2][i][i+2]=-1; v[2][i+2][i+2]=1); v[2][2]=2*v[2][2]; v[3]=[vector(3,j,j==3)]; v[3]=2*v[3]; R=concat(v[1], concat(v[2],v[3])); rhov=(1/2)*sum(i=1,#R,R[i]) ; rho=rhov-vector(3,i,1/2); racinespositives(l) = local(a=sum(i=1,3,l[i]), b, rp=[], RP=[], j=vector(9),J,l1,l2,l3) ; for(i=0,a, b=l[1]-i ; for(j1=0,b, j2=b-j1; for(j3=0,i, for(j4=0,i-j3, j5=(i-j3-j4) ; j=[j1,j2,j3/2,j4,j5] ; l1=l-sum(i=1,5,j[i]*v[1][i]) ; if((Mod(j3,2)==0)*(sum(i=2,3,l1[i])>=0)*(l1[2] >=0)*(b>=0), rp=concat(rp,[j]) ) )))); if(rp==[], rp=[vector(5)]); for(k=1,#rp, J=rp[k] ; l1=l-sum(i=1,5,J[i]*v[1][i]) ; a=sum(i=2,3,l1[i]); for(i=0,a, b=l1[2]-i ; j6=b ; for(j7=0,i, j8=i-j7 ; j=concat(J,[j6,j7/2,j8]) ; l2=l1-sum(i=1,3, j[i+5]*v[2][i]) ; if((Mod(j7,2)==0)*(l2[3]>=0)*(b>=0), RP=concat(RP,[j]) ) )) ) ;rp=RP; RP=[]; if(rp==[], rp=[vector(8)]) ; for(k=1,#rp, J=rp[k] ; l2=l-sum(i=1,5,J[i]*v[1][i])-sum(i=1,3,J[i+5]*v[2][i]) ; a=l2[3]; j=concat(J,[a/2]) ; l3=l2-j[9]*v[3][1] ; if((Mod(a,2)==0)*(a>=0)*(l3==0), RP=concat(RP,[j]))); RP P(q,l) = local(rp=racinespositives(l)) ; sum(i=1,#rp,q^(-sum(j=1,#rp[i],rp[i][j]))) d(q,l,m) = q^((l-m)*rho~)* sum(i=1,#W, matdet(W[i])*P(q, (l+rhov)*W[i]-(m+rhov))) % Formules de Gross pour Sp8 allocatemem(3000000000) 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] )); v=vector(4); v[1]=vector(7,i,vector(4,i,i==1)); for(i=1,3,v[1][i][i+1]=-1; v[1][i+4][i+1]=1); v[1][4]=2*v[1][4]; v[2]=vector(5,i,vector(4,i,i==2)); for(i=1,2,v[2][i][i+2]=-1; v[2][i+3][i+2]=1); v[2][3]=2*v[2][3]; v[3]=vector(3,i,vector(4,i,i==3)); for(i=1,1,v[3][i][i+3]=-1; v[3][i+2][i+3]=1); v[3][2]=2*v[3][2]; v[4]=[vector(4,j,j==4)]; v[4]=2*v[4]; R=concat(v[1], concat(v[2],concat(v[3],v[4]))); rhov=(1/2)*sum(i=1,#R,R[i]) ; rho=rhov-vector(4,i,1/2); racinespositives(l) = local(a=sum(i=1,4,l[i]), b, rp=[], RP=[], j,J,l1,l2,l3,l4) ; for(i=0,a, b=l[1]-i ; for(j1=0,b, for(j2=0,b-j1, j3=b-j1-j2 ; for(j4=0,i, for(j5=0,i-j4, for(j6=0, i-j4-j5, j7=(i-j4-j5-j6) ; j=[j1,j2,j3,j4/2,j5,j6,j7] ; l1=l-sum(i=1,7,j[i]*v[1][i]) ; if((Mod(j4,2)==0)*(sum(i=2,4,l1[i])>=0)*(l1[2]>=0)*(b>=0), rp=concat(rp,[j]) ) )))))); if(rp==[], rp=[vector(7)]); for(k=1,#rp, J=rp[k] ; l1=l-sum(i=1,7,J[i]*v[1][i]) ; a=sum(i=2,4,l1[i]); for(i=0,a, b=l1[2]-i ; for(j8=0,b , j9=b-j8 ; for(j10=0,i, for(j11=0,i-j10, j12=i-j10-j11 ; j=concat(J,[j8,j9,j10/2,j11,j12]) ; l2=l1-sum(i=1,5, j[i+7]*v[2][i]) ; if((Mod(j10,2)==0)*(sum(i=3,4,l2[i])>=0)*(l2[3]>=0)*(b>=0), RP=concat(RP,[j]) ) )) ))) ;rp=RP; RP=[]; if(rp==[], rp=[vector(12)]) ; for(k=1,#rp, J=rp[k] ; l2=l-sum(i=1,7,J[i]*v[1][i])-sum(i=1,5, J[i+7]*v[2][i]) ; a=sum(i=3,4,l2[i]); for(i=0,a, b=l2[3]-i ; j13=b ; for(j14=0,i, j15=i-j14 ; j=concat(J,[j13,j14/2,j15]) ; l3=l2-sum(i=1,3, j[i+12]*v[3][i]) ; if((Mod(j14,2)==0)*(l3[4]>=0)*(b>=0), RP=concat(RP,[j]) ) )) ) ;rp=RP; RP=[]; if(rp==[], rp=[vector(15)]) ; for(k=1,#rp, J=rp[k] ; l3=l-sum(i=1,7,J[i]*v[1][i])-sum(i=1,5, J[i+7]*v[2][i])-sum(i=1,3,J[i+12]*v[3][i]) ; a=l3[4]; j=concat(J,[a/2]) ; l4=l3-j[16]*v[4][1] ; if((Mod(a,2)==0)*(a>=0)*(l4==0), RP=concat(RP,[j]))); RP P(q,l) = local(rp=racinespositives(l)) ; sum(i=1,#rp,q^(-sum(j=1,#rp[i],rp[i][j]))) d(q,l,m) = q^((l-m)*rho~)* sum(i=1,#W, matdet(W[i])*P(q, (l+rhov)*W[i]-(m+rhov)))