To print higher-resolution math symbols, click the
Hi-res Fonts for Printing button on the jsMath control panel.

No jsMath TeX fonts found -- using image fonts instead.
These may be slow and might not print well.
Use the jsMath control panel to get additional information.
jsMath Control PanelHide this Message


jsMath
jsMath

Tutorial: Computing With Modular Forms Using SAGE

Contents, General, Modular Forms, Modular Symbols, Future

General Modular Forms-Related Functionality



Congruence Subgroups

G = Gamma0(11); G
       
Congruence Subgroup Gamma0(11)
Congruence Subgroup Gamma0(11)
# I haven't finished implementing a G.generators() command..., but you probably
# don't care.
       
G.coset_reps()
       
<generator object at 0xad893aec>
<generator object at 0xad893aec>
list(G.coset_reps())
       
[[1, 0, 0, 1], [0, -1, 1, 0], [0, -1, 1, 1], [0, -1, 1, 2], [0, -1, 1, 3], [0,
-1, 1, 4], [0, -1, 1, 5], [0, -1, 1, 6], [0, -1, 1, 7], [0, -1, 1, 8], [0, -1,
1, 9], [0, -1, 1, 10]]
[[1, 0, 0, 1], [0, -1, 1, 0], [0, -1, 1, 1], [0, -1, 1, 2], [0, -1, 1, 3], [0, -1, 1, 4], [0, -1, 1, 5], [0, -1, 1, 6], [0, -1, 1, 7], [0, -1, 1, 8], [0, -1, 1, 9], [0, -1, 1, 10]]


Dimension Formulas

dimension_cusp_forms(11,2)
       
1
1
dimension_cusp_forms(Gamma1(13),2)
       
2
2
dimension_cusp_forms(100,2)
       
7
7
dimension_new_cusp_forms(Gamma1(100),2)
       
141
141
       
       


Dirichlet Characters

G.<a,b> = DirichletGroup(4*37)
G
       
Group of Dirichlet characters of modulus 148 over Cyclotomic Field of order 36
and degree 12
Group of Dirichlet characters of modulus 148 over Cyclotomic Field of order 36 and degree 12
G.unit_gens()
       
[75, 113]
[75, 113]
# Printing a character gives the values of the character on the
# generators 75 and 113 for (Z/NZ)^*

print "a = ", a
print "b = ", b
       
a =  [-1, 1]
b =  [1, zeta36]
a =  [-1, 1]
b =  [1, zeta36]
order(b)
       
36
36
[b(n) for n in range(1,11)]
       
[1, 0, -zeta36^8, 0, -zeta36^5, 0, -zeta36^8 + zeta36^2, 0, zeta36^10 -
zeta36^4, 0]
[1, 0, -zeta36^8, 0, -zeta36^5, 0, -zeta36^8 + zeta36^2, 0, zeta36^10 - zeta36^4, 0]
b.element()
       
(0, 1)
(0, 1)
b.values_on_gens()
       
(1, zeta36)
(1, zeta36)
G([-1,-1])
       
[-1, -1]
[-1, -1]
dimension_cusp_forms(a,3)
       
36
36
dimension_cusp_forms(b,3)
       
35
35