一级模块形式

计算 \(\Delta\)

模块化形式

\[Delta=qprod(1-q^n)^{24}=sumtau(n)q^n\]

可能是世界上最著名的模块化形式。我们从定义中计算出一些术语。

sage: R.<q> = QQ[[]]
sage: q * prod( 1-q^n+O(q^6) for n in (1..5) )^24
q - 24*q^2 + 252*q^3 - 1472*q^4 + 4830*q^5 - 6048*q^6 + O(q^7)

有更好的计算方法 \(\Delta\) ,这相当于几个多项式的乘法 \(\ZZ\) .

sage: D = delta_qexp(10^5)      # less than 10 seconds
sage: D[:10]
q - 24*q^2 + 252*q^3 - 1472*q^4 + ...
sage: [p for p in primes(10^5) if D[p] % p == 0]
[2, 3, 5, 7, 2411]
sage: D[2411]
4542041100095889012
sage: f = eisenstein_series_qexp(12,6) - D[:6]; f
691/65520 + 2073*q^2 + 176896*q^3 + 4197825*q^4 + 48823296*q^5 + O(q^6)
sage: f % 691
O(q^6)

维克托米勒基础

维克托·米勒的基础 \(M_k(\mathrm{{SL}}_2(\ZZ))\) 是减少行梯队的基础。这是一个引理,它有所有的整数系数,和一个相当好的对角线形状。

sage: victor_miller_basis(24, 6)
[
1 + 52416000*q^3 + 39007332000*q^4 + 6609020221440*q^5 + O(q^6),
q + 195660*q^3 + 12080128*q^4 + 44656110*q^5 + O(q^6),
q^2 - 48*q^3 + 1080*q^4 - 15040*q^5 + O(q^6)
]
sage: dimension_modular_forms(1,200)
17
sage: B = victor_miller_basis(200, 18) #5 seconds
sage: B
[
1 + 79288314420681734048660707200000*q^17 + O(q^18),
q + 2687602718106772837928968846869*q^17 + O(q^18),
...
q^16 + 96*q^17 + O(q^18)
]

注意:克雷格雪铁龙已经使上面的计算速度快了一个数量级的代码,他还没有完全进入Sage。

“我会尽快清理并提交,因为我需要它们来做我正在做的事情。。。我目前正在把一级子类的模块形式的空间转换成现有的代码,并实际利用我们所有的快速 \(E_k\)\(\Delta\) 计算代码,以及清理一些东西。”