Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Project: Modular Forms
Views: 417
Kernel: SageMath 10.0

SageMath/CoCalc demo

%display latex
2 * 3

6\displaystyle 6

if 57.is_prime(): print('57 is prime') else: print('57 is composite')
57 is composite
for p in primes(25): print([p, p^2-1])
[2, 3] [3, 8] [5, 24] [7, 48] [11, 120] [13, 168] [17, 288] [19, 360] [23, 528]
Integers()

Z\displaystyle \renewcommand{\Bold}[1]{\mathbf{#1}}\Bold{Z}

ZZ

Z\displaystyle \renewcommand{\Bold}[1]{\mathbf{#1}}\Bold{Z}

Rationals()

Q\displaystyle \renewcommand{\Bold}[1]{\mathbf{#1}}\Bold{Q}

QQ

Q\displaystyle \renewcommand{\Bold}[1]{\mathbf{#1}}\Bold{Q}

RealField(100)

R\displaystyle \renewcommand{\Bold}[1]{\mathbf{#1}}\Bold{R}

str(_)

Real Field with 100 bits of precision\displaystyle \verb|Real|\verb| |\verb|Field|\verb| |\verb|with|\verb| |\verb|100|\verb| |\verb|bits|\verb| |\verb|of|\verb| |\verb|precision|

Zmod(17)

Z/17Z\displaystyle \renewcommand{\ZZ}{\Bold{Z}}\renewcommand{\Bold}[1]{\mathbf{#1}}\ZZ/17\ZZ

F = FiniteField(3^4, 'g')
F

F34\displaystyle \renewcommand{\Bold}[1]{\mathbf{#1}}\Bold{F}_{3^{4}}

str(F)
FinitexFieldxinxgxofxsizex3^4\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|Finite|\phantom{\verb!x!}\verb|Field|\phantom{\verb!x!}\verb|in|\phantom{\verb!x!}\verb|g|\phantom{\verb!x!}\verb|of|\phantom{\verb!x!}\verb|size|\phantom{\verb!x!}\verb|3^4|
F.polynomial()

g4+2g3+2\displaystyle g^{4} + 2 g^{3} + 2

R = PolynomialRing(Integers(), 'x')
R

Z[x]\displaystyle \renewcommand{\Bold}[1]{\mathbf{#1}}\Bold{Z}[x]

R.gen()
x\renewcommand{\Bold}[1]{\mathbf{#1}}x
ZZ['x']

Z[x]\displaystyle \renewcommand{\Bold}[1]{\mathbf{#1}}\Bold{Z}[x]

FunctionField(QQ, 'x')

Rational function field in x over Rational Field\displaystyle \verb|Rational|\verb| |\verb|function|\verb| |\verb|field|\verb| |\verb|in|\verb| |\verb|x|\verb| |\verb|over|\verb| |\verb|Rational|\verb| |\verb|Field|

Modular forms

SL2Z

SL2(Z)\displaystyle \renewcommand{\Bold}[1]{\mathbf{#1}}\mbox{\rm SL}_2(\Bold{Z})

str(_)

Modular Group SL(2,Z)\displaystyle \verb|Modular|\verb| |\verb|Group|\verb| |\verb|SL(2,Z)|

SL2Z.gens()

((0−110),(1101))\displaystyle \left(\left(\begin{array}{rr} 0 & -1 \\ 1 & 0 \end{array}\right), \left(\begin{array}{rr} 1 & 1 \\ 0 & 1 \end{array}\right)\right)

M4 = ModularForms(SL2Z, 4)
M4

Modular Forms space of dimension 1 for Modular Group SL(2,Z) of weight 4 over Rational Field\displaystyle \verb|Modular|\verb| |\verb|Forms|\verb| |\verb|space|\verb| |\verb|of|\verb| |\verb|dimension|\verb| |\verb|1|\verb| |\verb|for|\verb| |\verb|Modular|\verb| |\verb|Group|\verb| |\verb|SL(2,Z)|\verb| |\verb|of|\verb| |\verb|weight|\verb| |\verb|4|\verb| |\verb|over|\verb| |\verb|Rational|\verb| |\verb|Field|

M4.dimension()

1\displaystyle 1

M4.q_expansion_basis()

[1+240q+2160q2+6720q3+17520q4+30240q5+O(q6)]\displaystyle \left[1 + 240 q + 2160 q^{2} + 6720 q^{3} + 17520 q^{4} + 30240 q^{5} + O(q^{6})\right]

f = M4.q_expansion_basis()[0]/240
f

1240+q+9q2+28q3+73q4+126q5+O(q6)\displaystyle \frac{1}{240} + q + 9 q^{2} + 28 q^{3} + 73 q^{4} + 126 q^{5} + O(q^{6})

sum(d^3 for d in 5.divisors())

126\displaystyle 126

S12 = CuspForms(SL2Z, 12)
S12

Cuspidal subspace of dimension 1 of Modular Forms space of dimension 2 for Modular Group SL(2,Z) of weight 12 over Rational Field\displaystyle \verb|Cuspidal|\verb| |\verb|subspace|\verb| |\verb|of|\verb| |\verb|dimension|\verb| |\verb|1|\verb| |\verb|of|\verb| |\verb|Modular|\verb| |\verb|Forms|\verb| |\verb|space|\verb| |\verb|of|\verb| |\verb|dimension|\verb| |\verb|2|\verb| |\verb|for|\verb| |\verb|Modular|\verb| |\verb|Group|\verb| |\verb|SL(2,Z)|\verb| |\verb|of|\verb| |\verb|weight|\verb| |\verb|12|\verb| |\verb|over|\verb| |\verb|Rational|\verb| |\verb|Field|

S12.q_expansion_basis(prec=20)

[q−24q2+252q3−1472q4+4830q5−6048q6−16744q7+84480q8−113643q9−115920q10+534612q11−370944q12−577738q13+401856q14+1217160q15+987136q16−6905934q17+2727432q18+10661420q19+O(q20)]\displaystyle \left[q - 24 q^{2} + 252 q^{3} - 1472 q^{4} + 4830 q^{5} - 6048 q^{6} - 16744 q^{7} + 84480 q^{8} - 113643 q^{9} - 115920 q^{10} + 534612 q^{11} - 370944 q^{12} - 577738 q^{13} + 401856 q^{14} + 1217160 q^{15} + 987136 q^{16} - 6905934 q^{17} + 2727432 q^{18} + 10661420 q^{19} + O(q^{20})\right]

EisensteinForms(SL2Z, 16).q_expansion_basis()

[1+163203617q+5347900803617q2+2341741785603617q3+175240013577603617q4+4980468750163203617q5+O(q6)]\displaystyle \left[1 + \frac{16320}{3617} q + \frac{534790080}{3617} q^{2} + \frac{234174178560}{3617} q^{3} + \frac{17524001357760}{3617} q^{4} + \frac{498046875016320}{3617} q^{5} + O(q^{6})\right]

f, g = ModularForms(Gamma1(4), 2).basis()
f

1+24q2+24q4+O(q6)\displaystyle 1 + 24 q^{2} + 24 q^{4} + O(q^{6})

g

q+4q3+6q5+O(q6)\displaystyle q + 4 q^{3} + 6 q^{5} + O(q^{6})

type(f)

<class 'sage.modular.modform.ambient_g1.ModularFormsAmbient_g1_Q_with_category.element_class'>\displaystyle \verb|<class|\verb| |\verb|'sage.modular.modform.ambient_g1.ModularFormsAmbient_g1_Q_with_category.element_class'>|

f.parent()

Modular Forms space of dimension 2 for Congruence Subgroup Gamma1(4) of weight 2 over Rational Field\displaystyle \verb|Modular|\verb| |\verb|Forms|\verb| |\verb|space|\verb| |\verb|of|\verb| |\verb|dimension|\verb| |\verb|2|\verb| |\verb|for|\verb| |\verb|Congruence|\verb| |\verb|Subgroup|\verb| |\verb|Gamma1(4)|\verb| |\verb|of|\verb| |\verb|weight|\verb| |\verb|2|\verb| |\verb|over|\verb| |\verb|Rational|\verb| |\verb|Field|

R.<q> = ZZ[[]]
q

q\displaystyle q

theta = 1 + 2*q + 2*q^4 + 2*q^9 + 2*q^16 + O(q^25)
theta^4

1+8q+24q2+32q3+24q4+48q5+96q6+64q7+24q8+104q9+144q10+96q11+96q12+112q13+192q14+192q15+24q16+144q17+312q18+160q19+144q20+256q21+288q22+192q23+96q24+O(q25)\displaystyle 1 + 8 q + 24 q^{2} + 32 q^{3} + 24 q^{4} + 48 q^{5} + 96 q^{6} + 64 q^{7} + 24 q^{8} + 104 q^{9} + 144 q^{10} + 96 q^{11} + 96 q^{12} + 112 q^{13} + 192 q^{14} + 192 q^{15} + 24 q^{16} + 144 q^{17} + 312 q^{18} + 160 q^{19} + 144 q^{20} + 256 q^{21} + 288 q^{22} + 192 q^{23} + 96 q^{24} + O(q^{25})

(theta^4).parent()

Z[[q]]\displaystyle \renewcommand{\Bold}[1]{\mathbf{#1}}\Bold{Z}[[q]]

theta^4 == (f + 8*g).q_expansion(25)

True\displaystyle \mathrm{True}

Fundamental domains

SL2Z.farey_symbol().fundamental_domain()
Image in a Jupyter notebook
Gamma0(2).farey_symbol().fundamental_domain()
Image in a Jupyter notebook
Gamma(3).farey_symbol().fundamental_domain()
Image in a Jupyter notebook
Gamma(3).cusps()

[0,1,2,∞]\displaystyle \left[0, 1, 2, \infty\right]

Hecke operators

M = ModularForms(SL2Z, 12) M

Modular Forms space of dimension 2 for Modular Group SL(2,Z) of weight 12 over Rational Field\displaystyle \verb|Modular|\verb| |\verb|Forms|\verb| |\verb|space|\verb| |\verb|of|\verb| |\verb|dimension|\verb| |\verb|2|\verb| |\verb|for|\verb| |\verb|Modular|\verb| |\verb|Group|\verb| |\verb|SL(2,Z)|\verb| |\verb|of|\verb| |\verb|weight|\verb| |\verb|12|\verb| |\verb|over|\verb| |\verb|Rational|\verb| |\verb|Field|

T2 = M.hecke_operator(2)
T2

T2\displaystyle T_{2}

T2.matrix()

(−24002049)\displaystyle \left(\begin{array}{rr} -24 & 0 \\ 0 & 2049 \end{array}\right)

M = ModularForms(Gamma1(7), 3)
M

Modular Forms space of dimension 7 for Congruence Subgroup Gamma1(7) of weight 3 over Rational Field\displaystyle \verb|Modular|\verb| |\verb|Forms|\verb| |\verb|space|\verb| |\verb|of|\verb| |\verb|dimension|\verb| |\verb|7|\verb| |\verb|for|\verb| |\verb|Congruence|\verb| |\verb|Subgroup|\verb| |\verb|Gamma1(7)|\verb| |\verb|of|\verb| |\verb|weight|\verb| |\verb|3|\verb| |\verb|over|\verb| |\verb|Rational|\verb| |\verb|Field|

d3 = M.diamond_bracket_operator(3) d3

⟨3⟩\displaystyle \langle 3 \rangle

d3.matrix()

(−1000000027126294770214235280563852005301445240801131422662333920−1−3−3−11−51−870−1−4−7−20−67−1120−13−2−6−15−34−56)\displaystyle \left(\begin{array}{rrrrrrr} -1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 27 & 126 & 294 & 770 & 2142 & 3528 \\ 0 & \frac{56}{3} & 85 & 200 & 530 & 1445 & 2408 \\ 0 & \frac{11}{3} & 14 & 22 & 66 & 233 & 392 \\ 0 & -1 & -3 & -3 & -11 & -51 & -87 \\ 0 & -1 & -4 & -7 & -20 & -67 & -112 \\ 0 & -\frac{1}{3} & -2 & -6 & -15 & -34 & -56 \end{array}\right)

d3.matrix()^6

(1000000010000000100000001000000010000000100000001)\displaystyle \left(\begin{array}{rrrrrrr} 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{array}\right)

T2 = M.hecke_operator(2) T2.matrix()

(−3000000028501176560907270560556307649823594545430136311842353144811620−120−48−15−384−3000−120−47−19−376−3010−830−12−203−88−63)\displaystyle \left(\begin{array}{rrrrrrr} -3 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 285 & 0 & 1176 & 560 & 9072 & 7056 \\ 0 & \frac{556}{3} & 0 & 764 & \frac{982}{3} & 5945 & 4543 \\ 0 & \frac{136}{3} & 1 & 184 & \frac{235}{3} & 1448 & 1162 \\ 0 & -12 & 0 & -48 & -15 & -384 & -300 \\ 0 & -12 & 0 & -47 & -19 & -376 & -301 \\ 0 & -\frac{8}{3} & 0 & -12 & -\frac{20}{3} & -88 & -63 \end{array}\right)

T2*d3

(30000000232942142362681906552056320014412485552546180113222333299024090−1−3−51−63−195−390−1−7−67−98−260−1390−13−6−34−67−130−148)\displaystyle \left(\begin{array}{rrrrrrr} 3 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 23 & 294 & 2142 & 3626 & 8190 & 6552 \\ 0 & \frac{56}{3} & 200 & 1441 & 2485 & 5525 & 4618 \\ 0 & \frac{11}{3} & 22 & 233 & 329 & 902 & 409 \\ 0 & -1 & -3 & -51 & -63 & -195 & -39 \\ 0 & -1 & -7 & -67 & -98 & -260 & -139 \\ 0 & -\frac{1}{3} & -6 & -34 & -67 & -130 & -148 \end{array}\right)

T2*d3-d3*T2

(0000000000000000000000000000000000000000000000000)\displaystyle \left(\begin{array}{rrrrrrr} 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 \end{array}\right)