Sharedwww / Tables / magma / READMEOpen in CoCalc
Author: William A. Stein
1   A WORK IN PROGRESS!!!!!!!!!
2
3Here are some examples:
4
5> M:=ModularSymbols(37,2,+1);
6> D:=Decomposition(M);
7> Print(D);
8Modular symbols factors:
9 37k2A:  dim = 1    cuspidal
10 37k2B:  dim = 1    cuspidal
11 37k2C:  dim = 1  eisenstein
12> E:=EllipticCurve(Factor(D,1));
13WARNING: Not finding enough symbols!
14Switching to slow method.
15WARNING: Not finding enough symbols!
16Could not find enough invariant symbols.
17Need a better algorithm.
18> // need to work in the full space, not just the +1 quotient.
19> // dumb error message above (noted).
20> M:=ModularSymbols(37,2);
21> D:=Decomposition(M);
22> Print(D);
23Modular symbols factors:
24 37k2A:  dim = 2    cuspidal
25 37k2B:  dim = 2    cuspidal
26 37k2C:  dim = 1  eisenstein
27> E:=EllipticCurve(Factor(D,1));
28> E;
29Elliptic Curve defined by y^2 = x^3 - 1296*x + 11664 over Rational Field
30> Conductor(E);
3137
32> TamagawaNumber(E,37);               // using the elliptic curve
331
34> ArithmeticTamagawa(Factor(D,1));    // c_p using method of graphs
351
36> GeometricTamagawa(Factor(D,1));     // #Phi(Fpbar)
371
38> RealTamagawa(Factor(D,1));          // number of real components
392
40> LRatio2(Factor(D,1));               // L(1)/Omega
410
42> A:=Factor(D,1);                     // name the factor A.
440.305999773800085290044094075725 1
45>                              //^----- the rank is 1.
46> // this was computed using a port of your code.
47> LeadingCoefficient(A,1,150);      // more terms of q-expansion
480.305999773800085290044094075725 1
49>                                   // but no better precision :)
50> ModularDegree(A);
514
52>                  // this is the square of the usual mod deg, as it
53>                  // works for factors of any weight, and when the
54>                  // weight is > 2 the degree of the canonical map
55>                  // need not be a square.
56
57> PeriodLattice(A,97);
58[
59    (-2.99345695254283493281934233592 + 2.451390462297517938738352598020*i),
60    (2.99345695254283493281934233592)
61]
62> B:=Factor(D,2);
63> PeriodLattice(A,97);
64[
65    (-2.99345695254283493281934233592 + 2.451390462297517938738352598020*i),
66    (2.99345695254283493281934233592)
67]
68> LRatio2(B,1);
691/3
70> Sha(B);
71warning: currently there is a bug -- off by powers of 2.
721
73
74
75> M:=ModularSymbols(210,2,+1);
76> D:=Decomposition(M);
77> Print(D);        // this gives only the decomposition of the new subspace.
78Modular symbols factors:
79210k2A:  dim = 1    cuspidal
80210k2B:  dim = 1    cuspidal
81210k2C:  dim = 1    cuspidal
82210k2D:  dim = 1    cuspidal
83210k2E:  dim = 1    cuspidal
84> Dold := OldDecomposition(M);    // get old forms as well
85> Print(Dold);
86Modular symbols factors:
87210k2A:  dim = 2    cuspidal  (old: 105A)
88210k2B:  dim = 4    cuspidal  (old: 105B)
89210k2C:  dim = 2    cuspidal  (old:  70A)
90210k2D:  dim = 2    cuspidal  (old:  42A)
91210k2E:  dim = 4    cuspidal  (old:  35A)
92210k2F:  dim = 8    cuspidal  (old:  35B)
93210k2G:  dim = 2    cuspidal  (old:  30A)
94210k2H:  dim = 4    cuspidal  (old:  21A)
95210k2I:  dim = 4    cuspidal  (old:  15A)
96210k2J:  dim = 4    cuspidal  (old:  14A)
97210k2K:  dim = 1  eisenstein  (old:   7A)
98210k2L:  dim = 1  eisenstein  (old:   5A)
99210k2M:  dim = 1  eisenstein  (old:   3A)
100210k2N:  dim = 1  eisenstein  (old:   2A)
101> Dfull := FullDecomposition(M);   // both new and old
102> Print(Dfull);
103Modular symbols factors:
104210k2A:  dim = 1    cuspidal
105210k2B:  dim = 1    cuspidal
106210k2C:  dim = 1    cuspidal
107210k2D:  dim = 1    cuspidal
108210k2E:  dim = 1    cuspidal
109210k2F:  dim = 2    cuspidal  (old: 105A)
110210k2G:  dim = 4    cuspidal  (old: 105B)
111210k2H:  dim = 2    cuspidal  (old:  70A)
112210k2I:  dim = 2    cuspidal  (old:  42A)
113210k2J:  dim = 4    cuspidal  (old:  35A)
114210k2K:  dim = 8    cuspidal  (old:  35B)
115210k2L:  dim = 2    cuspidal  (old:  30A)
116210k2M:  dim = 4    cuspidal  (old:  21A)
117210k2N:  dim = 4    cuspidal  (old:  15A)
118210k2O:  dim = 4    cuspidal  (old:  14A)
119210k2P:  dim = 1  eisenstein  (old:   7A)
120210k2Q:  dim = 1  eisenstein  (old:   5A)
121210k2R:  dim = 1  eisenstein  (old:   3A)
122210k2S:  dim = 1  eisenstein  (old:   2A)
123> // The labeling of the factors in the output of Dold above is dumb... oops.
124> A:=Factor(Dfull,"A");
125> A:=Factor(Dfull,1);      // these are equivalent
126> ModularDegree(A);        // only up to a power of 2.
1278
128>                          // my ordering at level 210 apparently is
129>                          // different than yours, as I have no special
130>                          // code for the exceptional levels.
131> qEigenform(A,23);
132q - q^2 - q^3 + q^4 - q^5 + q^6 - q^7 - q^8 + q^9 + q^10 - 4*q^11 - q^12 -
133    2*q^13 + q^14 + q^15 + q^16 - 6*q^17 - q^18 - q^20 + q^21 + 4*q^22 - 8*q^23
134> // This is your "210D".
135> WqOn(A,2);
136[1]
137> WqOn(A,3);
138[1]
139> WqOn(A,5);
140[1]
141> WqOn(A,7);
142[1]
143> // I will probably change from WqOn to "AtkinLehner" to be more
144> // consistent with the Magma philosophy of descriptive names.
145> B:=Factor(Dfull,2);
146> IntersectFactors(A,B);
147Vector space of degree 56, dimension 0 over Rational Field
148> // they are different as subspaces of homology.
149> AbelianIntersection(A,B);  // intersect the abelian varieties
150             // again, only believe the part away from 2 since we
151             // are working in the +1 quotient.
152[]           // this is an H_1(X_0(N),Z) computation.
153
154> eps:=DirichletCharacter(37,[4]);  // degree four character on (Z/37Z)^*
155> Evaluate(eps,-1);                 // odd character.
156-1
157> [Evaluate(eps,i) : i in [1..36]];
158[ 1, zeta, -1, -1, -zeta, -zeta, 1, -zeta, 1, 1, -1, 1, -zeta, zeta, zeta, 1,
159    -zeta, zeta, -zeta, zeta, -1, -zeta, -zeta, zeta, -1, 1, -1, -1, zeta, -1,
160    zeta, zeta, 1, 1, -zeta, -1 ]
161> M:=ModularSymbols(eps, 3) ;  // weight 3, "M_3(Gamma_1(37), eps)"
162> Dimension(M);
16314
164>                              // these are modular symbols so the
165>                              // dimension is bigger
166> D:=Decomposition(M);
167> Print(D);
168Modular symbols factors:
169 37k3A:  dim =12    cuspidal
170 37k3B:  dim = 1  eisenstein
171 37k3C:  dim = 1  eisenstein
172> A:=Factor(D,1);
173> qEigenform(A,13);
174q + a*q^2 + (-1/4*zeta*a^4 + (-1/4*zeta - 1/4)*a^3 + 11/4*a^2 + (-5/4*zeta +
175    5/4)*a + 3*zeta)*q^3 + (a^2 - 4*zeta)*q^4 + (1/4*zeta*a^5 + (1/2*zeta +
176    1/2)*a^4 - 13/4*a^3 + (5*zeta - 5)*a^2 - 17/2*zeta*a - 6*zeta - 6)*q^5 +
177    (-1/4*zeta*a^5 + (-1/4*zeta - 1/4)*a^4 + 11/4*a^3 + (-5/4*zeta + 5/4)*a^2 +
178    3*zeta*a)*q^6 + ((-1/4*zeta - 1/4)*a^5 - a^4 + (-13/4*zeta + 13/4)*a^3 -
179    11*zeta*a^2 + (13/2*zeta + 13/2)*a + 15)*q^7 + (a^3 - 8*zeta*a)*q^8 +
180    ((1/4*zeta + 1/4)*a^5 + 3/4*a^4 + (7/2*zeta - 7/2)*a^3 + 25/4*zeta*a^2 +
181    (-35/4*zeta - 35/4)*a - 6)*q^9 + ((-1/4*zeta - 1/4)*a^5 - 3/4*a^4 +
182    (-7/2*zeta + 7/2)*a^3 - 29/4*zeta*a^2 + (35/4*zeta + 35/4)*a + 6)*q^10 +
183    (1/4*zeta*a^4 + (5/4*zeta + 5/4)*a^3 - 7/4*a^2 + (45/4*zeta - 45/4)*a -
184    3*zeta)*q^11 + ((1/2*zeta + 1/2)*a^5 - 3/4*a^4 + (33/4*zeta - 33/4)*a^3 -
185    37/4*zeta*a^2 + (-79/4*zeta - 79/4)*a + 6)*q^12 + (1/4*zeta*a^5 + (1/2*zeta
186    + 1/2)*a^4 - 17/4*a^3 + (7*zeta - 7)*a^2 - 33/2*zeta*a - 14*zeta - 14)*q^13
187> ModularDegree(A);
1881                          // no congruences
189> CharacteristicPolynomial(Tn(M,2));
190x^14 + (-zeta + 1)*x^13 + 45*zeta*x^12 + (16*zeta + 16)*x^11 - 948*x^10 +
191    (142*zeta - 142)*x^9 - 10378*zeta*x^8 + (-2140*zeta - 2140)*x^7 + 55737*x^6
192    + (-17961*zeta + 17961)*x^5 + 126521*zeta*x^4 + (50892*zeta + 50892)*x^3 -
193    94690*x^2 + (45264*zeta - 45264)*x + 9792*zeta
194> Factorization($1); 195[ 196 <x + zeta - 4, 1>, 197 <x + 4*zeta - 1, 1>, 198 <x^6 + (-3*zeta + 3)*x^5 + 10*zeta*x^4 + (34*zeta + 34)*x^3 - 5*x^2 + 199 (59*zeta - 59)*x + 24*zeta, 2> 200] 201> // We can also work in characteristic p. 202> M:=ModularSymbols(1091, 2, 0, 2003); 203 // N=1091, k=2, 0=full space (not +1 or -1) quotient, 204 // p=2003 (a random prime) 205> D:=Decomposition(M); // problem -- this could lead to trouble if 206 // there are too many congruences since one need not 207 // have multiplicity one in char. p 208 209[Interrupted] // it's taking too long... 210> D:=SemiDecomposition(M); 211> // semi-decomp just uses a few hecke operators 212> // to break up the space. 213> Print(D); 214Modular symbols factors: 215(The isogeny classes have not been labeled.) // but doesn't label isogeny 216 // classes 217Can't determine if A is cuspidal. // or determine cusp forms 218 // which it should... 219> Dimension(D); 220[ 2, 1, 4, 6, 6, 8, 14, 52, 90 ] // dimensions of the factors in the homology 221> A:=D[9]; 222> qEigenform(A,7); 223Can't determine if A is cuspidal. 224> Aiscusp:=true; // fake it (noted). 225> qEigenform(A,7); 226q + a*q^2 + (326*a^44 + 1226*a^43 + 1393*a^42 + 1313*a^41 + 1148*a^40 + 227 1868*a^39 + 1706*a^38 + 58*a^37 + 613*a^36 + 1926*a^35 + 1847*a^34 + 228 1762*a^33 + 141*a^32 + 1734*a^31 + 1505*a^30 + 812*a^29 + 437*a^28 + 229 1273*a^27 + 1942*a^26 + 1129*a^25 + 455*a^24 + 704*a^23 + 156*a^22 + 230 489*a^21 + 1849*a^20 + 958*a^19 + 85*a^18 + 1322*a^17 + 142*a^16 + 1321*a^15 231 + 495*a^14 + 151*a^13 + 1903*a^12 + 751*a^11 + 1600*a^10 + 807*a^9 + 564*a^8 232 + 815*a^7 + 1812*a^6 + 212*a^5 + 1306*a^4 + 823*a^3 + 493*a^2 + 1223*a + 233 1459)*q^3 + (a^2 + 2001)*q^4 + (1544*a^44 + 44*a^43 + 1705*a^42 + 1797*a^41 234 + 1842*a^40 + 497*a^39 + 744*a^38 + 871*a^37 + 208*a^36 + 1387*a^35 + 235 1768*a^34 + 439*a^33 + 1859*a^32 + 1925*a^31 + 22*a^30 + 773*a^29 + 236 1829*a^28 + 1639*a^27 + 531*a^26 + 647*a^25 + 773*a^24 + 1757*a^23 + 90*a^22 237 + 764*a^21 + 23*a^20 + 1653*a^19 + 399*a^18 + 246*a^17 + 979*a^16 + 238 1573*a^15 + 123*a^14 + 1841*a^13 + 180*a^12 + 1749*a^11 + 1078*a^10 + 239 1833*a^9 + 1491*a^8 + 915*a^7 + 1861*a^6 + 1318*a^5 + 1357*a^4 + 1704*a^3 + 240 1073*a^2 + 872*a + 1816)*q^5 + (1529*a^44 + 542*a^43 + 1147*a^42 + 1104*a^41 241 + 1084*a^40 + 956*a^39 + 1039*a^38 + 122*a^37 + 1965*a^36 + 1914*a^35 + 242 370*a^34 + 781*a^33 + 408*a^32 + 1340*a^31 + 1544*a^30 + 1895*a^29 + 243 461*a^28 + 833*a^27 + 1509*a^26 + 1146*a^25 + 1110*a^24 + 566*a^23 + 244 1673*a^22 + 1478*a^21 + 239*a^20 + 319*a^19 + 997*a^18 + 1559*a^17 + 245 601*a^16 + 920*a^15 + 1865*a^14 + 873*a^13 + 800*a^12 + 1003*a^11 + 141*a^10 246 + 1878*a^9 + 713*a^8 + 200*a^7 + 1119*a^6 + 496*a^5 + 939*a^4 + 322*a^3 + 247 8*a^2 + 657*a + 1526)*q^6 + (1742*a^44 + 540*a^43 + 1059*a^42 + 1679*a^41 + 248 445*a^40 + 1966*a^39 + 1986*a^38 + 1930*a^37 + 454*a^36 + 1139*a^35 + 249 656*a^34 + 1404*a^33 + 1545*a^32 + 977*a^31 + 937*a^30 + 1607*a^29 + 250 1731*a^28 + 876*a^27 + 583*a^26 + 1769*a^25 + 1091*a^24 + 895*a^23 + 91*a^22 251 + 1560*a^21 + 548*a^20 + 1478*a^19 + 1289*a^18 + 1307*a^17 + 709*a^16 + 252 312*a^15 + 432*a^14 + 507*a^13 + 976*a^12 + 272*a^11 + 1995*a^10 + 801*a^9 + 253 438*a^8 + 1302*a^7 + 805*a^6 + 241*a^5 + 834*a^4 + 22*a^3 + 1407*a^2 + 47*a 254 + 1670)*q^7 255 256 257// There is a lot more which I haven't demonstrated. 258 259 260 261// The following is from a slightly older version and illustrates 262// more of the analytic algorithms. 263 264> E:=ModularFactor("102A"); 265Creating M_2(Gamma_1(102),eps;F_0), 0.931 seconds. 266Sorting and labeling factors... 267> A:= EllipticCurve(E); 268c4 = 129.96026683870632647605108639720 + 0.E-26*i 269c6 = -967.449473693141351229526205435086 + 0.E-26*i 270Searching... 271Recomputing period integrals to higher precision 272c4 = 121.50014254162008399557491210672 + 0.E-27*i 273c6 = -852.192647066222708349523846679836 + 0.E-26*i 274Candidate curve [121,-845]: 275By Shimura-Taniyama, this is in the isogeny class. 276> MinimalModel(A); 277Elliptic Curve defined by y^2 + x*y = x^3 + x^2 - 2*x over Rational Field 278> qEigenform(E,17); 279q - q^2 - q^3 + q^4 - 4*q^5 + q^6 - 2*q^7 - q^8 + q^9 + 4*q^10 - q^12 - 6*q^13 + 2*q^14 + 4*q^15 + q^16 - q^17 280> RealVolume(E); 281(Using at least 89 terms of q-expansions.) 2824.72527553048410921322135656648 283> M:=ModSymParent(E); 284> Print(M); 285Full Modular symbols space of dimension 37, level 102 and weight 2 286> Print(Decomposition(M)); 287Decomposition of space of modular symbols. 288Modular symbols factor of dimension 1, level 102, weight 2 (102A) 289Modular symbols factor of dimension 1, level 102, weight 2 (102B) 290Modular symbols factor of dimension 1, level 102, weight 2 (102C) 291Modular symbols factor of dimension 7, level 0, weight 2 (0?) // this output 292Modular symbols factor of dimension 2, level 0, weight 2 (0?) // format is 293Modular symbols factor of dimension 2, level 0, weight 2 (0?) // stupid 294Modular symbols factor of dimension 4, level 0, weight 2 (0?) // and not 295Modular symbols factor of dimension 4, level 0, weight 2 (0?) // done yet! 296 297[was]# magma 298Magma V2.5-1 Tue Aug 10 1999 02:04:49 on yomomma [Seed = 177387000] 299Type ? for help. Type <Ctrl>-D to quit. 300 301> M:=ModularSymbols(11,2); // M_2(Gamma_0(11)) 302Creating M_2(Gamma_1(11),eps;F_0), 0.01 seconds. 303> D:=Decomposition(M); // find eigenvectors 304> Print(D); 305Decomposition of space of modular symbols. 306Sorting and labeling factors... 307Modular symbols factor of dimension 1, level 11, weight 2 (11A) 308Modular symbols factor of dimension 1, level 11, weight 2 (11B) 309> E:=Factor(D,1); // first one 310> Print(E); 311Modular symbols factor of dimension 1, level 11, weight 2 (11A) 312> qEigenform(E,13); // q-expansion of the modular eigenform 313q - 2*q^2 - q^3 + 2*q^4 + q^5 + 2*q^6 - 2*q^7 - 2*q^9 - 2*q^10 + q^11 - 2*q^12 + 314 4*q^13 315 316> RealTamagawa(E); // c_infinity 3171 318> ImaginaryTamagawa(E); // c_infinity 319(Warning: Imaginary comp group formula not yet proved.) 3201 321> GeometricTamagawa(E,11); // component group at 11 3225 323> Tn(M,2); // hecke operator T2 324[-2 0 0] 325[ 0 -2 0] 326[ 0 1 3] 327> fcp(Tn(M,2)); // factored characteristic polynomial 328[ 329 <$.1 - 3, 1>,                // the "$.1" is the indeterminate... 330 <$.1 + 2, 2>
331]
3321
333> Mk := ModularSymbols;         // now we can use the abbrev. "Mk"!
334> M := Mk(37,2);
335Creating M_2(Gamma_1(37),eps;F_0),  0.08 seconds.
336> D:=Decomposition(M); Print(D);  // two statements on a line
337Decomposition of space of modular symbols.
338Sorting and labeling factors...
339Modular symbols factor of dimension 1, level 37, weight 2 (37A)
340Modular symbols factor of dimension 1, level 37, weight 2 (37B)
341Modular symbols factor of dimension 1, level 37, weight 2 (37C)
342> E:=Factor(D,"37A");               // the curve 37A
343> Print(E);
344Modular symbols factor of dimension 1, level 37, weight 2 (37A)
345> LRatio(E);                         // L(E,1)/Omega
346warning: currently there is a bug -- off by powers of 2.   <--- yep.
3470
348> // The L-function vanishes!
350(Using at least 53 terms of q-expansions.)
3510.305999773800085290044094067439 1
352>                             // ^----- the rank is one.
353> F:=Factor(D,"37B");               // the curve 37B
354> LAnalytic(F,1);                   // L(F,1)
355(Using at least 53 terms of q-expansions.)
3560.72567978570714430075069947199
357> a := \$1;
358> b := RealTamagawa(F);
359> a/b;                             // L(1)/Omega
3600.362839892853572150375349735997
361> LRatio(F);
362warning: currently there is a bug -- off by powers of 2.
3631/3
364> a := LAnalytic(F,1,97);                   // L(F,1)
365> b := RealVolume(F,97);
366> a/b;
3670.333333333333333333333333333329
368> // WOW -- the formula for the ratio L(1)/Omega is correct!!
369> // Note, the two computations are completely independent.
370
371> // Try it in another case!
372> A:=ModularFactor("9k4A");        // our favourite
373Creating M_4(Gamma_1(9),eps;F_0),  0.15 seconds.
374Sorting and labeling factors...
375
376> // Notice how I just made the modular form thingy directly
377> // without having to make the ModularSymbols and then Decomposition.
378> // If you know the label you can just give it as input!!
379
380> Print(A);
381Modular symbols factor of dimension 1, level 9, weight 4 (9A)
382
383> f:=qEigenform(A,17);
384> f;
385q - 8*q^4 + 20*q^7 - 70*q^13
386> // that's the q-expansion... let's get more terms.
387
388> time f:=qEigenform(A,150);
389Time: 13.429
390> // that took a LONG time.  However, it will be easy for me to add
391> // a function so that you can FAKE it and give your own q-expansion.
392> // In fact, you could already do this by changing the qexp field
393> // of A directly:
394> Aqexp;
395q - 8*q^4 + 20*q^7 - 70*q^13 + 64*q^16 + 56*q^19 - 125*q^25 - 160*q^28 +
396    308*q^31 + 110*q^37 - 520*q^43 + 57*q^49 + 560*q^52 + 182*q^61 - 512*q^64 -
397    880*q^67 + 1190*q^73 - 448*q^76 + 884*q^79 - 1400*q^91 - 1330*q^97 +
398    1000*q^100 + 1820*q^103 - 646*q^109 + 1280*q^112 - 1331*q^121 - 2464*q^124 +
399    380*q^127 + 1120*q^133 + 2576*q^139 - 880*q^148 + 1748*q^151
400
401> R<q> := Parent(Aqexp);     // Create the ring R = Q[[q]].
402> // You could do something like the following -- if you remember the
403> // correct eta product.  I'll make up something ridiculous.
404> Aqexp := R!(DedekindEta(q^3+O(q^200)))^8;
405> Aqexp;
406q - 8*q^4 + 20*q^7 - 70*q^13 + 64*q^16 + 56*q^19 - 125*q^25 - 160*q^28 +
407    308*q^31 + 110*q^37 - 520*q^43 + 57*q^49 + 560*q^52 + 182*q^61 - 512*q^64 -
408    880*q^67 + 1190*q^73 - 448*q^76 + 884*q^79 - 1400*q^91 - 1330*q^97 +
409    1000*q^100 + 1820*q^103 - 646*q^109 + 1280*q^112 - 1331*q^121 - 2464*q^124 +
410    380*q^127 + 1120*q^133 + 2576*q^139 - 880*q^148 + 1748*q^151 - 3850*q^157 -
411    3400*q^163 + 2703*q^169 + 4160*q^172 - 2500*q^175 + 3458*q^181 - 1150*q^193
412    - 456*q^196 + O(q^198)
413
414> // Now, as far as the computer is concerned, we know the q-expansion
415> // to 198 terms!!   This will be hardcoded into hecke as soon
416> // as you tell me all such eta products... :)
417> PeriodLattice(A);
418(Using at least 50 terms of q-expansions.)
419[
420    (0.62848661625330610132711430172 + 0.362856917075923304831351880497*i),
421    (-0.72571383415184660966270376099*i)
422]
423
424> B:=ModularFactor("9k4A");   // make another one, to test with less terms
425Creating M_4(Gamma_1(9),eps;F_0),  0.15 seconds.
426Sorting and labeling factors...
427> PeriodLattice(B,40);
428[
429    (0.62848661625330610144167996255 + 0.362856917075923305289393529935*i),
430    (-0.72571383415184661057878705987*i)
431]
432> // They are pretty close
433> Aqexp := R!(DedekindEta(q^3+O(q^400)))^8;
434> time Aqexp := R!(DedekindEta(q^3+O(q^500)))^8;
435Time: 0.720
436> PeriodLattice(A);
437(Using at least 50 terms of q-expansions.)
438[
439    (0.62848661625330610132711430172 + 0.362856917075923304831351880497*i),
440    (-0.72571383415184660966270376099*i)
441]
442> PeriodLattice(A,500);
443
444[Interrupted]
445> qEigenform(A);
446q - 8*q^4 + 20*q^7 - 70*q^13 + 64*q^16 + 56*q^19 - 125*q^25 - 160*q^28 +
447    308*q^31 + 110*q^37 - 520*q^43 + 57*q^49 + 560*q^52 + 182*q^61 - 512*q^64 -
448    880*q^67 + 1190*q^73 - 448*q^76 + 884*q^79 - 1400*q^91 - 1330*q^97 +
449    1000*q^100 + 1820*q^103 - 646*q^109 + 1280*q^112 - 1331*q^121 - 2464*q^124 +
450    380*q^127 + 1120*q^133 + 2576*q^139 - 880*q^148 + 1748*q^151 - 3850*q^157 -
451    3400*q^163 + 2703*q^169 + 4160*q^172 - 2500*q^175 + 3458*q^181 - 1150*q^193
452    - 456*q^196 - 5236*q^199 - 4480*q^208 + 6032*q^211 + 6160*q^217 - 3220*q^223
453    + 4466*q^229 - 7378*q^241 - 1456*q^244 - 3920*q^247 + 4096*q^256 +
454    2200*q^259 + 7040*q^268 + 812*q^271 - 4030*q^277 + 5600*q^283 - 4913*q^289 -
455    9520*q^292 - 10400*q^301 + 3584*q^304 + 10640*q^307 + 10010*q^313 -
456    7072*q^316 + 8750*q^325 + 992*q^331 - 4930*q^337 - 5720*q^343 - 11914*q^349
457    - 3723*q^361 + 11200*q^364 + 4340*q^367 + 12350*q^373 - 8584*q^379 +
458    10640*q^388 + 1190*q^397 - 8000*q^400 - 21560*q^403 + 8246*q^409 -
459    14560*q^412 + 17138*q^421 + 3640*q^427 - 2590*q^433 + 5168*q^436 +
460    14924*q^439 - 10240*q^448 + 12710*q^457 - 19780*q^463 - 17600*q^469 -
461    7000*q^475 - 7700*q^481 + 10648*q^484 + 20900*q^487 + 19712*q^496 + O(q^498)
462> PeriodLattice(A,300);
463[
464    (0.62848661625330610132711430172 + 0.362856917075923304831351880497*i),
465    (-0.72571383415184660966270376099*i)
466]
467> PeriodLattice(B);
468(Using at least 50 terms of q-expansions.)
469[
470    (0.62848661625330610132710197841 + 0.362856917075923304831302606547*i),
471    (-0.72571383415184660966260521309*i)
472]
473> PeriodLattice(A,400);
474[
475    (0.62848661625330610132711430172 + 0.362856917075923304831351880497*i),
476    (-0.72571383415184660966270376099*i)
477]
478> EllipticInvariants(A);        // compute w1, w2, c4, c6, and j.
479(Using at least 50 terms of q-expansions.)
480[ 0.62848661625330610132711430172 + 0.362856917075923304831351880497*i,
481-0.72571383415184660966270376099*i, -1.4609841411 E-23 +  0.E-32*i,
482-1213700.73916098933260787190395729452 +  0.E-22*i, 3.6581121003 E-78 +
4830.E-86*i ]
484> LAnalytic(A,1);
485(Using at least 50 terms of q-expansions.)
4860.418991077502204067551409534481
487> LAnalytic(A,2);
488(Using at least 50 terms of q-expansions.)
489-0.75996574999330763591362274757 +  0.E-29*i
490> LAnalytic(A,3);
491(Using at least 50 terms of q-expansions.)
4920.91895026278509462584334777017
493> LAnalytic(A,1)/RealVolume(A);
494(Using at least 50 terms of q-expansions.)
495(Using at least 50 terms of q-expansions.)
4962.0000000000000000000000000000 +  0.E-28*i
497> LRatio2(A,1);               // use LRatio2 (proven algorithm)
4982
499> // YEAH!
500> ClassicalPeriod(A,0);        // this is the "r_0(f)" of Zagier, Manin, etc.
501(Using at least 50 terms of q-expansions.)
5020.066684501095875196496744176544*i
503> ClassicalPeriod(A,2)/ClassicalPeriod(A,0);   // this must be rational
504(Using at least 50 terms of q-expansions.)
505(Using at least 50 terms of q-expansions.)
506-0.111111111111111111111111111112 +  0.E-29*i
507> LRatio2(A,3)/LRatio2(A,1);
5081/9
509> 1/9.0;
5100.111111111111111111111111111109
511> // GREAT!
512> //////////////////// Try one more example.
513> time A:=ModularSymbols(50,4);             // it's difficult to compute
514Creating M_4(Gamma_1(50),eps;F_0),  2.051 seconds.
515Time: 2.050
516> time D:=Decomposition(A); Print(D);
517Time: 6.129
518Decomposition of space of modular symbols.
519Sorting and labeling factors...
520Modular symbols factor of dimension 1, level 50, weight 4 (50A)
521Modular symbols factor of dimension 1, level 50, weight 4 (50B)
522Modular symbols factor of dimension 1, level 50, weight 4 (50C)
523Modular symbols factor of dimension 1, level 50, weight 4 (50D)
524Modular symbols factor of dimension 1, level 50, weight 4 (50E)
525Modular symbols factor of dimension 2, level 50, weight 4 (50F)
526Modular symbols factor of dimension 4, level 50, weight 4 (50G)
527Modular symbols factor of dimension 6, level 0, weight 4 (0?)
528Modular symbols factor of dimension 2, level 0, weight 4 (0?)
529Modular symbols factor of dimension 4, level 0, weight 4 (0?)
530Modular symbols factor of dimension 2, level 0, weight 4 (0?)
531Modular symbols factor of dimension 2, level 0, weight 4 (0?)
532Modular symbols factor of dimension 2, level 0, weight 4 (0?)
533> E:=Factor(D,"50A");        // or you could type Factor(D,1)
534> Print(E);
535Modular symbols factor of dimension 1, level 50, weight 4 (50A)
536> time f:=qEigenform(E,60);
537Time: 2.850
538> f;
539q - 2*q^2 - 7*q^3 + 4*q^4 + 14*q^6 + 34*q^7 - 8*q^8 + 22*q^9 + 27*q^11 - 28*q^12
540    + 28*q^13 - 68*q^14 + 16*q^16 - 21*q^17 - 44*q^18 + 35*q^19 - 238*q^21 -
541    54*q^22 + 78*q^23 + 56*q^24 - 56*q^26 + 35*q^27 + 136*q^28 - 120*q^29 +
542    182*q^31 - 32*q^32 - 189*q^33 + 42*q^34 + 88*q^36 - 146*q^37 - 70*q^38 -
543    196*q^39 + 357*q^41 + 476*q^42 + 148*q^43 + 108*q^44 - 156*q^46 + 84*q^47 -
544    112*q^48 + 813*q^49 + 147*q^51 + 112*q^52 - 702*q^53 - 70*q^54 - 272*q^56 -
545    245*q^57 + 240*q^58 - 840*q^59 - 238*q^61
546> PeriodLattice(E);
547(Using at least 55 terms of q-expansions.)
548[
549    (0.050681504817808558964075597940*i),
550    (0.089533171446080493107053635360 - 0.076022257226712838446113396912*i)
551]
552> // (I'll change it so that "Using at least
553> //  x terms" message sets x equal to the current precision of f.)
554> PeriodLattice(E,70);
555[
556    (0.050681503556512768313445419177*i),
557    (0.089533176259530639889925369629 - 0.076022255334769152470168128767*i)
558]
559> RealTamagawa(E);
5601
561> // Period lattice is not rectangular.
562> EllipticInvariants(E);
563(Using at least 55 terms of q-expansions.)
564[ 0.050681503556512768313445419177*i, 0.089533176259530639889925369629 -
5650.076022255334769152470168128767*i, 235365794.458559088159707386781572613712 +
5662.3716922514 E-20*i, -3658277704787.33070250990890392994 - 4.9960036091 E-16*i,
567-65415.57266766044739214929559771031 - 6.4967263899 E-23*i ]
568> // What is -65415.572667660447?????????????///
569> LRatio(E,1);
570warning: currently there is a bug -- off by powers of 2.
57140
572> LRatio(E,2);
573warning: currently there is a bug -- off by powers of 2.
574(Warning: Imaginary comp group formula not yet proved.)
57510
576> LRatio(E,3);
577warning: currently there is a bug -- off by powers of 2.
5784/5
579> // Use cool magma functions to make lists...
580> [LRatio(E,i) : i in [1..3]];
581warning: currently there is a bug -- off by powers of 2.
582warning: currently there is a bug -- off by powers of 2.
583warning: currently there is a bug -- off by powers of 2.
584[ 40, 10, 4/5 ]
585> [LRatio2(E,i) : i in [1..3]];
586[ 20, 5, 2/5 ]
587> LAnalytic(E,1)/RealVolume(E);
588(Using at least 55 terms of q-expansions.)
589(Using at least 55 terms of q-expansions.)
59020.0000000000000000000000000008077935669 +  0.E-28*i
591> // LRatio2 gives the right answer...
592
593Total time: 139.580 seconds    // total cpu time used in this session
594
`