-
Notifications
You must be signed in to change notification settings - Fork 4
Description
I just wonder whether your convention for the "nome" is consistent through the whole package --- "nome" is usually defined as
Extreme care is needed when consulting the literature, as it is common in the theory of modular functions (and in particular the Dedekind eta function) to use the symbol q to denote
$e^{2\pi i\tau}$ , i.e., the square of the usual nome$e^{i\pi i \tau}$
For example, there are two Eisenstein series,
and
for sum of divisor powers
Now to examine the convention of nome in this package, I test for the for the lattice
using Primes
""" Return the factors of n, including 1, n """
function factors(n::T)::Vector{T} where {T<:Integer}
sort(vec(map(prod, Iterators.product((p .^ (0:m) for (p, m) in Primes.eachfactor(n))...))))
end
N = 3 # truncation for the series of E2
@show E2_tau = 1 - 24 * sum([sum(factors(n)) * exp(-4π*n) for n in 1:N]) # 0.9999163029078149
@show G2_tau = pi^2/3 * E2_tau # 3.2895927812999894
I can double check this result of G2 using another version of "G2", denoted by
for the neighbor
Brute-forcely, I can truncate
@show G2_L = begin
truncation_radius = 100
n_ω1_truncation = Int(floor(truncation_radius / abs(ω1)))
n_ω2_truncation = Int(floor(truncation_radius / abs(ω2)))
site_cart_list = [m * ω1 + n * ω2 for m in -n_ω1_truncation:n_ω1_truncation for n in -n_ω2_truncation:n_ω2_truncation]
site_cart_list = filter(z -> abs(z) > 1.0E-10, site_cart_list)
sum([1.0 / site_cart^2 for site_cart in site_cart_list])
end # 1.7138213711774903 + 4.2934406030425976e-17imThen with
@show G2_tau_from_G2_L = G2_L + pi / 2 * imag(1)/1 # 3.284617697972387 + 4.2934406030425976e-17imwhich is consistent with the value obtained from
However, with the conventional "nome" EisensteinE2, I got
Riemann_zeta_2 = pi^2/3
@show EisensteinE2(exp(-2pi)) * Riemann_zeta_2 # 3.1415926535897936 + 0.0imwhich is terribly WRONG!
While with the number-theory convention
Riemann_zeta_2 = pi^2/3
@show EisensteinE2(exp(-4pi)) * Riemann_zeta_2 # 3.2895927812999886 + 0.0imwhich is correct!
So my puzzle is on the consistency of the concept of "nome" of this package, I am afraid the two-$q$ get mixed here: the "nome" for Jacobi theta function is