acb_siegel_kappa, acb_siegel_kappa2
#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)sourceslong acb_siegel_kappa2(const fmpz_mat_t mat)sourceIf 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),
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#
- [Igu1972] J.-I. Igusa. Theta functions, Springer, 1972. https://doi.org/10.1007/978-3-642-65315-5
- [Mum1983] D. Mumford, Tata Lectures on Theta I, Birkhäuser, 1983. https://doi.org/10.1007/978-1-4899-2843-6
- [MN2019] P. Molin and C. Neurohr, "Computing period matrices and the Abel–Jacobi map of superelliptic curves", Math. Comp. 88:316 (2019), 847–888.
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).
@misc{flint-doc-acb-theta-acb-siegel-kappa,
author = {{The FLINT team}},
title = {{acb\_siegel\_kappa, acb\_siegel\_kappa2 (acb\_theta.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/acb_theta/acb_siegel_kappa.html},
note = {Generated 2026-10-20}
}