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≤r<80 \le r < 8 with κ(mat)=ζ8r\kappa(\mathit{mat}) = \zeta_8^r and sets sqrtdet to the matching square root of det⁡(γτ+δ)\det(\gamma\tau + \delta) in the theta transformation formula; if sqr is nonzero, it returns 0≤r<40 \le r < 4 with κ(mat)2=ir\kappa(\mathit{mat})^2 = i^r and sets sqrtdet to det⁡(γτ+δ)\det(\gamma\tau + \delta). acb_siegel_kappa2 returns 0≤r<40 \le r < 4 with κ(mat)2=ir\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 mm, (z,τ)∈Cg×Hg(z,\tau)\in \mathbb{C}^g\times \mathcal{H}_g and characteristic (a,b)(a,b),

θa,b(m⋅(z,τ))=κ(m)ζ8e(m,a,b)det⁡(γτ+δ)1/2eπizT(γτ+δ)−1γzθa′,b′(z,τ),\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 ζ8=eiπ/4\zeta_8 = e^{i\pi/4}, (a′,b′)(a', b') and the integer e(m,a,b)e(m, a, b) (Igusa's ϕm\phi_m) are given by acb_theta_char_table, and the 8th root of unity κ(m)\kappa(m) is determined up to sign by the choice of branch of det⁡(γτ+δ)1/2\det(\gamma\tau+\delta)^{1/2}.

The function decomposes mat with sp2gz_decompose. For trigonal and block-diagonal matrices the action on θ0,0\theta_{0,0} is explicit; for embedded matrices from SL2(Z)\mathrm{SL}_2(\mathbb{Z}) it uses acb_modular_theta_transform; and for an embedded JJ from dimension 2≤r≤g2 \le r \le g, κ(m)ζ8e(m,0,0)ir/2det⁡(τ0)1/2=1\kappa(m) \zeta_8^{e(m,0,0)} i^{r/2} \det(\tau_0)^{1/2} = 1, where τ0\tau_0 is the upper left r×rr \times r block of τ\tau and the square root is the branch that equals ir/2det⁡(Y0)1/2i^{r/2}\det(Y_0)^{1/2} for purely imaginary τ0=iY0\tau_0 = iY_0. To find this branch (when sqr is zero), it picks a purely imaginary matrix AA such that P(t)=det⁡(A+t+12(τ0−A))P(t) = \det(A + \tfrac{t+1}{2} (\tau_0 - A)) has degree rr and no roots near the segment [−1,1][-1,1], and follows the branch of P(t)1/2P(t)^{1/2} from t=−1t = -1 to t=1t = 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-11-02).