\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\ Sym2(2)--Binary quadratic forms \\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\ orbit size; \\\\\\\\\\\\\\\\\\\\\\\\\\\\ ors=[1, q^2 - 1, q*(q^2 - 1)/2, q*(q - 1)^2/2]; ORS=matdiagonal(ors); \\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\ Counting elements in subspaces \\\\\\\\\\\\\\\\\\\\\\\\\\\\ W0=[1,0,0,0]; W1 = [1, q-1, 0, 0]; W2 = [1, q-1, q^2 - q, 0]; W3 = ors; M1 = matrix(4, 4); M2 = matrix(4, 4); for(i=1,4,M1[1,i]=W0[i]/ors[i]); for(i=1,4,M1[2,i]=W1[i]/ors[i]); for(i=1,4,M1[3,i]=W2[i]/ors[i]); for(i=1,4,M1[4,i]=W3[i]/ors[i]); for(i=1,4,M2[1,i]= W3[i]/ors[i]); for(i=1,4,M2[2,i]=q * W2[i]/ors[i]); for(i=1,4,M2[3,i]=q^2 * W1[i]/ors[i]); for(i=1,4,M2[4,i]=q^3 * W0[i]/ors[i]); M = (M1^-1 * M2)~; \\ Note: this is really q^3 times the M of Theorem 12 print(M); \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\ Check that M satisfy Lemma 6 \\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ T=ORS*M; TBZ=T-T~; { if(TBZ==matrix(4,4), print(" -- M is symmetric in the sense of Lemma 6"), print(" -- M is NOT symmetric in the sense of Lemma 6") ); } { if(M*M==q^3*matid(4), print(" -- M^2 is the scalar matrix"), print(" -- M^2 is NOT the scalar matrix") ); } \\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\ Compute some Fourier transforms \\\\\\\\\\\\\\\\\\\\\\\\\\\\ sing=[1,1,0,0]; quad=[0,0,1,-1]; print("* Fourier transform of singular sets:"); print(sing*M~); print("* Fourier transform of the quadratic character:"); print(quad*M~);