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