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 \tau' = g\tau: integers R_i, S_i (arrays of length 4) and C \in \{0, 1\} such that for i = 0, 1, 2, 3

\theta_{1+i}(z,\tau) = e^{\pi i R_i / 4} \cdot A \cdot B \cdot \theta_{1+S_i}(z',\tau'),

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

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).

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

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

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

\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

\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 \varepsilon_i are 8th roots of unity. With \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),

\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-10-20).