allocatemem(2^31) indice(a,v) = local(i0=0) ; for(i=1,#v, if(a==v[i], i0=i)); i0 Phi23(m) = local(B=matrix(#m,#m,i,j,m[i]*m[j]~),Q=qfminim(B),c,C,D,d,E,e,r,i0) ; c=Q[1] ; C=Q[3] ; D=vector(#C,i,sum(j=1,#m,C[j,i]*m[j])) ; d=sum(i=1,#D,D[i]) ; E=vector(#D,i,d*D[i]~) ; e=vecsort(E)[1] ; C=[] ; for(i=1,#E, if(E[i]==e, C=concat(C,[D[i]]))); B=matrix(#C,#C,i,j,C[i]*C[j]~); r=concat([c],vector(4,i, sum(j=1,#C, (sum(k=1,#C,B[j,k])==(3-i))))); r=concat(r,[matdet(B)]) ; r V=vector(32) ; R=vector(32); for(i=1,32, V[i]=readvec("generateursX23L"i) ; R[i]=Phi23(V[i]);) for(k=1,32, v=V[k]; T2=vector(32); forvec(a=vector(23,i,[0,1]), if(a!=0, b=sum(i=1,23,a[i]*v[i]) ; q=(1/2)*(b*b~) ; if(Mod(q,2)==0, for(i=1,#v, if(Mod(v[i]*b~,2)==1, i0=i)) ; m=vector(#v,j,(v[i0]*b~)*v[j]-(v[j]*b~)*v[i0]) ; m=concat(m,2*v); m=concat(m,[(1/2)*(b-q*v[i0])]) ; m=matrix(24,#m,i,j,m[j][i]) ; M=m*qflll(m) ; m=vector(#M,i,vector(#M~,j,M[j,i])) ; i0=indice(Phi23(m),R); T2[i0]=T2[i0]+1; ; for(i=1,#T2, write("T2X23L"k,T2[i])); ) t2=vector(32,i,readvec("T2X23L"i)); T2=matrix(#t2,#t2,i,j,t2[j][i]);