FLINT3.7.0-dev

acb_modular_theta_transform

Synopsis#include <flint/acb_modular.h>
void acb_modular_theta_transform(int * R, int * S, int * C, const psl2z_t g)source

Computes the data of the transformation formula expressing theta functions at τ\tau through theta functions at τ′=gτ\tau' = g\tau: integers RiR_i, SiS_i (arrays of length 4) and C∈{0,1}C \in \{0, 1\} such that for i=0,1,2,3i = 0, 1, 2, 3

θ1+i(z,τ)=eπiRi/4⋅A⋅B⋅θ1+Si(z′,τ′),\theta_{1+i}(z,\tau) = e^{\pi i R_i / 4} \cdot A \cdot B \cdot \theta_{1+S_i}(z',\tau'),

where z′=zz' = z and A=B=1A = B = 1 if C=0C = 0, and if C=1C = 1

z′=−zcτ+d,A=icτ+d,B=exp⁡(−πicz2cτ+d).z' = \frac{-z}{c \tau + d}, \quad A = \sqrt{\frac{i}{c \tau + d}}, \quad B = \exp\left(-\pi i c \frac{z^2}{c \tau + d}\right).

AA is well defined with the principal square root since A2=i/(cτ+d)A^2 = i/(c\tau + d) lies in the right half-plane.

If c=0c = 0, then C=0C = 0: θi(z,τ)=e−πib/4θi(z,τ+b)\theta_i(z, \tau) = e^{-\pi i b / 4} \theta_i(z, \tau+b) for i=1,2i = 1, 2, while θ3\theta_3 and θ4\theta_4 are unchanged when bb is even and swap places when bb is odd.

For c>0c > 0, C=1C = 1 and the general transformations are given by Rademacher [Rad1973] (whose formulas contain typos and have the transformed and untransformed variables exchanged). With θm,n\theta_{m,n} defined for m,n∈Zm, n \in \mathbb{Z} by

θ0,0=θ3,θ0,1=θ4,θ1,0=θ2,θ1,1=iθ1,θm+2,n=(−1)nθm,n,θm,n+2=θm,n,\theta_{0,0} = \theta_3, \quad \theta_{0,1} = \theta_4, \quad \theta_{1,0} = \theta_2, \quad \theta_{1,1} = i \theta_1, \quad \theta_{m+2,n} = (-1)^n \theta_{m,n}, \quad \theta_{m,n+2} = \theta_{m,n},

we have

θ1(z,τ)=ε1AB θ1(z′,τ′),θ2(z,τ)=ε2AB θ1−c,1+a(z′,τ′),θ3(z,τ)=ε3AB θ1+d−c,1−b+a(z′,τ′),θ4(z,τ)=ε4AB θ1+d,1−b(z′,τ′),\begin{aligned} \theta_1(z,\tau) &= \varepsilon_1 A B \, \theta_1(z', \tau'), \\ \theta_2(z,\tau) &= \varepsilon_2 A B \, \theta_{1-c,1+a}(z', \tau'), \\ \theta_3(z,\tau) &= \varepsilon_3 A B \, \theta_{1+d-c,1-b+a}(z', \tau'), \\ \theta_4(z,\tau) &= \varepsilon_4 A B \, \theta_{1+d,1-b}(z', \tau'), \end{aligned}

where the εi\varepsilon_i are 8th roots of unity. With ε(a,b,c,d)=exp⁡(πiR(a,b,c,d)/12)\varepsilon(a,b,c,d) = \exp(\pi i R(a,b,c,d) / 12) the 24th root of unity of the eta transformation (acb_modular_epsilon_arg),

ε1(a,b,c,d)=exp⁡(πi[R(−d,b,c,−a)+1]/4),ε2(a,b,c,d)=exp⁡(πi[−R(a,b,c,d)+(5+(2−c)a)]/4),ε3(a,b,c,d)=exp⁡(πi[−R(a,b,c,d)+(4+(c−d−2)(b−a))]/4),ε4(a,b,c,d)=exp⁡(πi[−R(a,b,c,d)+(3−(2+d)b)]/4).\begin{aligned} \varepsilon_1(a,b,c,d) &= \exp(\pi i [R(-d,b,c,-a) + 1] / 4), \\ \varepsilon_2(a,b,c,d) &= \exp(\pi i [-R(a,b,c,d) + (5+(2-c)a)] / 4), \\ \varepsilon_3(a,b,c,d) &= \exp(\pi i [-R(a,b,c,d) + (4+(c-d-2)(b-a))] / 4), \\ \varepsilon_4(a,b,c,d) &= \exp(\pi i [-R(a,b,c,d) + (3-(2+d)b)] / 4). \end{aligned}

References#

  • [Rad1973] H. Rademacher, Topics in analytic number theory, Springer, 1973.
Cite this page

The FLINT team, “acb_modular_theta_transform (acb_modular.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/acb_modular/acb_modular_theta_transform.html (generated 2026-11-02).