> M:=ModularSymbols(37,2,+1); > D:=Decomposition(M); > Print(D); Modular symbols factors: 37k2A: dim = 1 cuspidal 37k2B: dim = 1 cuspidal 37k2C: dim = 1 eisenstein > E:=EllipticCurve(Factor(D,1)); WARNING: Not finding enough symbols! Switching to slow method. WARNING: Not finding enough symbols! Could not find enough invariant symbols. Need a better algorithm. > // need to work in the full space, not just the +1 quotient. > // dumb error message above (noted). > M:=ModularSymbols(37,2); > D:=Decomposition(M); > Print(D); Modular symbols factors: 37k2A: dim = 2 cuspidal 37k2B: dim = 2 cuspidal 37k2C: dim = 1 eisenstein > E:=EllipticCurve(Factor(D,1)); > E; Elliptic Curve defined by y^2 = x^3 - 1296*x + 11664 over Rational Field > Conductor(E); 37 > TamagawaNumber(E,37); // using the elliptic curve 1 > ArithmeticTamagawa(Factor(D,1)); // c_p using method of graphs 1 > GeometricTamagawa(Factor(D,1)); // #Phi(Fpbar) 1 > RealTamagawa(Factor(D,1)); // number of real components 2 > LRatio2(Factor(D,1)); // L(1)/Omega 0 > A:=Factor(D,1); // name the factor A. > LeadingCoefficient(A,1); // leading coeff. of L-series at 1 (L'(A,1)) 0.305999773800085290044094075725 1 > //^----- the rank is 1. > // this was computed using a port of your code. > LeadingCoefficient(A,1,150); // more terms of q-expansion 0.305999773800085290044094075725 1 > // but no better precision :) > ModularDegree(A); 4 > // this is the square of the usual mod deg, as it > // works for factors of any weight, and when the > // weight is > 2 the degree of the canonical map > // need not be a square. > PeriodLattice(A,97); [ (-2.99345695254283493281934233592 + 2.451390462297517938738352598020*i), (2.99345695254283493281934233592) ] > B:=Factor(D,2); > PeriodLattice(A,97); [ (-2.99345695254283493281934233592 + 2.451390462297517938738352598020*i), (2.99345695254283493281934233592) ] > LRatio2(B,1); 1/3 > Sha(B); warning: currently there is a bug -- off by powers of 2. 1 > M:=ModularSymbols(210,2,+1); > D:=Decomposition(M); > Print(D); // this gives only the decomposition of the new subspace. Modular symbols factors: 210k2A: dim = 1 cuspidal 210k2B: dim = 1 cuspidal 210k2C: dim = 1 cuspidal 210k2D: dim = 1 cuspidal 210k2E: dim = 1 cuspidal > Dold := OldDecomposition(M); // get old forms as well > Print(Dold); Modular symbols factors: 210k2A: dim = 2 cuspidal (old: 105A) 210k2B: dim = 4 cuspidal (old: 105B) 210k2C: dim = 2 cuspidal (old: 70A) 210k2D: dim = 2 cuspidal (old: 42A) 210k2E: dim = 4 cuspidal (old: 35A) 210k2F: dim = 8 cuspidal (old: 35B) 210k2G: dim = 2 cuspidal (old: 30A) 210k2H: dim = 4 cuspidal (old: 21A) 210k2I: dim = 4 cuspidal (old: 15A) 210k2J: dim = 4 cuspidal (old: 14A) 210k2K: dim = 1 eisenstein (old: 7A) 210k2L: dim = 1 eisenstein (old: 5A) 210k2M: dim = 1 eisenstein (old: 3A) 210k2N: dim = 1 eisenstein (old: 2A) > Dfull := FullDecomposition(M); // both new and old > Print(Dfull); Modular symbols factors: 210k2A: dim = 1 cuspidal 210k2B: dim = 1 cuspidal 210k2C: dim = 1 cuspidal 210k2D: dim = 1 cuspidal 210k2E: dim = 1 cuspidal 210k2F: dim = 2 cuspidal (old: 105A) 210k2G: dim = 4 cuspidal (old: 105B) 210k2H: dim = 2 cuspidal (old: 70A) 210k2I: dim = 2 cuspidal (old: 42A) 210k2J: dim = 4 cuspidal (old: 35A) 210k2K: dim = 8 cuspidal (old: 35B) 210k2L: dim = 2 cuspidal (old: 30A) 210k2M: dim = 4 cuspidal (old: 21A) 210k2N: dim = 4 cuspidal (old: 15A) 210k2O: dim = 4 cuspidal (old: 14A) 210k2P: dim = 1 eisenstein (old: 7A) 210k2Q: dim = 1 eisenstein (old: 5A) 210k2R: dim = 1 eisenstein (old: 3A) 210k2S: dim = 1 eisenstein (old: 2A) > // The labeling of the factors in the output of Dold above is dumb... oops. > A:=Factor(Dfull,"A"); > A:=Factor(Dfull,1); // these are equivalent > ModularDegree(A); // only up to a power of 2. 8 > // my ordering at level 210 apparently is > // different than yours, as I have no special > // code for the exceptional levels. > qEigenform(A,23); q - q^2 - q^3 + q^4 - q^5 + q^6 - q^7 - q^8 + q^9 + q^10 - 4*q^11 - q^12 - 2*q^13 + q^14 + q^15 + q^16 - 6*q^17 - q^18 - q^20 + q^21 + 4*q^22 - 8*q^23 > // This is your "210D". > WqOn(A,2); [1] > WqOn(A,3); [1] > WqOn(A,5); [1] > WqOn(A,7); [1] > // I will probably change from WqOn to "AtkinLehner" to be more > // consistent with the Magma philosophy of descriptive names. > B:=Factor(Dfull,2); > IntersectFactors(A,B); Vector space of degree 56, dimension 0 over Rational Field > // they are different as subspaces of homology. > AbelianIntersection(A,B); // intersect the abelian varieties // again, only believe the part away from 2 since we // are working in the +1 quotient. [] // this is an H_1(X_0(N),Z) computation. > eps:=DirichletCharacter(37,[4]); // degree four character on (Z/37Z)^* > Evaluate(eps,-1); // odd character. -1 > [Evaluate(eps,i) : i in [1..36]]; [ 1, zeta, -1, -1, -zeta, -zeta, 1, -zeta, 1, 1, -1, 1, -zeta, zeta, zeta, 1, -zeta, zeta, -zeta, zeta, -1, -zeta, -zeta, zeta, -1, 1, -1, -1, zeta, -1, zeta, zeta, 1, 1, -zeta, -1 ] > M:=ModularSymbols(eps, 3) ; // weight 3, "M_3(Gamma_1(37), eps)" > Dimension(M); 14 > // these are modular symbols so the > // dimension is bigger > D:=Decomposition(M); > Print(D); Modular symbols factors: 37k3A: dim =12 cuspidal 37k3B: dim = 1 eisenstein 37k3C: dim = 1 eisenstein > A:=Factor(D,1); > qEigenform(A,13); q + a*q^2 + (-1/4*zeta*a^4 + (-1/4*zeta - 1/4)*a^3 + 11/4*a^2 + (-5/4*zeta + 5/4)*a + 3*zeta)*q^3 + (a^2 - 4*zeta)*q^4 + (1/4*zeta*a^5 + (1/2*zeta + 1/2)*a^4 - 13/4*a^3 + (5*zeta - 5)*a^2 - 17/2*zeta*a - 6*zeta - 6)*q^5 + (-1/4*zeta*a^5 + (-1/4*zeta - 1/4)*a^4 + 11/4*a^3 + (-5/4*zeta + 5/4)*a^2 + 3*zeta*a)*q^6 + ((-1/4*zeta - 1/4)*a^5 - a^4 + (-13/4*zeta + 13/4)*a^3 - 11*zeta*a^2 + (13/2*zeta + 13/2)*a + 15)*q^7 + (a^3 - 8*zeta*a)*q^8 + ((1/4*zeta + 1/4)*a^5 + 3/4*a^4 + (7/2*zeta - 7/2)*a^3 + 25/4*zeta*a^2 + (-35/4*zeta - 35/4)*a - 6)*q^9 + ((-1/4*zeta - 1/4)*a^5 - 3/4*a^4 + (-7/2*zeta + 7/2)*a^3 - 29/4*zeta*a^2 + (35/4*zeta + 35/4)*a + 6)*q^10 + (1/4*zeta*a^4 + (5/4*zeta + 5/4)*a^3 - 7/4*a^2 + (45/4*zeta - 45/4)*a - 3*zeta)*q^11 + ((1/2*zeta + 1/2)*a^5 - 3/4*a^4 + (33/4*zeta - 33/4)*a^3 - 37/4*zeta*a^2 + (-79/4*zeta - 79/4)*a + 6)*q^12 + (1/4*zeta*a^5 + (1/2*zeta + 1/2)*a^4 - 17/4*a^3 + (7*zeta - 7)*a^2 - 33/2*zeta*a - 14*zeta - 14)*q^13 > ModularDegree(A); 1 // no congruences > CharacteristicPolynomial(Tn(M,2)); x^14 + (-zeta + 1)*x^13 + 45*zeta*x^12 + (16*zeta + 16)*x^11 - 948*x^10 + (142*zeta - 142)*x^9 - 10378*zeta*x^8 + (-2140*zeta - 2140)*x^7 + 55737*x^6 + (-17961*zeta + 17961)*x^5 + 126521*zeta*x^4 + (50892*zeta + 50892)*x^3 - 94690*x^2 + (45264*zeta - 45264)*x + 9792*zeta > Factorization($1); [ , , ] > // We can also work in characteristic p. > M:=ModularSymbols(1091, 2, 0, 2003); // N=1091, k=2, 0=full space (not +1 or -1) quotient, // p=2003 (a random prime) > D:=Decomposition(M); // problem -- this could lead to trouble if // there are too many congruences since one need not // have multiplicity one in char. p [Interrupted] // it's taking too long... > D:=SemiDecomposition(M); > // semi-decomp just uses a few hecke operators > // to break up the space. > Print(D); Modular symbols factors: (The isogeny classes have not been labeled.) // but doesn't label isogeny // classes Can't determine if A is cuspidal. // or determine cusp forms // which it should... > Dimension(D); [ 2, 1, 4, 6, 6, 8, 14, 52, 90 ] // dimensions of the factors in the homology > A:=D[9]; > qEigenform(A,7); Can't determine if A is cuspidal. > A`iscusp:=true; // fake it (noted). > qEigenform(A,7); q + a*q^2 + (326*a^44 + 1226*a^43 + 1393*a^42 + 1313*a^41 + 1148*a^40 + 1868*a^39 + 1706*a^38 + 58*a^37 + 613*a^36 + 1926*a^35 + 1847*a^34 + 1762*a^33 + 141*a^32 + 1734*a^31 + 1505*a^30 + 812*a^29 + 437*a^28 + 1273*a^27 + 1942*a^26 + 1129*a^25 + 455*a^24 + 704*a^23 + 156*a^22 + 489*a^21 + 1849*a^20 + 958*a^19 + 85*a^18 + 1322*a^17 + 142*a^16 + 1321*a^15 + 495*a^14 + 151*a^13 + 1903*a^12 + 751*a^11 + 1600*a^10 + 807*a^9 + 564*a^8 + 815*a^7 + 1812*a^6 + 212*a^5 + 1306*a^4 + 823*a^3 + 493*a^2 + 1223*a + 1459)*q^3 + (a^2 + 2001)*q^4 + (1544*a^44 + 44*a^43 + 1705*a^42 + 1797*a^41 + 1842*a^40 + 497*a^39 + 744*a^38 + 871*a^37 + 208*a^36 + 1387*a^35 + 1768*a^34 + 439*a^33 + 1859*a^32 + 1925*a^31 + 22*a^30 + 773*a^29 + 1829*a^28 + 1639*a^27 + 531*a^26 + 647*a^25 + 773*a^24 + 1757*a^23 + 90*a^22 + 764*a^21 + 23*a^20 + 1653*a^19 + 399*a^18 + 246*a^17 + 979*a^16 + 1573*a^15 + 123*a^14 + 1841*a^13 + 180*a^12 + 1749*a^11 + 1078*a^10 + 1833*a^9 + 1491*a^8 + 915*a^7 + 1861*a^6 + 1318*a^5 + 1357*a^4 + 1704*a^3 + 1073*a^2 + 872*a + 1816)*q^5 + (1529*a^44 + 542*a^43 + 1147*a^42 + 1104*a^41 + 1084*a^40 + 956*a^39 + 1039*a^38 + 122*a^37 + 1965*a^36 + 1914*a^35 + 370*a^34 + 781*a^33 + 408*a^32 + 1340*a^31 + 1544*a^30 + 1895*a^29 + 461*a^28 + 833*a^27 + 1509*a^26 + 1146*a^25 + 1110*a^24 + 566*a^23 + 1673*a^22 + 1478*a^21 + 239*a^20 + 319*a^19 + 997*a^18 + 1559*a^17 + 601*a^16 + 920*a^15 + 1865*a^14 + 873*a^13 + 800*a^12 + 1003*a^11 + 141*a^10 + 1878*a^9 + 713*a^8 + 200*a^7 + 1119*a^6 + 496*a^5 + 939*a^4 + 322*a^3 + 8*a^2 + 657*a + 1526)*q^6 + (1742*a^44 + 540*a^43 + 1059*a^42 + 1679*a^41 + 445*a^40 + 1966*a^39 + 1986*a^38 + 1930*a^37 + 454*a^36 + 1139*a^35 + 656*a^34 + 1404*a^33 + 1545*a^32 + 977*a^31 + 937*a^30 + 1607*a^29 + 1731*a^28 + 876*a^27 + 583*a^26 + 1769*a^25 + 1091*a^24 + 895*a^23 + 91*a^22 + 1560*a^21 + 548*a^20 + 1478*a^19 + 1289*a^18 + 1307*a^17 + 709*a^16 + 312*a^15 + 432*a^14 + 507*a^13 + 976*a^12 + 272*a^11 + 1995*a^10 + 801*a^9 + 438*a^8 + 1302*a^7 + 805*a^6 + 241*a^5 + 834*a^4 + 22*a^3 + 1407*a^2 + 47*a + 1670)*q^7 // There is a lot more which I haven't demonstrated.