# Revision history [back]

### Meaning of the names of generators of ring of modular forms

Recently, I used Sage to do computations on (quasi)modular forms and I found some mysterious namings of them. The following code

QM2 = QuasiModularForms(Gamma0(2))

for qm in QM2.gens():
print(qm.polynomial(), qm)


gives

E2 1 - 24*q - 72*q^2 - 96*q^3 - 168*q^4 - 144*q^5 + O(q^6)
E2_0 1 + 24*q + 24*q^2 + 96*q^3 + 24*q^4 + 144*q^5 + O(q^6)
E4_0 1 + 240*q^2 + 2160*q^4 + O(q^6)


and I know that the first one is the weight 2 and level 1 Eisenstein series, but it is not clear to me what the E2_0 and E4_0 stand for. Based on q-series, I guess that those are 2E2(2z) - E2(z) and E4(2z), but I wonder how it works in general. I tried to find the corresponding code in GitHub but failed. Any helps appreciated.

 2 retagged FrédéricC 5125 ●3 ●43 ●111

### Meaning of the names of generators of ring of modular forms

Recently, I used Sage to do computations on (quasi)modular forms and I found some mysterious namings of them. The following code

QM2 = QuasiModularForms(Gamma0(2))

for qm in QM2.gens():
print(qm.polynomial(), qm)


gives

E2 1 - 24*q - 72*q^2 - 96*q^3 - 168*q^4 - 144*q^5 + O(q^6)
E2_0 1 + 24*q + 24*q^2 + 96*q^3 + 24*q^4 + 144*q^5 + O(q^6)
E4_0 1 + 240*q^2 + 2160*q^4 + O(q^6)


and I know that the first one is the weight 2 and level 1 Eisenstein series, but it is not clear to me what the E2_0 and E4_0 stand for. Based on q-series, I guess that those are 2E2(2z) - E2(z) and E4(2z), but I wonder how it works in general. I tried to find the corresponding code in GitHub but failed. Any helps appreciated.