FLINT3.7.0-dev

acb_siegel_kappa, acb_siegel_kappa2

Synopsis#include <flint/acb_theta.h>
slong acb_siegel_kappa(acb_t sqrtdet, const fmpz_mat_t mat, const acb_mat_t tau, int sqr, slong prec)source
slong acb_siegel_kappa2(const fmpz_mat_t mat)source

If sqr is zero, acb_siegel_kappa returns 0 \le r < 8 with \kappa(\mathit{mat}) = \zeta_8^r and sets sqrtdet to the matching square root of \det(\gamma\tau + \delta) in the theta transformation formula; if sqr is nonzero, it returns 0 \le r < 4 with \kappa(\mathit{mat})^2 = i^r and sets sqrtdet to \det(\gamma\tau + \delta). acb_siegel_kappa2 returns 0 \le r < 4 with \kappa(\mathit{mat})^2 = i^r, which does not depend on a choice of square root.

By [Igu1972, p. 176] and [Mum1983, p. 189], for any symplectic m, (z,\tau)\in \mathbb{C}^g\times \mathcal{H}_g and characteristic (a,b),

\theta_{a,b}(m\cdot(z,\tau)) = \kappa(m) \zeta_8^{e(m, a, b)} \det(\gamma\tau + \delta)^{1/2} e^{\pi i z^T (\gamma\tau + \delta)^{-1} \gamma z} \theta_{a',b'}(z,\tau),

where \zeta_8 = e^{i\pi/4}, (a', b') and the integer e(m, a, b) (Igusa's \phi_m) are given by acb_theta_char_table, and the 8th root of unity \kappa(m) is determined up to sign by the choice of branch of \det(\gamma\tau+\delta)^{1/2}.

The function decomposes mat with sp2gz_decompose. For trigonal and block-diagonal matrices the action on \theta_{0,0} is explicit; for embedded matrices from \mathrm{SL}_2(\mathbb{Z}) it uses acb_modular_theta_transform; and for an embedded J from dimension 2 \le r \le g, \kappa(m) \zeta_8^{e(m,0,0)} i^{r/2} \det(\tau_0)^{1/2} = 1, where \tau_0 is the upper left r \times r block of \tau and the square root is the branch that equals i^{r/2}\det(Y_0)^{1/2} for purely imaginary \tau_0 = iY_0. To find this branch (when sqr is zero), it picks a purely imaginary matrix A such that P(t) = \det(A + \tfrac{t+1}{2} (\tau_0 - A)) has degree r and no roots near the segment [-1,1], and follows the branch of P(t)^{1/2} from t = -1 to t = 1 as in [MN2019].

Guides#

References#

Cite this page

The FLINT team, “acb_siegel_kappa, acb_siegel_kappa2 (acb_theta.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/acb_theta/acb_siegel_kappa.html (generated 2026-10-20).