Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

""" 

TESTS: 

 

Test consistency between modular forms and modular symbols Eisenstein 

series charpolys, which are computed in completely separate ways. :: 

 

sage: for N in range(25,33): 

....: m = ModularForms(N) 

....: e = m.eisenstein_subspace() 

....: f = e.hecke_polynomial(2) 

....: g = ModularSymbols(N).eisenstein_submodule().hecke_polynomial(2) 

....: print("{} {}".format(N, f == g)) 

25 True 

26 True 

27 True 

28 True 

29 True 

30 True 

31 True 

32 True 

 

Another similar consistency check:: 

 

sage: for N in range(1,26): 

....: eps = (N > 2 and DirichletGroup(N,QQ).0) or N 

....: m = ModularForms(eps) 

....: e = m.eisenstein_subspace() 

....: f = e.hecke_polynomial(2) 

....: g = ModularSymbols(eps).eisenstein_submodule().hecke_polynomial(2) 

....: print("{} {}".format(N, f == g)) 

1 True 

2 True 

3 True 

4 True 

5 True 

6 True 

7 True 

8 True 

9 True 

10 True 

11 True 

12 True 

13 True 

14 True 

15 True 

16 True 

17 True 

18 True 

19 True 

20 True 

21 True 

22 True 

23 True 

24 True 

25 True 

 

We check that bug :trac:`8541` (traced to a linear algebra problem) is fixed:: 

 

sage: f = CuspForms(DirichletGroup(5).0,5).0 

sage: f[15] 

30*zeta4 - 210 

"""